Cmd 104 full
From DIDEAS Wiki
0
data->param[0] = walking_state.StatemachineStatus; data->param[1] = walking_state.SM_STATE; data->param[2] = (INT16_T) (sensors.ankle_torque * 100.0); data->param[3] = sensors.motor_position/20; //100/2000 The 100 is for local scaling . 2000 encoder counts data->param[4] = sensors.motor_velocity_rads * ANKLE_TRANSMISSION_RATIO * 100; data->param[5] = sensors.ankle_angle_mot_deg * 100; // plantarflex = positve data->param[6] = walking_state.desired_motor_torque * 1000; data->param[7] = sensors.ankle_angle_hall_deg; data->param[8] = HALL_GAIN; data->param[9] = sensors.motor_velocity_rpm;
6
- demux_sm_debug(data->param); // demux_statemachine.c
param[0] = demux_sm_state; param[1] = demux_sm_tics_in_current_state;
- motor_sm_debug(data->param+2); // motor_init.c
param[0] = mc_state; param[1] = mc_tics;
- mc_comm_debug(data->param+4); // motor_commands.c
params[0] = mc_comm_state.last_command; params[1] = mc_comm_state.outstanding_command; params[2] = mc_comm_state.valid_response; params[3] = mc_comm_state.last_errcode; params[4] = mc_comm_state.err_cnt; params[5] = mc_comm_state.default_cmd_cnt;
- demux_sm_states:
enum demux_states { FIRST_STATE=1, LOCAL_INIT, SYSTEM_INIT, RUN_TIME };
- mc_states:
enum MC_INIT_STATE {MC_STATE_ZERO=0, \ MC_STATE_DO_START=1, \ MC_SET_FILTER, \ MC_MEASURE_BATTERY_OFFSET, \ MC_TEST_CLAMP, \ MC_STATE_BRANCH_BOOT_TYPE, \ MC_MODE_2, \ MC_EXIT_2, \ MC_MEASURE_OFFSET, \ MC_READ_OFFSET, \ MC_SET_OFFSET, \ MC_FORCE_ZERO_POS, \ MC_WAIT_FOR_ZERO, \ MC_MODE_3, \ MC_INIT_SUCCESS=50, \ MC_INIT_ERROR, \ MC_STATE_IDLE, \ };