TeensyNanoExoCode
Loading...
Searching...
No Matches
ParamsFromSD.h
Go to the documentation of this file.
1
11#ifndef ParamsFromSD_h
12#define ParamsFromSD_h
13
14#include "ExoData.h"
15#include "ParseIni.h"
16#include "Utilities.h"
17
18#include <SD.h>
19#include <SPI.h>
20#include <map>
21#include <string>
22
23
24// Arduino compiles everything in the src folder even if not included so it causes and error for the nano if this is not included.
25#if defined(ARDUINO_TEENSY36) || defined(ARDUINO_TEENSY41)
26 #ifndef SD_SELECT
27 #define SD_SELECT BUILTIN_SDCARD
28 #endif
29
30 typedef std::map<uint8_t, std::string> ParamFilenameKey;
34 namespace param_error
35 {
36 const uint8_t num_joint_ids = 3;
37 const uint8_t SD_not_found_idx = num_joint_ids;
38 const uint8_t file_not_found_idx = SD_not_found_idx + 1;
39 }
40
44 namespace controller_parameter_filenames
45 {
46 const ParamFilenameKey hip
47 {
48 // for disabled clear the parameters, may not want to use this if this is just a temp pause. Same for zeroTorque
49 {(uint8_t)config_defs::hip_controllers::disabled,"hipControllers/zeroTorque.csv"},
50 {(uint8_t)config_defs::hip_controllers::zero_torque,"hipControllers/zeroTorque.csv"},
51 {(uint8_t)config_defs::hip_controllers::heel_toe,"hipControllers/heelToe.csv"},
52 {(uint8_t)config_defs::hip_controllers::extension_angle,"hipControllers/extensionAngle.csv"},
53 {(uint8_t)config_defs::hip_controllers::franks_collins_hip, "hipControllers/franksCollins.csv"},
54 {(uint8_t)config_defs::hip_controllers::bang_bang, "hipControllers/bangBang.csv"},
55 {(uint8_t)config_defs::hip_controllers::late_stance, "hipControllers/lateStance.csv"},
56 {(uint8_t)config_defs::hip_controllers::gait_phase, "hipControllers/gaitPhase.csv"},
57 {(uint8_t)config_defs::hip_controllers::user_defined, "hipControllers/userDefined.csv"},
58 {(uint8_t)config_defs::hip_controllers::sine, "hipControllers/sine.csv"},
59 {(uint8_t)config_defs::hip_controllers::stasis, "hipControllers/stasis.csv"},
60 {(uint8_t)config_defs::hip_controllers::perturbation, "hipControllers/perturbation.csv"},
61 {(uint8_t)config_defs::hip_controllers::parabolic, "hipControllers/parabolic.csv"},
62 {(uint8_t)config_defs::hip_controllers::constant_torque, "hipControllers/constantTorque.csv"},
63 {(uint8_t)config_defs::hip_controllers::ptb_general,"hipControllers/ptbGeneral.csv"},
64 };
65
66 const ParamFilenameKey knee
67 {
68 {(uint8_t)config_defs::knee_controllers::disabled,"kneeControllers/zeroTorque.csv"},
69 {(uint8_t)config_defs::knee_controllers::zero_torque,"kneeControllers/zeroTorque.csv"},
70 {(uint8_t)config_defs::knee_controllers::user_defined, "kneeControllers/userDefined.csv"},
71 {(uint8_t)config_defs::knee_controllers::sine, "kneeControllers/sine.csv"},
72 {(uint8_t)config_defs::knee_controllers::stasis, "kneeControllers/stasis.csv"},
73 {(uint8_t)config_defs::knee_controllers::perturbation, "kneeControllers/perturbation.csv"},
74 {(uint8_t)config_defs::knee_controllers::constant_torque, "kneeControllers/constantTorque.csv"},
75 {(uint8_t)config_defs::knee_controllers::elbow_min_max, "kneeControllers/elbowMinMax.csv"},
76 };
77
78 const ParamFilenameKey ankle
79 {
80 {(uint8_t)config_defs::ankle_controllers::disabled,"ankleControllers/zeroTorque.csv"},
81 {(uint8_t)config_defs::ankle_controllers::zero_torque,"ankleControllers/zeroTorque.csv"},
82 {(uint8_t)config_defs::ankle_controllers::pjmc,"ankleControllers/PJMC.csv"},
83 {(uint8_t)config_defs::ankle_controllers::zhang_collins,"ankleControllers/zhangCollins.csv"},
84 {(uint8_t)config_defs::ankle_controllers::user_defined, "ankleControllers/userDefined.csv"},
85 {(uint8_t)config_defs::ankle_controllers::sine, "ankleControllers/sine.csv"},
86 {(uint8_t)config_defs::ankle_controllers::stasis, "ankleControllers/stasis.csv"},
87 {(uint8_t)config_defs::ankle_controllers::perturbation, "ankleControllers/perturbation.csv"},
88 {(uint8_t)config_defs::ankle_controllers::constant_torque, "ankleControllers/constantTorque.csv"},
89 {(uint8_t)config_defs::ankle_controllers::ptb_general,"ankleControllers/ptbGeneral.csv"},
90 {(uint8_t)config_defs::ankle_controllers::gasp,"ankleControllers/GAsP.csv"},
91 {(uint8_t)config_defs::ankle_controllers::elbow_min_max, "ankleControllers/elbowMinMax.csv"},
92 };
93 };
94
100 void print_param_error_message(uint8_t error_type);
101
113 uint8_t set_controller_params(uint8_t joint_id, uint8_t controller_id, uint8_t set_num, ExoData* exo_data);
114
115#endif
116#endif
Declares a class used to store data for the Exo to access.
Declares the functions needed and defines mapping between the INI keys and the exo components.
Class to store all the data related to the exo.
Definition ExoData.h:38