Skip to content

Commit

Permalink
Merge branch 'devel'
Browse files Browse the repository at this point in the history
  • Loading branch information
Nicogene committed Mar 7, 2023
2 parents 09ab8b4 + 23a523e commit 9694c90
Show file tree
Hide file tree
Showing 8 changed files with 165 additions and 41 deletions.
2 changes: 1 addition & 1 deletion CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
cmake_minimum_required(VERSION 3.12)

project(icub_firmware_shared
VERSION 1.29.0)
VERSION 1.33.0)

find_package(YCM 0.11.0 REQUIRED)

Expand Down
2 changes: 1 addition & 1 deletion eth/embobj/plus/comm-v2/icub/EoAnalogSensors.h
Original file line number Diff line number Diff line change
Expand Up @@ -648,7 +648,7 @@ typedef struct
{
uint16_t type : 4; // use eoas_pos_TYPE_t
uint16_t connector : 4; // connector on the board (0, 1, 2, ...) or id of the embot::hw device
uint16_t port : 4; // [0, 1, ..., 15], BUT: use values such as POS:hand_thumb taken from eObrd_portpos_t
uint16_t port : 4; // [0, 1, ..., 15], BUT: use values taken from eObrd_portpos_t
uint16_t enabled : 1; // if 1 is enabled
uint16_t invertdirection : 1;
uint16_t rotation : 2; // use eoas_pos_ROT_t except for eoas_pos_ROT_unknown
Expand Down
69 changes: 62 additions & 7 deletions eth/embobj/plus/comm-v2/icub/EoBoards.c
Original file line number Diff line number Diff line change
Expand Up @@ -164,6 +164,16 @@ static const eOmap_str_str_u08_t s_eoboards_map_of_connectors[] =
{"J5", "eobrd_conn_J5", eobrd_conn_J5},
{"J6", "eobrd_conn_J6", eobrd_conn_J6},
{"J7", "eobrd_conn_J7", eobrd_conn_J7},

{"J20", "eobrd_conn_J20", eobrd_conn_J20},
{"J21", "eobrd_conn_J21", eobrd_conn_J21},
{"J22", "eobrd_conn_J22", eobrd_conn_J22},
{"J23", "eobrd_conn_J23", eobrd_conn_J23},

{"J30", "eobrd_conn_J30", eobrd_conn_J30},
{"J31", "eobrd_conn_J31", eobrd_conn_J31},
{"J32", "eobrd_conn_J32", eobrd_conn_J32},
{"J33", "eobrd_conn_J33", eobrd_conn_J33},

{"none", "eobrd_conn_none", eobrd_conn_none},
{"unknown", "eobrd_conn_unknown", eobrd_conn_unknown}
Expand Down Expand Up @@ -200,11 +210,51 @@ static const eOmap_str_str_u08_u08_u08_t s_eoboards_map_of_ports[] =
{"mtb4fap_J3_SDA2", "eobrd_port_mtb4fap_J3_SDA2", eobrd_port_mtb4fap_J3_SDA2, eobrd_mtb4fap, eobrd_conn_J3_SDA2},
{"mtb4fap_J3_SDA3", "eobrd_port_mtb4fap_J3_SDA3", eobrd_port_mtb4fap_J3_SDA3, eobrd_mtb4fap, eobrd_conn_J3_SDA3},

{"mtb4_J3_SDA0", "eobrd_port_mtb4_J3_SDA0", eobrd_port_mtb4_J3_SDA0, eobrd_mtb4, eobrd_conn_J3_SDA0},
{"mtb4_J3_SDA1", "eobrd_port_mtb4_J3_SDA1", eobrd_port_mtb4_J3_SDA1, eobrd_mtb4, eobrd_conn_J3_SDA1},
{"mtb4_J3_SDA2", "eobrd_port_mtb4_J3_SDA2", eobrd_port_mtb4_J3_SDA2, eobrd_mtb4, eobrd_conn_J3_SDA2},
{"mtb4_J3_SDA3", "eobrd_port_mtb4_J3_SDA3", eobrd_port_mtb4_J3_SDA3, eobrd_mtb4, eobrd_conn_J3_SDA3},

{"mtb4c_J3_SDA0", "eobrd_port_mtb4c_J3_SDA0", eobrd_port_mtb4c_J3_SDA0, eobrd_mtb4c, eobrd_conn_J3_SDA0},
{"mtb4c_J3_SDA1", "eobrd_port_mtb4c_J3_SDA1", eobrd_port_mtb4c_J3_SDA1, eobrd_mtb4c, eobrd_conn_J3_SDA1},
{"mtb4c_J3_SDA2", "eobrd_port_mtb4c_J3_SDA2", eobrd_port_mtb4c_J3_SDA2, eobrd_mtb4c, eobrd_conn_J3_SDA2},
{"mtb4c_J3_SDA3", "eobrd_port_mtb4c_J3_SDA3", eobrd_port_mtb4c_J3_SDA3, eobrd_mtb4c, eobrd_conn_J3_SDA3},

{"pmc_J4", "eobrd_port_pmc_J4", eobrd_port_pmc_J4, eobrd_pmc, eobrd_conn_J4},
{"pmc_J5", "eobrd_port_pmc_J5", eobrd_port_pmc_J5, eobrd_pmc, eobrd_conn_J5},
{"pmc_J6", "eobrd_port_pmc_J6", eobrd_port_pmc_J6, eobrd_pmc, eobrd_conn_J6},
{"pmc_J7", "eobrd_port_pmc_J7", eobrd_port_pmc_J7, eobrd_pmc, eobrd_conn_J7},

{"mtb4fap_mmaJ20", "eobrd_port_mtb4fap_mmaJ20", eobrd_port_mtb4fap_mmaJ20, eobrd_mtb4fap, eobrd_conn_J20},
{"mtb4fap_mmaJ21", "eobrd_port_mtb4fap_mmaJ21", eobrd_port_mtb4fap_mmaJ21, eobrd_mtb4fap, eobrd_conn_J21},
{"mtb4fap_mmaJ22", "eobrd_port_mtb4fap_mmaJ22", eobrd_port_mtb4fap_mmaJ22, eobrd_mtb4fap, eobrd_conn_J22},
{"mtb4fap_mmaJ23", "eobrd_port_mtb4fap_mmaJ23", eobrd_port_mtb4fap_mmaJ23, eobrd_mtb4fap, eobrd_conn_J23},

{"mtb4_mmaJ20", "eobrd_port_mtb4_mmaJ20", eobrd_port_mtb4_mmaJ20, eobrd_mtb4, eobrd_conn_J20},
{"mtb4_mmaJ21", "eobrd_port_mtb4_mmaJ21", eobrd_port_mtb4_mmaJ21, eobrd_mtb4, eobrd_conn_J21},
{"mtb4_mmaJ22", "eobrd_port_mtb4_mmaJ22", eobrd_port_mtb4_mmaJ22, eobrd_mtb4, eobrd_conn_J22},
{"mtb4_mmaJ23", "eobrd_port_mtb4_mmaJ23", eobrd_port_mtb4_mmaJ23, eobrd_mtb4, eobrd_conn_J23},

{"mtb4c_mmaJ20", "eobrd_port_mtb4c_mmaJ20", eobrd_port_mtb4c_mmaJ20, eobrd_mtb4c, eobrd_conn_J20},
{"mtb4c_mmaJ21", "eobrd_port_mtb4c_mmaJ21", eobrd_port_mtb4c_mmaJ21, eobrd_mtb4c, eobrd_conn_J21},
{"mtb4c_mmaJ22", "eobrd_port_mtb4c_mmaJ22", eobrd_port_mtb4c_mmaJ22, eobrd_mtb4c, eobrd_conn_J22},
{"mtb4c_mmaJ23", "eobrd_port_mtb4c_mmaJ23", eobrd_port_mtb4c_mmaJ23, eobrd_mtb4c, eobrd_conn_J23},

{"mtb4fap_mmaJ30", "eobrd_port_mtb4fap_mmaJ30", eobrd_port_mtb4fap_mmaJ30, eobrd_mtb4fap, eobrd_conn_J30},
{"mtb4fap_mmaJ31", "eobrd_port_mtb4fap_mmaJ31", eobrd_port_mtb4fap_mmaJ31, eobrd_mtb4fap, eobrd_conn_J31},
{"mtb4fap_mmaJ32", "eobrd_port_mtb4fap_mmaJ32", eobrd_port_mtb4fap_mmaJ32, eobrd_mtb4fap, eobrd_conn_J32},
{"mtb4fap_mmaJ33", "eobrd_port_mtb4fap_mmaJ33", eobrd_port_mtb4fap_mmaJ33, eobrd_mtb4fap, eobrd_conn_J33},

{"mtb4_mmaJ30", "eobrd_port_mtb4_mmaJ30", eobrd_port_mtb4_mmaJ30, eobrd_mtb4, eobrd_conn_J30},
{"mtb4_mmaJ31", "eobrd_port_mtb4_mmaJ31", eobrd_port_mtb4_mmaJ31, eobrd_mtb4, eobrd_conn_J31},
{"mtb4_mmaJ32", "eobrd_port_mtb4_mmaJ32", eobrd_port_mtb4_mmaJ32, eobrd_mtb4, eobrd_conn_J32},
{"mtb4_mmaJ33", "eobrd_port_mtb4_mmaJ33", eobrd_port_mtb4_mmaJ33, eobrd_mtb4, eobrd_conn_J33},

{"mtb4c_mmaJ30", "eobrd_port_mtb4c_mmaJ30", eobrd_port_mtb4c_mmaJ30, eobrd_mtb4c, eobrd_conn_J30},
{"mtb4c_mmaJ31", "eobrd_port_mtb4c_mmaJ31", eobrd_port_mtb4c_mmaJ31, eobrd_mtb4c, eobrd_conn_J31},
{"mtb4c_mmaJ32", "eobrd_port_mtb4c_mmaJ32", eobrd_port_mtb4c_mmaJ32, eobrd_mtb4c, eobrd_conn_J32},
{"mtb4c_mmaJ33", "eobrd_port_mtb4c_mmaJ33", eobrd_port_mtb4c_mmaJ33, eobrd_mtb4c, eobrd_conn_J33},

{"none", "eobrd_port_none", eobrd_port_none, eobrd_none, eobrd_conn_none},
{"unknown", "eobrd_port_unknown", eobrd_port_unknown, eobrd_unknown, eobrd_conn_unknown}
}; EO_VERIFYsizeof(s_eoboards_map_of_ports, (eobrd_ports_numberof+2)*sizeof(eOmap_str_str_u08_u08_u08_t))
Expand Down Expand Up @@ -237,13 +287,13 @@ static const eOmap_str_str_u08_t s_boards_map_of_portpscs[] =

static const eOmap_str_str_u08_t s_boards_map_of_portposs[] =
{
{"hand_thumb", "eobrd_portpos_hand_thumb", eobrd_portpos_hand_thumb},
{"hand_index", "eobrd_portpos_hand_index", eobrd_portpos_hand_index},
{"hand_medium", "eobrd_portpos_hand_medium", eobrd_portpos_hand_medium},
{"hand_pinky", "eobrd_portpos_hand_pinky", eobrd_portpos_hand_pinky},
{"hand_thumbmetacarpus", "eobrd_portpos_hand_thumbmetacarpus", eobrd_portpos_hand_thumbmetacarpus},
{"hand_thumbrotation", "eobrd_portpos_hand_thumbrotation", eobrd_portpos_hand_thumbrotation},
{"hand_indexadduction", "eobrd_portpos_hand_indexadduction", eobrd_portpos_hand_indexadduction},
{"hand_thumb_oc", "eobrd_portpos_hand_thumb_oc", eobrd_portpos_hand_thumb_oc},
{"hand_index_oc", "eobrd_portpos_hand_index_oc", eobrd_portpos_hand_index_oc},
{"hand_middle_oc", "eobrd_portpos_hand_middle_oc", eobrd_portpos_hand_middle_oc},
{"hand_ring_pinky_oc", "eobrd_portpos_hand_ring_pinky_oc", eobrd_portpos_hand_ring_pinky_oc},
{"hand_thumb_add", "eobrd_portpos_hand_thumb_add", eobrd_portpos_hand_thumb_add},
{"hand_tbd", "eobrd_portpos_hand_tbd", eobrd_portpos_hand_tbd},
{"hand_index_add", "eobrd_portpos_hand_index_add", eobrd_portpos_hand_index_add},

{"none", "eobrd_portpos_none", eobrd_portpos_none},
{"unknown", "eobrd_portpos_unknown", eobrd_portpos_unknown}
Expand Down Expand Up @@ -624,6 +674,11 @@ extern eObrd_canmonitor_reportmode_t eoboards_string2reportmode(const char * str
return((eObrd_canmonitor_reportmode_t)eo_common_map_str_str_u08__string2value(map, size, string, usecompactstring, defvalue));
}

extern uint8_t eoboards_type2numberofcores(eObrd_type_t type)
{
return type == eobrd_amc ? 2 : 1;
}


// --------------------------------------------------------------------------------------------------------------------
// - definition of extern hidden functions
Expand Down
73 changes: 62 additions & 11 deletions eth/embobj/plus/comm-v2/icub/EoBoards.h
Original file line number Diff line number Diff line change
Expand Up @@ -307,13 +307,21 @@ typedef enum
eobrd_conn_J4 = 23,
eobrd_conn_J5 = 24,
eobrd_conn_J6 = 25,
eobrd_conn_J7 = 26,
eobrd_conn_J7 = 26,
eobrd_conn_J20 = 27,
eobrd_conn_J21 = 28,
eobrd_conn_J22 = 29,
eobrd_conn_J23 = 30,
eobrd_conn_J30 = 31,
eobrd_conn_J31 = 32,
eobrd_conn_J32 = 33,
eobrd_conn_J33 = 34,

eobrd_conn_none = 0,
eobrd_conn_unknown = 255
} eObrd_connector_t;

enum { eobrd_connectors_numberof = 26 };
enum { eobrd_connectors_numberof = 34 };


typedef enum
Expand Down Expand Up @@ -349,15 +357,56 @@ typedef enum
eobrd_port_mtb4fap_J3_SDA1 = 1,
eobrd_port_mtb4fap_J3_SDA2 = 2,
eobrd_port_mtb4fap_J3_SDA3 = 3,

eobrd_port_mtb4_J3_SDA0 = 0,
eobrd_port_mtb4_J3_SDA1 = 1,
eobrd_port_mtb4_J3_SDA2 = 2,
eobrd_port_mtb4_J3_SDA3 = 3,

eobrd_port_mtb4c_J3_SDA0 = 0,
eobrd_port_mtb4c_J3_SDA1 = 1,
eobrd_port_mtb4c_J3_SDA2 = 2,
eobrd_port_mtb4c_J3_SDA3 = 3,

eobrd_port_pmc_J4 = 0, // I2C1
eobrd_port_pmc_J5 = 1, // I2C2
eobrd_port_pmc_J6 = 2, // I2C3
eobrd_port_pmc_J7 = 3 // I2C4
eobrd_port_pmc_J7 = 3, // I2C4

eobrd_port_mtb4fap_mmaJ20 = 0,
eobrd_port_mtb4fap_mmaJ21 = 1,
eobrd_port_mtb4fap_mmaJ22 = 2,
eobrd_port_mtb4fap_mmaJ23 = 3,

eobrd_port_mtb4_mmaJ20 = 0,
eobrd_port_mtb4_mmaJ21 = 1,
eobrd_port_mtb4_mmaJ22 = 2,
eobrd_port_mtb4_mmaJ23 = 3,

eobrd_port_mtb4c_mmaJ20 = 0,
eobrd_port_mtb4c_mmaJ21 = 1,
eobrd_port_mtb4c_mmaJ22 = 2,
eobrd_port_mtb4c_mmaJ23 = 3,

eobrd_port_mtb4fap_mmaJ30 = 0,
eobrd_port_mtb4fap_mmaJ31 = 1,
eobrd_port_mtb4fap_mmaJ32 = 2,
eobrd_port_mtb4fap_mmaJ33 = 3,

eobrd_port_mtb4_mmaJ30 = 0,
eobrd_port_mtb4_mmaJ31 = 1,
eobrd_port_mtb4_mmaJ32 = 2,
eobrd_port_mtb4_mmaJ33 = 3,

eobrd_port_mtb4c_mmaJ30 = 0,
eobrd_port_mtb4c_mmaJ31 = 1,
eobrd_port_mtb4c_mmaJ32 = 2,
eobrd_port_mtb4c_mmaJ33 = 3


} eObrd_port_t;

enum { eobrd_ports_numberof = 27 };
enum { eobrd_ports_numberof = 59 };


typedef enum
Expand Down Expand Up @@ -390,13 +439,13 @@ enum { eobrd_portpscs_numberof = 2 };

typedef enum
{
eobrd_portpos_hand_thumb = 0,
eobrd_portpos_hand_index = 1,
eobrd_portpos_hand_medium = 2,
eobrd_portpos_hand_pinky = 3,
eobrd_portpos_hand_thumbmetacarpus = 4,
eobrd_portpos_hand_thumbrotation = 5,
eobrd_portpos_hand_indexadduction = 6,
eobrd_portpos_hand_thumb_oc = 0,
eobrd_portpos_hand_index_oc = 1,
eobrd_portpos_hand_middle_oc = 2,
eobrd_portpos_hand_ring_pinky_oc = 3,
eobrd_portpos_hand_thumb_add = 4,
eobrd_portpos_hand_tbd = 5,
eobrd_portpos_hand_index_add = 6,

eobrd_portpos_none = 31, // as ... eobrd_port_none
eobrd_portpos_unknown = 30 // as ... eobrd_port_unknown
Expand Down Expand Up @@ -469,6 +518,8 @@ extern eObrd_portpos_t eoboards_string2portpos(const char * string, eObool_t use
extern const char * eoboards_reportmode2string(eObrd_canmonitor_reportmode_t mode, eObool_t usecompactstring);
extern eObrd_canmonitor_reportmode_t eoboards_string2reportmode(const char * string, eObool_t usecompactstring);

extern uint8_t eoboards_type2numberofcores(eObrd_type_t type);

/** @}
end of group eo_cevcwervcrev5555
**/
Expand Down
12 changes: 8 additions & 4 deletions eth/embobj/plus/comm-v2/icub/EoError.c
Original file line number Diff line number Diff line change
Expand Up @@ -171,16 +171,20 @@ const eoerror_valuestring_t eoerror_valuestrings_SYS[] =
const eoerror_valuestring_t eoerror_valuestrings_HW[] =
{ // very important: fill table with order of eOerror_value_HW_t
// in case of holes, use {0, NULL}
{eoerror_value_HW_first, "HW: first error message of category hw"},
{eoerror_value_HW_second, "HW: second error message of category hw"},
{eoerror_value_HW_strain_saturation, "HW: strain values saturation. In p16 there is the channel involved, in p64 there are the saturation counts for the last sec of both types (lower: LS32bits, upper MS32bits"},
{eoerror_value_HW_first, "HW: first error message of category hw"},
{eoerror_value_HW_second, "HW: second error message of category hw"},
{eoerror_value_HW_strain_saturation, "HW: strain values saturation. In p16 there is the channel involved, in p64 there are the saturation counts for the last sec of both types (lower: LS32bits, upper MS32bits"},
{eoerror_value_HW_encoder_invalid_value, "HW - encoder: the position data is not valid"},
{eoerror_value_HW_encoder_close_to_limits, "HW - encoder: the position data is valid, but some operating conditions are close to limits."},
{eoerror_value_HW_encoder_crc, "HW - encoder: inverted CRC is invalid"},
{eoerror_value_HW_encoder_not_connected, "HW - encoder: not connected"}
}; EO_VERIFYsizeof(eoerror_valuestrings_HW, eoerror_value_HW_numberof*sizeof(const eoerror_valuestring_t))


const eoerror_valuestring_t eoerror_valuestrings_MC[] =
{ // very important: fill table with order of eOerror_value_MC_t
// in case of holes, use {0, NULL}
{eoerror_value_MC_motor_external_fault, "MC: exernal fault button pressed."},
{eoerror_value_MC_motor_external_fault, "MC: external fault button pressed."},
{eoerror_value_MC_motor_overcurrent, "MC: overcurrent. The motor has been turned off to prevent it from being damaged by an impulsive spike of current. par16 = ID of joint."},
{eoerror_value_MC_motor_i2t_limit, "MC: i2t limit exceeded. The motor has been turned off to prevent it from being damaged by overheating due to a continuous high current. par16 = ID of joint."},
{eoerror_value_MC_motor_hallsensors, "MC: 2FOC hall sensors fault. Invalid sequence in motor Hall effect sensors, please check motor hall cable connections. par16 = ID of joint."},
Expand Down
12 changes: 8 additions & 4 deletions eth/embobj/plus/comm-v2/icub/EoError.h
Original file line number Diff line number Diff line change
Expand Up @@ -191,12 +191,16 @@ enum { eoerror_value_SYS_numberof = 64 };
**/
typedef enum
{
eoerror_value_HW_first = 0,
eoerror_value_HW_second = 1,
eoerror_value_HW_strain_saturation = 2
eoerror_value_HW_first = 0,
eoerror_value_HW_second = 1,
eoerror_value_HW_strain_saturation = 2,
eoerror_value_HW_encoder_invalid_value = 3,
eoerror_value_HW_encoder_close_to_limits = 4,
eoerror_value_HW_encoder_crc = 5,
eoerror_value_HW_encoder_not_connected = 6
} eOerror_value_HW_t;

enum { eoerror_value_HW_numberof = 3 };
enum { eoerror_value_HW_numberof = 7 };



Expand Down
5 changes: 3 additions & 2 deletions eth/embobj/plus/comm-v2/icub/EoUpdaterProtocol.c
Original file line number Diff line number Diff line change
Expand Up @@ -68,7 +68,7 @@
// - definition (and initialisation) of static variables
// --------------------------------------------------------------------------------------------------------------------

static const char * s_eouprot_procnames[uprot_proc_numberofthem+1] = {"eLoader", "eUpdater", "eApplication", "eApplPROGupdater", "uprot_proc_None"};
static const char * s_eouprot_procnames[uprot_proc_numberofthem+1] = {"eLoader", "eUpdater", "eApplication", "eApplPROGupdater", "eOther01", "uprot_proc_None"};


// --------------------------------------------------------------------------------------------------------------------
Expand Down Expand Up @@ -324,7 +324,8 @@ extern eObool_t eouprot_can_process_opcode(eOuprot_process_t proc, uint8_t proto
{
targetcapability = uprot_canDO_LEGACY_EEPROM_erase;
} break;


case uprot_OPC_DISCOVER2:
case uprot_OPC_DISCOVER:
{
targetcapability = uprot_canDO_reply2discover;
Expand Down
31 changes: 20 additions & 11 deletions eth/embobj/plus/comm-v2/icub/EoUpdaterProtocol.h
Original file line number Diff line number Diff line change
Expand Up @@ -64,15 +64,17 @@ typedef enum
eUpdater = 1, /**< the eUpdater: the one responsible for performing FW update */
eApplication = 2, /**< the eApplication: the standard application */
eApplPROGupdater = 3, /**< the application used to perform programming of a new eUpdater */
eOther01 = 4, /**< the eOther01: initially the application running on cm4 of AMC board */
uprot_proc_None = 255,

uprot_proc_Loader = eLoader,
uprot_proc_Updater = eUpdater,
uprot_proc_Application = eApplication,
uprot_proc_ApplPROGupdater = eApplPROGupdater
uprot_proc_Loader = eLoader,
uprot_proc_Updater = eUpdater,
uprot_proc_Application00 = eApplication,
uprot_proc_Application01 = eOther01,
uprot_proc_ApplPROGupdater = eApplPROGupdater
} eOuprot_process_t;

enum { uprot_proc_numberofthem = 4 };
enum { uprot_proc_numberofthem = 5 };


typedef enum
Expand All @@ -85,12 +87,12 @@ typedef enum
uprot_OPC_LEGACY_IP_ADDR_SET= 0x07,
uprot_OPC_LEGACY_EEPROM_ERASE = 0x12, // former SYSEEPROMERASE


uprot_OPC_DISCOVER = 0x7F,
uprot_OPC_DISCOVER = 0x7F,
uprot_OPC_MOREINFO = 0x79,
uprot_OPC_DISCOVER2 = 0x6F,

uprot_OPC_PROG_START = 0x01,
uprot_OPC_PROG_DATA = 0x02,
uprot_OPC_PROG_DATA = 0x02,
uprot_OPC_PROG_END = 0x04,


Expand All @@ -99,6 +101,8 @@ typedef enum
uprot_OPC_IP_ADDR_SET = 0x77,
uprot_OPC_EEPROM_ERASE = 0x72,
uprot_OPC_EEPROM_READ = 0x13,

uprot_OPC_ERASE_APPLICATION = 0x82,

uprot_OPC_BLINK = 0x0B,
uprot_OPC_JUMP2UPDATER = 0x0C,
Expand Down Expand Up @@ -189,14 +193,13 @@ typedef struct
uint16_t rom_size_kb; // the max size in kb of the rom of the process.
} eOuprot_procinfo_t; EO_VERIFYsizeof(eOuprot_procinfo_t, 16)


typedef struct
{
uint8_t numberofthem; // number of processes. it typically is 3, but it can be 2 if the eApplication is not available
uint8_t startup; // it is the process launched by the eLoader at bootstrap. it typically is the eUpdater but it may be the eApplication
uint8_t def2run; // it is the process launched after the 5 second safe time is terminated
uint8_t runningnow; // it is the process which is running at the time of processing teh reply. it may be eUpdater or eApplication or eApplPROGupdater
eOuprot_procinfo_t info[3];
uint8_t runningnow; // it is the process which is running at the time of processing the reply. it may be eUpdater or eApplication or eApplPROGupdater
eOuprot_procinfo_t info[3]; // eLoader, eUpdater, eApplication
} eOuprot_proctable_t; EO_VERIFYsizeof(eOuprot_proctable_t, 52)


Expand Down Expand Up @@ -305,6 +308,12 @@ typedef struct
uint8_t boardinfo32[32];// where: boardinfo32[0] = strlen(&boardinfo32[1]) but if boardinfo32[0] is 255 then it means that it is not used
} eOuprot_cmd_DISCOVER_REPLY_t; EO_VERIFYsizeof(eOuprot_cmd_DISCOVER_REPLY_t, 100)

// used to host the reply2 coming from the amc board that can run more applications using the other cores
typedef struct
{
eOuprot_cmd_DISCOVER_REPLY_t discoveryreply;
eOuprot_procinfo_t extraprocs[2];
} eOuprot_cmd_DISCOVER_REPLY2_t; EO_VERIFYsizeof(eOuprot_cmd_DISCOVER_REPLY2_t, sizeof(eOuprot_cmd_DISCOVER_REPLY_t)+16*2)

// used to achieve more information about a specific board. this command is now superseded by what teh command eOuprot_cmd_DISCOVERY_t retrieves.
// we nevertheless use it because of presence of legacy boards. this command is recognised by legacy boards as a eOuprot_cmd_LEGACY_PROCS_t.
Expand Down

0 comments on commit 9694c90

Please sign in to comment.