main_ubi_sdk v 0.1.3
This is UBI4 documentation
device_info_structs.h
Go to the documentation of this file.
1/*
2 ******************************************************************************
3 * @file device_info_structs.h
4 * @author A.Alborov
5 ******************************************************************************
6 */
7
8#ifndef INC_DEVICE_INFO_STRUCTS_H_
9#define INC_DEVICE_INFO_STRUCTS_H_
10
11#ifdef __cplusplus
12extern "C" {
13#endif
14
15#include "stdint.h"
16#include "stdbool.h"
17#include "UBI_SDK.h"
18//#include "binding_system.h"
20
21
22
23
28
60
61
80
81typedef struct {
82 char ProductName[32];
85 char ProductLabel[16];
86 uint8_t ProductType;
87 uint8_t ProductCode;
88
90 uint32_t ProductUUID;
91
94
95} __attribute__((__packed__)) base_ProductInfo_struct;
96
97typedef struct {
98 char BoardName[32];
99 uint8_t BoardVersion;
101 uint8_t BoardRev;
102 uint8_t BoardSubRev;
103 uint16_t BoardBuild;
106
109
110} __attribute__((__packed__)) base_BoardInfo_struct;
111
112typedef struct {
113 char FWName[32];
118
119 char FWLabel[16];
120 uint8_t FWType;
121 uint8_t FWCode;
122
124 uint32_t FWSize;
125 uint32_t FWCRC;
126
131
134
135} __attribute__((__packed__)) base_FWInfo_struct;
136
137typedef struct {
141
144
146
148
149 uint8_t BootloaderStart :1;
150 uint8_t BotloaderRegRes :7;
151
154
156
157} __attribute__((__packed__)) base_BootloaderInfo_struct;
158
159typedef struct {
163
167
168} __attribute__((__packed__)) base_ServiceInfo_struct;
169
170typedef struct {
171
175
176} __attribute__((__packed__)) CpuModuleSettings_struct;
177
178#ifdef MAX_SUB_DEVICES
179
180typedef struct {
181 device_types_enum DeviceType: 8;
182 device_codes_enum DeviceCode: 8;
183 device_roles_enum DeviceRole: 8;
184
185 uint8_t DeviceVersion;
186 uint8_t DeviceSubVersion;
187
188 uint8_t DeviceAddress;
189
190 uint8_t ParametersNum;
191
192 uint8_t SubDeviceNum;
193
194 uint8_t DefaultPort;
195
196} __attribute__((__packed__)) baseSubDeviceInfo_struct;
197
198typedef struct {
199 uint8_t Size;
200 uint8_t Count;
201 uint16_t ItemSize;
202 baseSubDeviceInfo_struct DevicesArray[MAX_SUB_DEVICES];
203
204} __attribute__((__packed__)) baseSubDevicesArrayInfo_struct;
205
206#endif
207
212
217
218
219#ifdef DRIVE_NUM
220
221typedef struct {
222 uint32_t calib_steps;
223 uint16_t calib_current;
224 uint8_t calib_status;
225
226 uint16_t current_limit_ma;
227 uint8_t current_limit_percent;
228 uint16_t overcurrent_counter_max;
229
230 uint32_t motor_cycles_100ms;
231 uint32_t motor_driver_cycles_100ms;
232
233} __attribute__((__packed__)) Drive_struct;
234
235typedef struct {
236 uint8_t Size;
237 uint8_t Count;
238 uint16_t ItemSize;
239 Drive_struct GesturesArray[DRIVE_NUM];
240
241} __attribute__((__packed__)) DriveSettingsInfo_struct;
242
243#endif
244
245#ifdef DRIVE_NUM
246
247typedef enum {
248 OCBS_OPEN = 0x00,
249 OCBS_CLOSE = 0x01,
250 OCBS_OPEN_DELAY = 0x80,
251 OCBS_CLOSE_DELAY = 0x81,
252} OPEN_CLOSE_BUTTON_STATE_ENUM;
253
254typedef enum {
255 SAVE_DATA_USER = 0x01,
256 NOT_SAVE_DATA= 0x00,
257} SAVE_BUTTON_STATE_ENUM;
258
259typedef struct {
260 uint8_t id;
261 uint8_t open_position[DRIVE_NUM];
262 uint8_t close_position[DRIVE_NUM];
263 uint8_t open_to_close_time_shift[DRIVE_NUM];
264 uint8_t close_to_open_time_shift[DRIVE_NUM];
265} __attribute__((__packed__)) GestureInfo_struct;
266
267typedef struct {
268 GestureInfo_struct gesture_info;
269 OPEN_CLOSE_BUTTON_STATE_ENUM open_close_button_state;
270 //SAVE_BUTTON_STATE_ENUM save_button_state;
271}__attribute__((__packed__)) GestureInfoTransfer_struct;
272
273#ifdef GESTURE_COLLECTION_SIZE
274
275typedef struct {
276 uint8_t Size;
277 uint8_t Count;
278 uint16_t ItemSize;
279 uint8_t NumDrive;
280 GestureInfo_struct GesturesArray[GESTURE_COLLECTION_SIZE];
281
282} __attribute__((__packed__)) GesturesCollectionInfo_struct;
283
284typedef struct {
285 uint8_t slot;
286 uint8_t pos;
287 uint8_t ID;
288 uint8_t ImageKey;
289 uint8_t Code;
290
291} __attribute__((__packed__)) GesturesKeyDescriptionItem_struct;
292
293typedef struct {
294 uint8_t Size;
295 uint8_t Count;
296 uint16_t ItemSize;
297 GesturesKeyDescriptionItem_struct GesturesDiscriptionArray[GESTURE_COLLECTION_SIZE];
298
299} __attribute__((__packed__)) GesturesKeyDescription_struct;
300
301#endif
302
303#ifdef USER_GESTURES_NUM
304typedef struct {
305 uint8_t Size;
306 uint8_t Count;
307 uint16_t ItemSize;
308 uint8_t NumDrive;
309 GestureInfo_struct GesturesArray[USER_GESTURES_NUM];
310
311} __attribute__((__packed__)) UserGesturesInfo_struct;
312
313typedef struct {
314 uint8_t slot;
315 uint8_t pos;
316 uint8_t ID;
317 uint8_t ImageKey;
318 uint8_t Code;
319 char name[16];
320
321} __attribute__((__packed__)) GesturesStringDescriptionItem_struct;
322
323typedef struct {
324 uint8_t Size;
325 uint8_t Count;
326 uint16_t ItemSize;
327 GesturesStringDescriptionItem_struct GesturesDiscriptionArray[USER_GESTURES_NUM];
328
329} __attribute__((__packed__)) GesturesStringDescription_struct;
330
331typedef struct {
332 uint32_t encoder_steps[6];
333 int16_t current[6];
334 uint8_t status[6];
335} __attribute__((packed)) FingerCalib_struct;
336
337#endif
338
339#endif
340
341/* EXAMPLE PARAMETERS SLOT STRUCT in DataTable
342 * Need copy in device_info.h
343 typedef struct
344 {
345 uint8_t Size; // = DEVICE_PARAMETERS_SIZE;
346 uint8_t Count // = DEVICE_PARAMETERS_SIZE;
347 uint16_t ItemSize; // = sizeof(base_parameter_info_struct);
348 base_parameter_info_struct ParametersInfo[DEVICE_PARAMETERS_SIZE];
349
350 }__attribute__((__packed__))ParametersSlotInfo_struct;
351 */
352
354
355#ifdef __cplusplus
356}
357#endif
358
359#endif /* INC_DEVICE_INFO_STRUCTS_H_*/
board_codes_enum
Definition enum_discription.h:226
device_types_enum
Definition enum_discription.h:86
device_roles_enum
Definition enum_discription.h:133
board_types_enum
Definition enum_discription.h:215
device_codes_enum
Definition enum_discription.h:75
data_table_slots_code_enum
Список кодов слотов Data Table.
Definition device_info_structs.h:30
product_code_prostetic_enum
Definition device_info_structs.h:213
product_type_enum
Definition device_info_structs.h:208
@ DTCE_DEVICE_INFO_TYPE
Definition device_info_structs.h:34
@ DTCE_PRODUCT_INFO_TYPE
Definition device_info_structs.h:36
@ DTCE_USER_GESTURES
Definition device_info_structs.h:41
@ DTCE_OPTIC_SETTINGS
Definition device_info_structs.h:55
@ DTCE_BOOTLOADER_INFO_TYPE
Definition device_info_structs.h:32
@ DTCE_EMG_SETTINGS
Definition device_info_structs.h:43
@ DTCE_DRIVE_SETTINGS
Definition device_info_structs.h:42
@ DTCE_UNKNOW
Definition device_info_structs.h:31
@ DTCE_SYSTEM_DEVICES
Definition device_info_structs.h:38
@ DTCE_BMS_SETTING
Definition device_info_structs.h:45
@ DCTE_GESTURES_KEY_DESCRIPTION
Definition device_info_structs.h:51
@ DTCE_UPPER_LIMB_PROSTHESIS_SETTINGS
Definition device_info_structs.h:50
@ DTCE_FEST_X_SETTINGS
Definition device_info_structs.h:46
@ DTCE_FW_INFO_TYPE
Definition device_info_structs.h:33
@ DTCE_SERVICE_INFO
Definition device_info_structs.h:37
@ DTCE_GESTURE_COLLECTION
Definition device_info_structs.h:40
@ DTCE_MOTOR_SETTINGS
Definition device_info_structs.h:47
@ DCTE_GESTURE_GROUP
Definition device_info_structs.h:53
@ DTCE_INDY_SETTINGS
Definition device_info_structs.h:44
@ DTCE_BOARD_INFO_TYPE
Definition device_info_structs.h:35
@ DTCE_PRESSURE_SETTINGS
Definition device_info_structs.h:57
@ DTCE_FREE_SLOT
Definition device_info_structs.h:58
@ DTCE_DYNAMIC_BINDING_STRUCTS
Definition device_info_structs.h:49
@ DCTE_DMS_BINDING_DATA
Definition device_info_structs.h:54
@ DTCE_GUI_SETTINGS
Definition device_info_structs.h:56
@ DCTE_GESTURES_STRING_DESCRIPTION
Definition device_info_structs.h:52
@ DTCE_DRIVE_INFO
Definition device_info_structs.h:39
@ DTCE_STATIC_BINDING_STRUCTS
Definition device_info_structs.h:48
@ PPCE_LEFT_HAND
Definition device_info_structs.h:214
@ PPCE_RIGHT_HAND
Definition device_info_structs.h:215
@ PTE_DIAGNOSTIC_EQUIPMENT
Definition device_info_structs.h:210
@ PTE_PROSTETIC
Definition device_info_structs.h:209
Definition device_info_structs.h:170
int one_wire_speed
Definition device_info_structs.h:173
int spi_speed
Definition device_info_structs.h:172
int uart_speed
Definition device_info_structs.h:174
Definition device_info_structs.h:97
char * BoardAdditionalInfo
Definition device_info_structs.h:108
uint16_t BoardBuild
Definition device_info_structs.h:103
uint8_t BoardRev
Definition device_info_structs.h:101
board_types_enum BoardType
Definition device_info_structs.h:104
uint8_t BoardVersion
Definition device_info_structs.h:99
uint8_t BoardSubRev
Definition device_info_structs.h:102
uint8_t BoardAdditionalInfoType
Definition device_info_structs.h:107
uint8_t BoardSubVersion
Definition device_info_structs.h:100
board_codes_enum BoardCode
Definition device_info_structs.h:105
char BoardName[32]
Definition device_info_structs.h:98
Definition device_info_structs.h:137
uint8_t ProtocolVersion
Definition device_info_structs.h:142
uint8_t BotloaderRegRes
Definition device_info_structs.h:150
uint32_t BootloaderAdditionalInfo
Definition device_info_structs.h:155
uint32_t BootloaderSize
Definition device_info_structs.h:153
uint8_t BootloaderCRC
Definition device_info_structs.h:147
uint8_t ProtocolSubVersion
Definition device_info_structs.h:143
uint8_t BootloaderAdditionalInfoType
Definition device_info_structs.h:145
uint8_t BootloaderSubVersion
Definition device_info_structs.h:140
uint8_t BootloaderVersion
Definition device_info_structs.h:139
uint8_t BootloaderCode
Definition device_info_structs.h:138
uint8_t BootloaderStart
Definition device_info_structs.h:149
uint32_t BootloaderStartAddress
Definition device_info_structs.h:152
Definition device_info_structs.h:112
uint8_t SDKMinorVersion
Definition device_info_structs.h:128
uint8_t FWType
Definition device_info_structs.h:120
uint8_t FWCode
Definition device_info_structs.h:121
uint8_t FWMinorVersion
Definition device_info_structs.h:115
uint32_t FWSize
Definition device_info_structs.h:124
uint8_t SDKQuickFixVersion
Definition device_info_structs.h:129
uint8_t SDKMajorVersion
Definition device_info_structs.h:127
uint8_t FWSinceLastTag
Definition device_info_structs.h:117
uint8_t FWQuickFixVersion
Definition device_info_structs.h:116
uint8_t FWMajorVersion
Definition device_info_structs.h:114
uint8_t SDKSinceLastTag
Definition device_info_structs.h:130
uint32_t FWCRC
Definition device_info_structs.h:125
char FWLabel[16]
Definition device_info_structs.h:119
uint32_t FWStartAddress
Definition device_info_structs.h:123
uint32_t FWAdditionalInfo
Definition device_info_structs.h:133
char FWName[32]
Definition device_info_structs.h:113
uint8_t FWAdditionalInfoType
Definition device_info_structs.h:132
Definition device_info_structs.h:81
char ProductName[32]
Definition device_info_structs.h:82
uint32_t ProductUUID
Definition device_info_structs.h:90
uint32_t ProductAdditionalInfo
Definition device_info_structs.h:93
uint8_t ProductAdditionalInfoType
Definition device_info_structs.h:92
uint8_t ProductVersion
Definition device_info_structs.h:83
uint8_t ProductSubVersion
Definition device_info_structs.h:84
char ProductLabel[16]
Definition device_info_structs.h:85
uint8_t ProductCode
Definition device_info_structs.h:87
char ProductUUID_Prefix[16]
Definition device_info_structs.h:89
uint8_t ProductType
Definition device_info_structs.h:86
Definition device_info_structs.h:159
uint16_t ProductionDate_Year
Definition device_info_structs.h:162
uint8_t LastServiceDate_Month
Definition device_info_structs.h:165
uint8_t ProductionDate_Day
Definition device_info_structs.h:160
uint16_t LastServiceDate_Year
Definition device_info_structs.h:166
uint8_t LastServiceDate_Day
Definition device_info_structs.h:164
uint8_t ProductionDate_Month
Definition device_info_structs.h:161
Информация о девайсе
Definition device_info_structs.h:63
device_codes_enum DeviceCode
Definition device_info_structs.h:69
uint8_t DeviceAdditionalInfoType
Definition device_info_structs.h:77
char DeviceName[32]
Definition device_info_structs.h:64
uint32_t DeviceAdditionalInfo
Definition device_info_structs.h:78
uint32_t DeviceUUID
Definition device_info_structs.h:75
uint8_t DeviceAddress
Definition device_info_structs.h:72
char DeviceUUID_Prefix[16]
Definition device_info_structs.h:74
device_types_enum DeviceType
Definition device_info_structs.h:68
uint8_t DeviceVersion
Definition device_info_structs.h:65
char DeviceLabel[16]
Definition device_info_structs.h:67
device_roles_enum DeviceRole
Definition device_info_structs.h:70
uint8_t DeviceSubVersion
Definition device_info_structs.h:66