C2A_Core
telemetry_definitions.c
[詳解]
1 #pragma section REPRO
9 #include "telemetry_source.h"
10 
11 static TF_TLM_FUNC_ACK Tlm_MOBC_(uint8_t* packet, uint16_t* len, uint16_t max_len);
12 static TF_TLM_FUNC_ACK Tlm_MEM_(uint8_t* packet, uint16_t* len, uint16_t max_len);
13 static TF_TLM_FUNC_ACK Tlm_TLM_MGR1_(uint8_t* packet, uint16_t* len, uint16_t max_len);
14 static TF_TLM_FUNC_ACK Tlm_TLM_MGR2_(uint8_t* packet, uint16_t* len, uint16_t max_len);
15 static TF_TLM_FUNC_ACK Tlm_TL_(uint8_t* packet, uint16_t* len, uint16_t max_len);
16 static TF_TLM_FUNC_ACK Tlm_BL_(uint8_t* packet, uint16_t* len, uint16_t max_len);
17 static TF_TLM_FUNC_ACK Tlm_CA_(uint8_t* packet, uint16_t* len, uint16_t max_len);
18 static TF_TLM_FUNC_ACK Tlm_TF_(uint8_t* packet, uint16_t* len, uint16_t max_len);
19 static TF_TLM_FUNC_ACK Tlm_DCU_(uint8_t* packet, uint16_t* len, uint16_t max_len);
20 static TF_TLM_FUNC_ACK Tlm_MM_(uint8_t* packet, uint16_t* len, uint16_t max_len);
21 static TF_TLM_FUNC_ACK Tlm_AM_(uint8_t* packet, uint16_t* len, uint16_t max_len);
22 static TF_TLM_FUNC_ACK Tlm_APP_TIME_(uint8_t* packet, uint16_t* len, uint16_t max_len);
23 static TF_TLM_FUNC_ACK Tlm_EL_(uint8_t* packet, uint16_t* len, uint16_t max_len);
24 static TF_TLM_FUNC_ACK Tlm_EL_TLOG_(uint8_t* packet, uint16_t* len, uint16_t max_len);
25 static TF_TLM_FUNC_ACK Tlm_EL_CLOG_(uint8_t* packet, uint16_t* len, uint16_t max_len);
26 static TF_TLM_FUNC_ACK Tlm_EH_(uint8_t* packet, uint16_t* len, uint16_t max_len);
27 static TF_TLM_FUNC_ACK Tlm_EH_RULE_(uint8_t* packet, uint16_t* len, uint16_t max_len);
28 static TF_TLM_FUNC_ACK Tlm_EH_LOG_(uint8_t* packet, uint16_t* len, uint16_t max_len);
29 static TF_TLM_FUNC_ACK Tlm_EH_INDEX_(uint8_t* packet, uint16_t* len, uint16_t max_len);
30 static TF_TLM_FUNC_ACK Tlm_GS_(uint8_t* packet, uint16_t* len, uint16_t max_len);
31 static TF_TLM_FUNC_ACK Tlm_HK_(uint8_t* packet, uint16_t* len, uint16_t max_len);
32 static TF_TLM_FUNC_ACK Tlm_GIT_REV_(uint8_t* packet, uint16_t* len, uint16_t max_len);
33 static TF_TLM_FUNC_ACK Tlm_UART_TEST_(uint8_t* packet, uint16_t* len, uint16_t max_len);
34 
36 {
37  tlm_table[Tlm_CODE_MOBC].tlm_func = Tlm_MOBC_;
38  tlm_table[Tlm_CODE_MEM].tlm_func = Tlm_MEM_;
39  tlm_table[Tlm_CODE_TLM_MGR1].tlm_func = Tlm_TLM_MGR1_;
40  tlm_table[Tlm_CODE_TLM_MGR2].tlm_func = Tlm_TLM_MGR2_;
41  tlm_table[Tlm_CODE_TL].tlm_func = Tlm_TL_;
42  tlm_table[Tlm_CODE_BL].tlm_func = Tlm_BL_;
43  tlm_table[Tlm_CODE_CA].tlm_func = Tlm_CA_;
44  tlm_table[Tlm_CODE_TF].tlm_func = Tlm_TF_;
45  tlm_table[Tlm_CODE_DCU].tlm_func = Tlm_DCU_;
46  tlm_table[Tlm_CODE_MM].tlm_func = Tlm_MM_;
47  tlm_table[Tlm_CODE_AM].tlm_func = Tlm_AM_;
48  tlm_table[Tlm_CODE_APP_TIME].tlm_func = Tlm_APP_TIME_;
49  tlm_table[Tlm_CODE_EL].tlm_func = Tlm_EL_;
50  tlm_table[Tlm_CODE_EL_TLOG].tlm_func = Tlm_EL_TLOG_;
51  tlm_table[Tlm_CODE_EL_CLOG].tlm_func = Tlm_EL_CLOG_;
52  tlm_table[Tlm_CODE_EH].tlm_func = Tlm_EH_;
53  tlm_table[Tlm_CODE_EH_RULE].tlm_func = Tlm_EH_RULE_;
54  tlm_table[Tlm_CODE_EH_LOG].tlm_func = Tlm_EH_LOG_;
55  tlm_table[Tlm_CODE_EH_INDEX].tlm_func = Tlm_EH_INDEX_;
56  tlm_table[Tlm_CODE_GS].tlm_func = Tlm_GS_;
57  tlm_table[Tlm_CODE_HK].tlm_func = Tlm_HK_;
58  tlm_table[Tlm_CODE_GIT_REV].tlm_func = Tlm_GIT_REV_;
59  tlm_table[Tlm_CODE_UART_TEST].tlm_func = Tlm_UART_TEST_;
60 }
61 
62 static TF_TLM_FUNC_ACK Tlm_MOBC_(uint8_t* packet, uint16_t* len, uint16_t max_len)
63 {
64  if (335 > max_len) return TF_TLM_FUNC_ACK_TOO_SHORT_LEN;
65 
66 #ifndef BUILD_SETTINGS_FAST_BUILD
67  TF_copy_u32(&packet[26], (uint32_t)(TMGR_get_master_clock().mode_cycle));
70  TF_copy_u8(&packet[46], (uint8_t)(mode_manager->stat));
71  TF_copy_u8(&packet[47], (uint8_t)(mode_manager->current_id));
72  TF_copy_u8(&packet[48], (uint8_t)(mode_manager->previous_id));
73  TF_copy_u8(&packet[49], (uint8_t)(task_dispatcher->task_list_id));
74  TF_copy_u32(&packet[50], (uint32_t)(task_dispatcher->tskd.prev_err.time.total_cycle));
75  TF_copy_u8(&packet[54], (uint8_t)(task_dispatcher->tskd.prev_err.time.step));
76  TF_copy_u16(&packet[55], (uint16_t)(task_dispatcher->tskd.prev_err.code));
77  TF_copy_u8(&packet[57], (uint8_t)(task_dispatcher->tskd.prev_err.cmd_ret.exec_sts));
79  TF_copy_i32(&packet[62], (int32_t)gs_driver->latest_info->rx.ret_from_if_rx);
80  TF_copy_u8(&packet[66], (uint8_t)gs_driver->latest_info->rx.rec_status);
81  TF_copy_u32(&packet[67], (uint32_t)gs_driver->latest_info->rx.last_rec_time);
82  TF_copy_u8(&packet[71], (uint8_t)gs_validate_info->positive_window_width);
83  TF_copy_u8(&packet[72], (uint8_t)gs_driver->latest_info->rx.cmd_ack);
84  TF_copy_u8(&packet[73], (uint8_t)gs_driver->tlm_tx_port_type);
86  TF_copy_u32(&packet[78], (uint32_t)(gs_command_dispatcher->prev.time.total_cycle));
87  TF_copy_u16(&packet[82], (uint16_t)(gs_command_dispatcher->prev.code));
88  TF_copy_u8(&packet[84], (uint8_t)(gs_command_dispatcher->prev.cmd_ret.exec_sts));
90  TF_copy_u32(&packet[89], (uint32_t)(gs_command_dispatcher->prev_err.time.total_cycle));
91  TF_copy_u16(&packet[93], (uint16_t)(gs_command_dispatcher->prev_err.code));
92  TF_copy_u8(&packet[95], (uint8_t)(gs_command_dispatcher->prev_err.cmd_ret.exec_sts));
94  TF_copy_u32(&packet[100], (uint32_t)(gs_command_dispatcher->error_counter));
96  TF_copy_u32(&packet[108], (uint32_t)(realtime_command_dispatcher->prev.time.total_cycle));
97  TF_copy_u16(&packet[112], (uint16_t)(realtime_command_dispatcher->prev.code));
98  TF_copy_u8(&packet[114], (uint8_t)(realtime_command_dispatcher->prev.cmd_ret.exec_sts));
101  TF_copy_u16(&packet[123], (uint16_t)(realtime_command_dispatcher->prev_err.code));
104  TF_copy_u32(&packet[130], (uint32_t)(realtime_command_dispatcher->error_counter));
106  TF_copy_u8(&packet[138], (uint8_t)(PL_count_active_nodes(&PH_tl_cmd_list[TLCD_ID_FROM_GS])));
118  TF_copy_u32(&packet[167], (PL_is_empty(&(PH_tl_cmd_list[TLCD_ID_FROM_GS])) ? 0 : (uint32_t)CCP_get_ti((const CommonCmdPacket*)(PL_get_head(&(PH_tl_cmd_list[TLCD_ID_FROM_GS]))->packet))));
119  TF_copy_u16(&packet[171], (uint16_t)(PL_is_empty(&(PH_tl_cmd_list[TLCD_ID_FROM_GS])) ? 0 : CCP_get_id((const CommonCmdPacket*)(PL_get_head(&(PH_tl_cmd_list[TLCD_ID_FROM_GS]))->packet))));
150  TF_copy_u32(&packet[251], PL_count_executed_nodes(&PH_tl_cmd_list[TLCD_ID_FROM_GS_FOR_MISSION]));
151  TF_copy_u8(&packet[255], (uint8_t)(PL_count_active_nodes(&PH_tl_cmd_list[TLCD_ID_FROM_GS_FOR_MISSION])));
152  TF_copy_u32(&packet[256], (uint32_t)(timeline_command_dispatcher->dispatcher[TLCD_ID_FROM_GS_FOR_MISSION].prev.time.total_cycle));
153  TF_copy_u16(&packet[260], (uint16_t)(timeline_command_dispatcher->dispatcher[TLCD_ID_FROM_GS_FOR_MISSION].prev.code));
154  TF_copy_u8(&packet[262], (uint8_t)(timeline_command_dispatcher->dispatcher[TLCD_ID_FROM_GS_FOR_MISSION].prev.cmd_ret.exec_sts));
155  TF_copy_u32(&packet[263], timeline_command_dispatcher->dispatcher[TLCD_ID_FROM_GS_FOR_MISSION].prev.cmd_ret.err_code);
156  TF_copy_u32(&packet[267], (uint32_t)(timeline_command_dispatcher->dispatcher[TLCD_ID_FROM_GS_FOR_MISSION].prev_err.time.total_cycle));
157  TF_copy_u16(&packet[271], (uint16_t)(timeline_command_dispatcher->dispatcher[TLCD_ID_FROM_GS_FOR_MISSION].prev_err.code));
158  TF_copy_u8(&packet[273], (uint8_t)(timeline_command_dispatcher->dispatcher[TLCD_ID_FROM_GS_FOR_MISSION].prev_err.cmd_ret.exec_sts));
159  TF_copy_u32(&packet[274], timeline_command_dispatcher->dispatcher[TLCD_ID_FROM_GS_FOR_MISSION].prev_err.cmd_ret.err_code);
160  TF_copy_u32(&packet[278], (uint32_t)(timeline_command_dispatcher->dispatcher[TLCD_ID_FROM_GS_FOR_MISSION].error_counter));
161  TF_copy_u8(&packet[282], (uint8_t)(timeline_command_dispatcher->dispatcher[TLCD_ID_FROM_GS_FOR_MISSION].stop_on_error));
162  TF_copy_u8(&packet[283], (uint8_t)(timeline_command_dispatcher->dispatcher[TLCD_ID_FROM_GS_FOR_MISSION].lockout));
163  TF_copy_u32(&packet[284], (PL_is_empty(&(PH_tl_cmd_list[TLCD_ID_FROM_GS_FOR_MISSION])) ? 0 : (uint32_t)CCP_get_ti((const CommonCmdPacket*)(PL_get_head(&(PH_tl_cmd_list[TLCD_ID_FROM_GS_FOR_MISSION]))->packet))));
164  TF_copy_u16(&packet[288], (uint16_t)(PL_is_empty(&(PH_tl_cmd_list[TLCD_ID_FROM_GS_FOR_MISSION])) ? 0 : CCP_get_id((const CommonCmdPacket*)(PL_get_head(&(PH_tl_cmd_list[TLCD_ID_FROM_GS_FOR_MISSION]))->packet))));
165  TF_copy_u8(&packet[290], (uint8_t)(block_command_table->pos.block));
166  TF_copy_u8(&packet[291], (uint8_t)(block_command_table->pos.cmd));
167  TF_copy_u32(&packet[292], ((block_command_table->pos.cmd == 0) ? 0 : (uint32_t)BCT_get_ti(block_command_table->pos.block, (uint8_t)(block_command_table->pos.cmd-1))));
168  TF_copy_u16(&packet[296], (uint16_t)((block_command_table->pos.cmd == 0) ? 0 : BCT_get_id(block_command_table->pos.block, (uint8_t)(block_command_table->pos.cmd-1))));
169  TF_copy_u8(&packet[298], gs_driver->ccsds_info.buffer_num);
173  TF_copy_u8(&packet[311], (uint8_t)(PL_count_active_nodes(&PH_rt_tlm_list)));
174  TF_copy_u32(&packet[312], PL_count_executed_nodes(&PH_st_tlm_list));
175  TF_copy_u8(&packet[316], (uint8_t)(PL_count_active_nodes(&PH_st_tlm_list)));
176  TF_copy_u32(&packet[317], PL_count_executed_nodes(&PH_rp_tlm_list));
177  TF_copy_u8(&packet[321], (uint8_t)(PL_count_active_nodes(&PH_rp_tlm_list)));
178  TF_copy_u32(&packet[322], (uint32_t)gs_driver->latest_info->tx.send_cycle);
180  TF_copy_u8(&packet[330], (uint8_t)gs_driver->latest_info->tx.vcid);
182 #endif
183 
184  *len = 335;
186 }
187 
188 static TF_TLM_FUNC_ACK Tlm_MEM_(uint8_t* packet, uint16_t* len, uint16_t max_len)
189 {
190  if (49 > max_len) return TF_TLM_FUNC_ACK_TOO_SHORT_LEN;
191 
192 #ifndef BUILD_SETTINGS_FAST_BUILD
193  TF_copy_u32(&packet[26], memory_dump->begin);
194  TF_copy_u32(&packet[30], memory_dump->end);
195  TF_copy_u32(&packet[34], memory_dump->adu_size);
196  TF_copy_u16(&packet[38], memory_dump->adu_seq);
197  TF_copy_u8(&packet[40], memory_dump->adu_counter);
198  TF_copy_u32(&packet[41], memory_dump->dest);
199  TF_copy_u32(&packet[45], memory_dump->rp);
200 #endif
201 
202  *len = 49;
204 }
205 
206 static TF_TLM_FUNC_ACK Tlm_TLM_MGR1_(uint8_t* packet, uint16_t* len, uint16_t max_len)
207 {
208  if (332 > max_len) return TF_TLM_FUNC_ACK_TOO_SHORT_LEN;
209 
210 #ifndef BUILD_SETTINGS_FAST_BUILD
211  TF_copy_u16(&packet[26], (uint16_t)telemetry_manager->master_bc_id);
212  TF_copy_u16(&packet[28], (uint16_t)telemetry_manager->deploy_bc_id);
213  TF_copy_u8(&packet[30], telemetry_manager->is_inited);
250  TF_copy_u16(&packet[67], (uint16_t)telemetry_manager->cmd_table.cmd_blocks[0].bc_id);
251  TF_copy_u8(&packet[69], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[0].bc_role);
252  TF_copy_u8(&packet[70], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[0].cmds[0].cmd_type);
253  TF_copy_u16(&packet[71], (uint16_t)telemetry_manager->cmd_table.cmd_blocks[0].cmds[0].apid);
254  TF_copy_u8(&packet[73], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[0].cmds[0].tlm_id);
256  TF_copy_u8(&packet[75], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[0].cmds[1].cmd_type);
257  TF_copy_u16(&packet[76], (uint16_t)telemetry_manager->cmd_table.cmd_blocks[0].cmds[1].apid);
258  TF_copy_u8(&packet[78], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[0].cmds[1].tlm_id);
260  TF_copy_u8(&packet[80], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[0].cmds[2].cmd_type);
261  TF_copy_u16(&packet[81], (uint16_t)telemetry_manager->cmd_table.cmd_blocks[0].cmds[2].apid);
262  TF_copy_u8(&packet[83], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[0].cmds[2].tlm_id);
264  TF_copy_u8(&packet[85], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[0].cmds[3].cmd_type);
265  TF_copy_u16(&packet[86], (uint16_t)telemetry_manager->cmd_table.cmd_blocks[0].cmds[3].apid);
266  TF_copy_u8(&packet[88], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[0].cmds[3].tlm_id);
268  TF_copy_u8(&packet[90], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[0].cmds[4].cmd_type);
269  TF_copy_u16(&packet[91], (uint16_t)telemetry_manager->cmd_table.cmd_blocks[0].cmds[4].apid);
270  TF_copy_u8(&packet[93], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[0].cmds[4].tlm_id);
272  TF_copy_u8(&packet[95], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[0].cmds[5].cmd_type);
273  TF_copy_u16(&packet[96], (uint16_t)telemetry_manager->cmd_table.cmd_blocks[0].cmds[5].apid);
274  TF_copy_u8(&packet[98], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[0].cmds[5].tlm_id);
276  TF_copy_u8(&packet[100], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[0].cmds[6].cmd_type);
277  TF_copy_u16(&packet[101], (uint16_t)telemetry_manager->cmd_table.cmd_blocks[0].cmds[6].apid);
278  TF_copy_u8(&packet[103], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[0].cmds[6].tlm_id);
280  TF_copy_u8(&packet[105], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[0].cmds[7].cmd_type);
281  TF_copy_u16(&packet[106], (uint16_t)telemetry_manager->cmd_table.cmd_blocks[0].cmds[7].apid);
282  TF_copy_u8(&packet[108], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[0].cmds[7].tlm_id);
284  TF_copy_u8(&packet[110], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[0].cmds[8].cmd_type);
285  TF_copy_u16(&packet[111], (uint16_t)telemetry_manager->cmd_table.cmd_blocks[0].cmds[8].apid);
286  TF_copy_u8(&packet[113], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[0].cmds[8].tlm_id);
288  TF_copy_u8(&packet[115], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[0].cmds[9].cmd_type);
289  TF_copy_u16(&packet[116], (uint16_t)telemetry_manager->cmd_table.cmd_blocks[0].cmds[9].apid);
290  TF_copy_u8(&packet[118], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[0].cmds[9].tlm_id);
292  TF_copy_u16(&packet[120], (uint16_t)telemetry_manager->cmd_table.cmd_blocks[1].bc_id);
293  TF_copy_u8(&packet[122], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[1].bc_role);
294  TF_copy_u8(&packet[123], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[1].cmds[0].cmd_type);
295  TF_copy_u16(&packet[124], (uint16_t)telemetry_manager->cmd_table.cmd_blocks[1].cmds[0].apid);
296  TF_copy_u8(&packet[126], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[1].cmds[0].tlm_id);
298  TF_copy_u8(&packet[128], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[1].cmds[1].cmd_type);
299  TF_copy_u16(&packet[129], (uint16_t)telemetry_manager->cmd_table.cmd_blocks[1].cmds[1].apid);
300  TF_copy_u8(&packet[131], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[1].cmds[1].tlm_id);
302  TF_copy_u8(&packet[133], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[1].cmds[2].cmd_type);
303  TF_copy_u16(&packet[134], (uint16_t)telemetry_manager->cmd_table.cmd_blocks[1].cmds[2].apid);
304  TF_copy_u8(&packet[136], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[1].cmds[2].tlm_id);
306  TF_copy_u8(&packet[138], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[1].cmds[3].cmd_type);
307  TF_copy_u16(&packet[139], (uint16_t)telemetry_manager->cmd_table.cmd_blocks[1].cmds[3].apid);
308  TF_copy_u8(&packet[141], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[1].cmds[3].tlm_id);
310  TF_copy_u8(&packet[143], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[1].cmds[4].cmd_type);
311  TF_copy_u16(&packet[144], (uint16_t)telemetry_manager->cmd_table.cmd_blocks[1].cmds[4].apid);
312  TF_copy_u8(&packet[146], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[1].cmds[4].tlm_id);
314  TF_copy_u8(&packet[148], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[1].cmds[5].cmd_type);
315  TF_copy_u16(&packet[149], (uint16_t)telemetry_manager->cmd_table.cmd_blocks[1].cmds[5].apid);
316  TF_copy_u8(&packet[151], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[1].cmds[5].tlm_id);
318  TF_copy_u8(&packet[153], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[1].cmds[6].cmd_type);
319  TF_copy_u16(&packet[154], (uint16_t)telemetry_manager->cmd_table.cmd_blocks[1].cmds[6].apid);
320  TF_copy_u8(&packet[156], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[1].cmds[6].tlm_id);
322  TF_copy_u8(&packet[158], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[1].cmds[7].cmd_type);
323  TF_copy_u16(&packet[159], (uint16_t)telemetry_manager->cmd_table.cmd_blocks[1].cmds[7].apid);
324  TF_copy_u8(&packet[161], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[1].cmds[7].tlm_id);
326  TF_copy_u8(&packet[163], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[1].cmds[8].cmd_type);
327  TF_copy_u16(&packet[164], (uint16_t)telemetry_manager->cmd_table.cmd_blocks[1].cmds[8].apid);
328  TF_copy_u8(&packet[166], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[1].cmds[8].tlm_id);
330  TF_copy_u8(&packet[168], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[1].cmds[9].cmd_type);
331  TF_copy_u16(&packet[169], (uint16_t)telemetry_manager->cmd_table.cmd_blocks[1].cmds[9].apid);
332  TF_copy_u8(&packet[171], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[1].cmds[9].tlm_id);
334  TF_copy_u16(&packet[173], (uint16_t)telemetry_manager->cmd_table.cmd_blocks[2].bc_id);
335  TF_copy_u8(&packet[175], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[2].bc_role);
336  TF_copy_u8(&packet[176], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[2].cmds[0].cmd_type);
337  TF_copy_u16(&packet[177], (uint16_t)telemetry_manager->cmd_table.cmd_blocks[2].cmds[0].apid);
338  TF_copy_u8(&packet[179], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[2].cmds[0].tlm_id);
340  TF_copy_u8(&packet[181], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[2].cmds[1].cmd_type);
341  TF_copy_u16(&packet[182], (uint16_t)telemetry_manager->cmd_table.cmd_blocks[2].cmds[1].apid);
342  TF_copy_u8(&packet[184], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[2].cmds[1].tlm_id);
344  TF_copy_u8(&packet[186], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[2].cmds[2].cmd_type);
345  TF_copy_u16(&packet[187], (uint16_t)telemetry_manager->cmd_table.cmd_blocks[2].cmds[2].apid);
346  TF_copy_u8(&packet[189], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[2].cmds[2].tlm_id);
348  TF_copy_u8(&packet[191], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[2].cmds[3].cmd_type);
349  TF_copy_u16(&packet[192], (uint16_t)telemetry_manager->cmd_table.cmd_blocks[2].cmds[3].apid);
350  TF_copy_u8(&packet[194], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[2].cmds[3].tlm_id);
352  TF_copy_u8(&packet[196], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[2].cmds[4].cmd_type);
353  TF_copy_u16(&packet[197], (uint16_t)telemetry_manager->cmd_table.cmd_blocks[2].cmds[4].apid);
354  TF_copy_u8(&packet[199], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[2].cmds[4].tlm_id);
356  TF_copy_u8(&packet[201], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[2].cmds[5].cmd_type);
357  TF_copy_u16(&packet[202], (uint16_t)telemetry_manager->cmd_table.cmd_blocks[2].cmds[5].apid);
358  TF_copy_u8(&packet[204], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[2].cmds[5].tlm_id);
360  TF_copy_u8(&packet[206], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[2].cmds[6].cmd_type);
361  TF_copy_u16(&packet[207], (uint16_t)telemetry_manager->cmd_table.cmd_blocks[2].cmds[6].apid);
362  TF_copy_u8(&packet[209], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[2].cmds[6].tlm_id);
364  TF_copy_u8(&packet[211], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[2].cmds[7].cmd_type);
365  TF_copy_u16(&packet[212], (uint16_t)telemetry_manager->cmd_table.cmd_blocks[2].cmds[7].apid);
366  TF_copy_u8(&packet[214], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[2].cmds[7].tlm_id);
368  TF_copy_u8(&packet[216], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[2].cmds[8].cmd_type);
369  TF_copy_u16(&packet[217], (uint16_t)telemetry_manager->cmd_table.cmd_blocks[2].cmds[8].apid);
370  TF_copy_u8(&packet[219], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[2].cmds[8].tlm_id);
372  TF_copy_u8(&packet[221], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[2].cmds[9].cmd_type);
373  TF_copy_u16(&packet[222], (uint16_t)telemetry_manager->cmd_table.cmd_blocks[2].cmds[9].apid);
374  TF_copy_u8(&packet[224], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[2].cmds[9].tlm_id);
376  TF_copy_u16(&packet[226], (uint16_t)telemetry_manager->cmd_table.cmd_blocks[3].bc_id);
377  TF_copy_u8(&packet[228], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[3].bc_role);
378  TF_copy_u8(&packet[229], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[3].cmds[0].cmd_type);
379  TF_copy_u16(&packet[230], (uint16_t)telemetry_manager->cmd_table.cmd_blocks[3].cmds[0].apid);
380  TF_copy_u8(&packet[232], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[3].cmds[0].tlm_id);
382  TF_copy_u8(&packet[234], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[3].cmds[1].cmd_type);
383  TF_copy_u16(&packet[235], (uint16_t)telemetry_manager->cmd_table.cmd_blocks[3].cmds[1].apid);
384  TF_copy_u8(&packet[237], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[3].cmds[1].tlm_id);
386  TF_copy_u8(&packet[239], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[3].cmds[2].cmd_type);
387  TF_copy_u16(&packet[240], (uint16_t)telemetry_manager->cmd_table.cmd_blocks[3].cmds[2].apid);
388  TF_copy_u8(&packet[242], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[3].cmds[2].tlm_id);
390  TF_copy_u8(&packet[244], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[3].cmds[3].cmd_type);
391  TF_copy_u16(&packet[245], (uint16_t)telemetry_manager->cmd_table.cmd_blocks[3].cmds[3].apid);
392  TF_copy_u8(&packet[247], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[3].cmds[3].tlm_id);
394  TF_copy_u8(&packet[249], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[3].cmds[4].cmd_type);
395  TF_copy_u16(&packet[250], (uint16_t)telemetry_manager->cmd_table.cmd_blocks[3].cmds[4].apid);
396  TF_copy_u8(&packet[252], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[3].cmds[4].tlm_id);
398  TF_copy_u8(&packet[254], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[3].cmds[5].cmd_type);
399  TF_copy_u16(&packet[255], (uint16_t)telemetry_manager->cmd_table.cmd_blocks[3].cmds[5].apid);
400  TF_copy_u8(&packet[257], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[3].cmds[5].tlm_id);
402  TF_copy_u8(&packet[259], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[3].cmds[6].cmd_type);
403  TF_copy_u16(&packet[260], (uint16_t)telemetry_manager->cmd_table.cmd_blocks[3].cmds[6].apid);
404  TF_copy_u8(&packet[262], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[3].cmds[6].tlm_id);
406  TF_copy_u8(&packet[264], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[3].cmds[7].cmd_type);
407  TF_copy_u16(&packet[265], (uint16_t)telemetry_manager->cmd_table.cmd_blocks[3].cmds[7].apid);
408  TF_copy_u8(&packet[267], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[3].cmds[7].tlm_id);
410  TF_copy_u8(&packet[269], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[3].cmds[8].cmd_type);
411  TF_copy_u16(&packet[270], (uint16_t)telemetry_manager->cmd_table.cmd_blocks[3].cmds[8].apid);
412  TF_copy_u8(&packet[272], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[3].cmds[8].tlm_id);
414  TF_copy_u8(&packet[274], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[3].cmds[9].cmd_type);
415  TF_copy_u16(&packet[275], (uint16_t)telemetry_manager->cmd_table.cmd_blocks[3].cmds[9].apid);
416  TF_copy_u8(&packet[277], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[3].cmds[9].tlm_id);
418  TF_copy_u16(&packet[279], (uint16_t)telemetry_manager->cmd_table.cmd_blocks[4].bc_id);
419  TF_copy_u8(&packet[281], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[4].bc_role);
420  TF_copy_u8(&packet[282], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[4].cmds[0].cmd_type);
421  TF_copy_u16(&packet[283], (uint16_t)telemetry_manager->cmd_table.cmd_blocks[4].cmds[0].apid);
422  TF_copy_u8(&packet[285], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[4].cmds[0].tlm_id);
424  TF_copy_u8(&packet[287], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[4].cmds[1].cmd_type);
425  TF_copy_u16(&packet[288], (uint16_t)telemetry_manager->cmd_table.cmd_blocks[4].cmds[1].apid);
426  TF_copy_u8(&packet[290], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[4].cmds[1].tlm_id);
428  TF_copy_u8(&packet[292], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[4].cmds[2].cmd_type);
429  TF_copy_u16(&packet[293], (uint16_t)telemetry_manager->cmd_table.cmd_blocks[4].cmds[2].apid);
430  TF_copy_u8(&packet[295], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[4].cmds[2].tlm_id);
432  TF_copy_u8(&packet[297], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[4].cmds[3].cmd_type);
433  TF_copy_u16(&packet[298], (uint16_t)telemetry_manager->cmd_table.cmd_blocks[4].cmds[3].apid);
434  TF_copy_u8(&packet[300], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[4].cmds[3].tlm_id);
436  TF_copy_u8(&packet[302], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[4].cmds[4].cmd_type);
437  TF_copy_u16(&packet[303], (uint16_t)telemetry_manager->cmd_table.cmd_blocks[4].cmds[4].apid);
438  TF_copy_u8(&packet[305], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[4].cmds[4].tlm_id);
440  TF_copy_u8(&packet[307], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[4].cmds[5].cmd_type);
441  TF_copy_u16(&packet[308], (uint16_t)telemetry_manager->cmd_table.cmd_blocks[4].cmds[5].apid);
442  TF_copy_u8(&packet[310], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[4].cmds[5].tlm_id);
444  TF_copy_u8(&packet[312], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[4].cmds[6].cmd_type);
445  TF_copy_u16(&packet[313], (uint16_t)telemetry_manager->cmd_table.cmd_blocks[4].cmds[6].apid);
446  TF_copy_u8(&packet[315], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[4].cmds[6].tlm_id);
448  TF_copy_u8(&packet[317], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[4].cmds[7].cmd_type);
449  TF_copy_u16(&packet[318], (uint16_t)telemetry_manager->cmd_table.cmd_blocks[4].cmds[7].apid);
450  TF_copy_u8(&packet[320], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[4].cmds[7].tlm_id);
452  TF_copy_u8(&packet[322], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[4].cmds[8].cmd_type);
453  TF_copy_u16(&packet[323], (uint16_t)telemetry_manager->cmd_table.cmd_blocks[4].cmds[8].apid);
454  TF_copy_u8(&packet[325], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[4].cmds[8].tlm_id);
456  TF_copy_u8(&packet[327], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[4].cmds[9].cmd_type);
457  TF_copy_u16(&packet[328], (uint16_t)telemetry_manager->cmd_table.cmd_blocks[4].cmds[9].apid);
458  TF_copy_u8(&packet[330], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[4].cmds[9].tlm_id);
460 #endif
461 
462  *len = 332;
464 }
465 
466 static TF_TLM_FUNC_ACK Tlm_TLM_MGR2_(uint8_t* packet, uint16_t* len, uint16_t max_len)
467 {
468  if (291 > max_len) return TF_TLM_FUNC_ACK_TOO_SHORT_LEN;
469 
470 #ifndef BUILD_SETTINGS_FAST_BUILD
471  TF_copy_u16(&packet[26], (uint16_t)telemetry_manager->cmd_table.cmd_blocks[5].bc_id);
472  TF_copy_u8(&packet[28], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[5].bc_role);
473  TF_copy_u8(&packet[29], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[5].cmds[0].cmd_type);
474  TF_copy_u16(&packet[30], (uint16_t)telemetry_manager->cmd_table.cmd_blocks[5].cmds[0].apid);
475  TF_copy_u8(&packet[32], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[5].cmds[0].tlm_id);
477  TF_copy_u8(&packet[34], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[5].cmds[1].cmd_type);
478  TF_copy_u16(&packet[35], (uint16_t)telemetry_manager->cmd_table.cmd_blocks[5].cmds[1].apid);
479  TF_copy_u8(&packet[37], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[5].cmds[1].tlm_id);
481  TF_copy_u8(&packet[39], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[5].cmds[2].cmd_type);
482  TF_copy_u16(&packet[40], (uint16_t)telemetry_manager->cmd_table.cmd_blocks[5].cmds[2].apid);
483  TF_copy_u8(&packet[42], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[5].cmds[2].tlm_id);
485  TF_copy_u8(&packet[44], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[5].cmds[3].cmd_type);
486  TF_copy_u16(&packet[45], (uint16_t)telemetry_manager->cmd_table.cmd_blocks[5].cmds[3].apid);
487  TF_copy_u8(&packet[47], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[5].cmds[3].tlm_id);
489  TF_copy_u8(&packet[49], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[5].cmds[4].cmd_type);
490  TF_copy_u16(&packet[50], (uint16_t)telemetry_manager->cmd_table.cmd_blocks[5].cmds[4].apid);
491  TF_copy_u8(&packet[52], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[5].cmds[4].tlm_id);
493  TF_copy_u8(&packet[54], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[5].cmds[5].cmd_type);
494  TF_copy_u16(&packet[55], (uint16_t)telemetry_manager->cmd_table.cmd_blocks[5].cmds[5].apid);
495  TF_copy_u8(&packet[57], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[5].cmds[5].tlm_id);
497  TF_copy_u8(&packet[59], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[5].cmds[6].cmd_type);
498  TF_copy_u16(&packet[60], (uint16_t)telemetry_manager->cmd_table.cmd_blocks[5].cmds[6].apid);
499  TF_copy_u8(&packet[62], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[5].cmds[6].tlm_id);
501  TF_copy_u8(&packet[64], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[5].cmds[7].cmd_type);
502  TF_copy_u16(&packet[65], (uint16_t)telemetry_manager->cmd_table.cmd_blocks[5].cmds[7].apid);
503  TF_copy_u8(&packet[67], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[5].cmds[7].tlm_id);
505  TF_copy_u8(&packet[69], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[5].cmds[8].cmd_type);
506  TF_copy_u16(&packet[70], (uint16_t)telemetry_manager->cmd_table.cmd_blocks[5].cmds[8].apid);
507  TF_copy_u8(&packet[72], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[5].cmds[8].tlm_id);
509  TF_copy_u8(&packet[74], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[5].cmds[9].cmd_type);
510  TF_copy_u16(&packet[75], (uint16_t)telemetry_manager->cmd_table.cmd_blocks[5].cmds[9].apid);
511  TF_copy_u8(&packet[77], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[5].cmds[9].tlm_id);
513  TF_copy_u16(&packet[79], (uint16_t)telemetry_manager->cmd_table.cmd_blocks[6].bc_id);
514  TF_copy_u8(&packet[81], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[6].bc_role);
515  TF_copy_u8(&packet[82], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[6].cmds[0].cmd_type);
516  TF_copy_u16(&packet[83], (uint16_t)telemetry_manager->cmd_table.cmd_blocks[6].cmds[0].apid);
517  TF_copy_u8(&packet[85], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[6].cmds[0].tlm_id);
519  TF_copy_u8(&packet[87], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[6].cmds[1].cmd_type);
520  TF_copy_u16(&packet[88], (uint16_t)telemetry_manager->cmd_table.cmd_blocks[6].cmds[1].apid);
521  TF_copy_u8(&packet[90], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[6].cmds[1].tlm_id);
523  TF_copy_u8(&packet[92], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[6].cmds[2].cmd_type);
524  TF_copy_u16(&packet[93], (uint16_t)telemetry_manager->cmd_table.cmd_blocks[6].cmds[2].apid);
525  TF_copy_u8(&packet[95], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[6].cmds[2].tlm_id);
527  TF_copy_u8(&packet[97], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[6].cmds[3].cmd_type);
528  TF_copy_u16(&packet[98], (uint16_t)telemetry_manager->cmd_table.cmd_blocks[6].cmds[3].apid);
529  TF_copy_u8(&packet[100], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[6].cmds[3].tlm_id);
531  TF_copy_u8(&packet[102], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[6].cmds[4].cmd_type);
532  TF_copy_u16(&packet[103], (uint16_t)telemetry_manager->cmd_table.cmd_blocks[6].cmds[4].apid);
533  TF_copy_u8(&packet[105], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[6].cmds[4].tlm_id);
535  TF_copy_u8(&packet[107], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[6].cmds[5].cmd_type);
536  TF_copy_u16(&packet[108], (uint16_t)telemetry_manager->cmd_table.cmd_blocks[6].cmds[5].apid);
537  TF_copy_u8(&packet[110], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[6].cmds[5].tlm_id);
539  TF_copy_u8(&packet[112], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[6].cmds[6].cmd_type);
540  TF_copy_u16(&packet[113], (uint16_t)telemetry_manager->cmd_table.cmd_blocks[6].cmds[6].apid);
541  TF_copy_u8(&packet[115], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[6].cmds[6].tlm_id);
543  TF_copy_u8(&packet[117], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[6].cmds[7].cmd_type);
544  TF_copy_u16(&packet[118], (uint16_t)telemetry_manager->cmd_table.cmd_blocks[6].cmds[7].apid);
545  TF_copy_u8(&packet[120], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[6].cmds[7].tlm_id);
547  TF_copy_u8(&packet[122], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[6].cmds[8].cmd_type);
548  TF_copy_u16(&packet[123], (uint16_t)telemetry_manager->cmd_table.cmd_blocks[6].cmds[8].apid);
549  TF_copy_u8(&packet[125], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[6].cmds[8].tlm_id);
551  TF_copy_u8(&packet[127], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[6].cmds[9].cmd_type);
552  TF_copy_u16(&packet[128], (uint16_t)telemetry_manager->cmd_table.cmd_blocks[6].cmds[9].apid);
553  TF_copy_u8(&packet[130], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[6].cmds[9].tlm_id);
555  TF_copy_u16(&packet[132], (uint16_t)telemetry_manager->cmd_table.cmd_blocks[7].bc_id);
556  TF_copy_u8(&packet[134], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[7].bc_role);
557  TF_copy_u8(&packet[135], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[7].cmds[0].cmd_type);
558  TF_copy_u16(&packet[136], (uint16_t)telemetry_manager->cmd_table.cmd_blocks[7].cmds[0].apid);
559  TF_copy_u8(&packet[138], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[7].cmds[0].tlm_id);
561  TF_copy_u8(&packet[140], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[7].cmds[1].cmd_type);
562  TF_copy_u16(&packet[141], (uint16_t)telemetry_manager->cmd_table.cmd_blocks[7].cmds[1].apid);
563  TF_copy_u8(&packet[143], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[7].cmds[1].tlm_id);
565  TF_copy_u8(&packet[145], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[7].cmds[2].cmd_type);
566  TF_copy_u16(&packet[146], (uint16_t)telemetry_manager->cmd_table.cmd_blocks[7].cmds[2].apid);
567  TF_copy_u8(&packet[148], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[7].cmds[2].tlm_id);
569  TF_copy_u8(&packet[150], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[7].cmds[3].cmd_type);
570  TF_copy_u16(&packet[151], (uint16_t)telemetry_manager->cmd_table.cmd_blocks[7].cmds[3].apid);
571  TF_copy_u8(&packet[153], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[7].cmds[3].tlm_id);
573  TF_copy_u8(&packet[155], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[7].cmds[4].cmd_type);
574  TF_copy_u16(&packet[156], (uint16_t)telemetry_manager->cmd_table.cmd_blocks[7].cmds[4].apid);
575  TF_copy_u8(&packet[158], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[7].cmds[4].tlm_id);
577  TF_copy_u8(&packet[160], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[7].cmds[5].cmd_type);
578  TF_copy_u16(&packet[161], (uint16_t)telemetry_manager->cmd_table.cmd_blocks[7].cmds[5].apid);
579  TF_copy_u8(&packet[163], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[7].cmds[5].tlm_id);
581  TF_copy_u8(&packet[165], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[7].cmds[6].cmd_type);
582  TF_copy_u16(&packet[166], (uint16_t)telemetry_manager->cmd_table.cmd_blocks[7].cmds[6].apid);
583  TF_copy_u8(&packet[168], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[7].cmds[6].tlm_id);
585  TF_copy_u8(&packet[170], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[7].cmds[7].cmd_type);
586  TF_copy_u16(&packet[171], (uint16_t)telemetry_manager->cmd_table.cmd_blocks[7].cmds[7].apid);
587  TF_copy_u8(&packet[173], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[7].cmds[7].tlm_id);
589  TF_copy_u8(&packet[175], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[7].cmds[8].cmd_type);
590  TF_copy_u16(&packet[176], (uint16_t)telemetry_manager->cmd_table.cmd_blocks[7].cmds[8].apid);
591  TF_copy_u8(&packet[178], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[7].cmds[8].tlm_id);
593  TF_copy_u8(&packet[180], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[7].cmds[9].cmd_type);
594  TF_copy_u16(&packet[181], (uint16_t)telemetry_manager->cmd_table.cmd_blocks[7].cmds[9].apid);
595  TF_copy_u8(&packet[183], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[7].cmds[9].tlm_id);
597  TF_copy_u16(&packet[185], (uint16_t)telemetry_manager->cmd_table.cmd_blocks[8].bc_id);
598  TF_copy_u8(&packet[187], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[8].bc_role);
599  TF_copy_u8(&packet[188], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[8].cmds[0].cmd_type);
600  TF_copy_u16(&packet[189], (uint16_t)telemetry_manager->cmd_table.cmd_blocks[8].cmds[0].apid);
601  TF_copy_u8(&packet[191], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[8].cmds[0].tlm_id);
603  TF_copy_u8(&packet[193], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[8].cmds[1].cmd_type);
604  TF_copy_u16(&packet[194], (uint16_t)telemetry_manager->cmd_table.cmd_blocks[8].cmds[1].apid);
605  TF_copy_u8(&packet[196], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[8].cmds[1].tlm_id);
607  TF_copy_u8(&packet[198], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[8].cmds[2].cmd_type);
608  TF_copy_u16(&packet[199], (uint16_t)telemetry_manager->cmd_table.cmd_blocks[8].cmds[2].apid);
609  TF_copy_u8(&packet[201], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[8].cmds[2].tlm_id);
611  TF_copy_u8(&packet[203], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[8].cmds[3].cmd_type);
612  TF_copy_u16(&packet[204], (uint16_t)telemetry_manager->cmd_table.cmd_blocks[8].cmds[3].apid);
613  TF_copy_u8(&packet[206], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[8].cmds[3].tlm_id);
615  TF_copy_u8(&packet[208], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[8].cmds[4].cmd_type);
616  TF_copy_u16(&packet[209], (uint16_t)telemetry_manager->cmd_table.cmd_blocks[8].cmds[4].apid);
617  TF_copy_u8(&packet[211], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[8].cmds[4].tlm_id);
619  TF_copy_u8(&packet[213], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[8].cmds[5].cmd_type);
620  TF_copy_u16(&packet[214], (uint16_t)telemetry_manager->cmd_table.cmd_blocks[8].cmds[5].apid);
621  TF_copy_u8(&packet[216], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[8].cmds[5].tlm_id);
623  TF_copy_u8(&packet[218], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[8].cmds[6].cmd_type);
624  TF_copy_u16(&packet[219], (uint16_t)telemetry_manager->cmd_table.cmd_blocks[8].cmds[6].apid);
625  TF_copy_u8(&packet[221], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[8].cmds[6].tlm_id);
627  TF_copy_u8(&packet[223], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[8].cmds[7].cmd_type);
628  TF_copy_u16(&packet[224], (uint16_t)telemetry_manager->cmd_table.cmd_blocks[8].cmds[7].apid);
629  TF_copy_u8(&packet[226], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[8].cmds[7].tlm_id);
631  TF_copy_u8(&packet[228], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[8].cmds[8].cmd_type);
632  TF_copy_u16(&packet[229], (uint16_t)telemetry_manager->cmd_table.cmd_blocks[8].cmds[8].apid);
633  TF_copy_u8(&packet[231], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[8].cmds[8].tlm_id);
635  TF_copy_u8(&packet[233], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[8].cmds[9].cmd_type);
636  TF_copy_u16(&packet[234], (uint16_t)telemetry_manager->cmd_table.cmd_blocks[8].cmds[9].apid);
637  TF_copy_u8(&packet[236], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[8].cmds[9].tlm_id);
639  TF_copy_u16(&packet[238], (uint16_t)telemetry_manager->cmd_table.cmd_blocks[9].bc_id);
640  TF_copy_u8(&packet[240], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[9].bc_role);
641  TF_copy_u8(&packet[241], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[9].cmds[0].cmd_type);
642  TF_copy_u16(&packet[242], (uint16_t)telemetry_manager->cmd_table.cmd_blocks[9].cmds[0].apid);
643  TF_copy_u8(&packet[244], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[9].cmds[0].tlm_id);
645  TF_copy_u8(&packet[246], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[9].cmds[1].cmd_type);
646  TF_copy_u16(&packet[247], (uint16_t)telemetry_manager->cmd_table.cmd_blocks[9].cmds[1].apid);
647  TF_copy_u8(&packet[249], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[9].cmds[1].tlm_id);
649  TF_copy_u8(&packet[251], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[9].cmds[2].cmd_type);
650  TF_copy_u16(&packet[252], (uint16_t)telemetry_manager->cmd_table.cmd_blocks[9].cmds[2].apid);
651  TF_copy_u8(&packet[254], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[9].cmds[2].tlm_id);
653  TF_copy_u8(&packet[256], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[9].cmds[3].cmd_type);
654  TF_copy_u16(&packet[257], (uint16_t)telemetry_manager->cmd_table.cmd_blocks[9].cmds[3].apid);
655  TF_copy_u8(&packet[259], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[9].cmds[3].tlm_id);
657  TF_copy_u8(&packet[261], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[9].cmds[4].cmd_type);
658  TF_copy_u16(&packet[262], (uint16_t)telemetry_manager->cmd_table.cmd_blocks[9].cmds[4].apid);
659  TF_copy_u8(&packet[264], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[9].cmds[4].tlm_id);
661  TF_copy_u8(&packet[266], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[9].cmds[5].cmd_type);
662  TF_copy_u16(&packet[267], (uint16_t)telemetry_manager->cmd_table.cmd_blocks[9].cmds[5].apid);
663  TF_copy_u8(&packet[269], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[9].cmds[5].tlm_id);
665  TF_copy_u8(&packet[271], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[9].cmds[6].cmd_type);
666  TF_copy_u16(&packet[272], (uint16_t)telemetry_manager->cmd_table.cmd_blocks[9].cmds[6].apid);
667  TF_copy_u8(&packet[274], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[9].cmds[6].tlm_id);
669  TF_copy_u8(&packet[276], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[9].cmds[7].cmd_type);
670  TF_copy_u16(&packet[277], (uint16_t)telemetry_manager->cmd_table.cmd_blocks[9].cmds[7].apid);
671  TF_copy_u8(&packet[279], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[9].cmds[7].tlm_id);
673  TF_copy_u8(&packet[281], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[9].cmds[8].cmd_type);
674  TF_copy_u16(&packet[282], (uint16_t)telemetry_manager->cmd_table.cmd_blocks[9].cmds[8].apid);
675  TF_copy_u8(&packet[284], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[9].cmds[8].tlm_id);
677  TF_copy_u8(&packet[286], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[9].cmds[9].cmd_type);
678  TF_copy_u16(&packet[287], (uint16_t)telemetry_manager->cmd_table.cmd_blocks[9].cmds[9].apid);
679  TF_copy_u8(&packet[289], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[9].cmds[9].tlm_id);
681 #endif
682 
683  *len = 291;
685 }
686 
687 static TF_TLM_FUNC_ACK Tlm_TL_(uint8_t* packet, uint16_t* len, uint16_t max_len)
688 {
690 
691  if (416 > max_len) return TF_TLM_FUNC_ACK_TOO_SHORT_LEN;
692 
693 #ifndef BUILD_SETTINGS_FAST_BUILD
697  TF_copy_u16(&packet[32], (uint16_t)CCP_get_id(timeline_command_dispatcher->tlm_info_.tl_list[offset+0]));
698  TF_copy_u32(&packet[34], (uint32_t)CCP_get_ti(timeline_command_dispatcher->tlm_info_.tl_list[offset+0]));
705  TF_copy_u16(&packet[44], (uint16_t)CCP_get_id(timeline_command_dispatcher->tlm_info_.tl_list[offset+1]));
706  TF_copy_u32(&packet[46], (uint32_t)CCP_get_ti(timeline_command_dispatcher->tlm_info_.tl_list[offset+1]));
713  TF_copy_u16(&packet[56], (uint16_t)CCP_get_id(timeline_command_dispatcher->tlm_info_.tl_list[offset+2]));
714  TF_copy_u32(&packet[58], (uint32_t)CCP_get_ti(timeline_command_dispatcher->tlm_info_.tl_list[offset+2]));
721  TF_copy_u16(&packet[68], (uint16_t)CCP_get_id(timeline_command_dispatcher->tlm_info_.tl_list[offset+3]));
722  TF_copy_u32(&packet[70], (uint32_t)CCP_get_ti(timeline_command_dispatcher->tlm_info_.tl_list[offset+3]));
729  TF_copy_u16(&packet[80], (uint16_t)CCP_get_id(timeline_command_dispatcher->tlm_info_.tl_list[offset+4]));
730  TF_copy_u32(&packet[82], (uint32_t)CCP_get_ti(timeline_command_dispatcher->tlm_info_.tl_list[offset+4]));
737  TF_copy_u16(&packet[92], (uint16_t)CCP_get_id(timeline_command_dispatcher->tlm_info_.tl_list[offset+5]));
738  TF_copy_u32(&packet[94], (uint32_t)CCP_get_ti(timeline_command_dispatcher->tlm_info_.tl_list[offset+5]));
745  TF_copy_u16(&packet[104], (uint16_t)CCP_get_id(timeline_command_dispatcher->tlm_info_.tl_list[offset+6]));
746  TF_copy_u32(&packet[106], (uint32_t)CCP_get_ti(timeline_command_dispatcher->tlm_info_.tl_list[offset+6]));
753  TF_copy_u16(&packet[116], (uint16_t)CCP_get_id(timeline_command_dispatcher->tlm_info_.tl_list[offset+7]));
754  TF_copy_u32(&packet[118], (uint32_t)CCP_get_ti(timeline_command_dispatcher->tlm_info_.tl_list[offset+7]));
761  TF_copy_u16(&packet[128], (uint16_t)CCP_get_id(timeline_command_dispatcher->tlm_info_.tl_list[offset+8]));
762  TF_copy_u32(&packet[130], (uint32_t)CCP_get_ti(timeline_command_dispatcher->tlm_info_.tl_list[offset+8]));
769  TF_copy_u16(&packet[140], (uint16_t)CCP_get_id(timeline_command_dispatcher->tlm_info_.tl_list[offset+9]));
770  TF_copy_u32(&packet[142], (uint32_t)CCP_get_ti(timeline_command_dispatcher->tlm_info_.tl_list[offset+9]));
777  TF_copy_u16(&packet[152], (uint16_t)CCP_get_id(timeline_command_dispatcher->tlm_info_.tl_list[offset+10]));
778  TF_copy_u32(&packet[154], (uint32_t)CCP_get_ti(timeline_command_dispatcher->tlm_info_.tl_list[offset+10]));
785  TF_copy_u16(&packet[164], (uint16_t)CCP_get_id(timeline_command_dispatcher->tlm_info_.tl_list[offset+11]));
786  TF_copy_u32(&packet[166], (uint32_t)CCP_get_ti(timeline_command_dispatcher->tlm_info_.tl_list[offset+11]));
793  TF_copy_u16(&packet[176], (uint16_t)CCP_get_id(timeline_command_dispatcher->tlm_info_.tl_list[offset+12]));
794  TF_copy_u32(&packet[178], (uint32_t)CCP_get_ti(timeline_command_dispatcher->tlm_info_.tl_list[offset+12]));
801  TF_copy_u16(&packet[188], (uint16_t)CCP_get_id(timeline_command_dispatcher->tlm_info_.tl_list[offset+13]));
802  TF_copy_u32(&packet[190], (uint32_t)CCP_get_ti(timeline_command_dispatcher->tlm_info_.tl_list[offset+13]));
809  TF_copy_u16(&packet[200], (uint16_t)CCP_get_id(timeline_command_dispatcher->tlm_info_.tl_list[offset+14]));
810  TF_copy_u32(&packet[202], (uint32_t)CCP_get_ti(timeline_command_dispatcher->tlm_info_.tl_list[offset+14]));
817  TF_copy_u16(&packet[212], (uint16_t)CCP_get_id(timeline_command_dispatcher->tlm_info_.tl_list[offset+15]));
818  TF_copy_u32(&packet[214], (uint32_t)CCP_get_ti(timeline_command_dispatcher->tlm_info_.tl_list[offset+15]));
825  TF_copy_u16(&packet[224], (uint16_t)CCP_get_id(timeline_command_dispatcher->tlm_info_.tl_list[offset+16]));
826  TF_copy_u32(&packet[226], (uint32_t)CCP_get_ti(timeline_command_dispatcher->tlm_info_.tl_list[offset+16]));
833  TF_copy_u16(&packet[236], (uint16_t)CCP_get_id(timeline_command_dispatcher->tlm_info_.tl_list[offset+17]));
834  TF_copy_u32(&packet[238], (uint32_t)CCP_get_ti(timeline_command_dispatcher->tlm_info_.tl_list[offset+17]));
841  TF_copy_u16(&packet[248], (uint16_t)CCP_get_id(timeline_command_dispatcher->tlm_info_.tl_list[offset+18]));
842  TF_copy_u32(&packet[250], (uint32_t)CCP_get_ti(timeline_command_dispatcher->tlm_info_.tl_list[offset+18]));
849  TF_copy_u16(&packet[260], (uint16_t)CCP_get_id(timeline_command_dispatcher->tlm_info_.tl_list[offset+19]));
850  TF_copy_u32(&packet[262], (uint32_t)CCP_get_ti(timeline_command_dispatcher->tlm_info_.tl_list[offset+19]));
857  TF_copy_u16(&packet[272], (uint16_t)CCP_get_id(timeline_command_dispatcher->tlm_info_.tl_list[offset+20]));
858  TF_copy_u32(&packet[274], (uint32_t)CCP_get_ti(timeline_command_dispatcher->tlm_info_.tl_list[offset+20]));
865  TF_copy_u16(&packet[284], (uint16_t)CCP_get_id(timeline_command_dispatcher->tlm_info_.tl_list[offset+21]));
866  TF_copy_u32(&packet[286], (uint32_t)CCP_get_ti(timeline_command_dispatcher->tlm_info_.tl_list[offset+21]));
873  TF_copy_u16(&packet[296], (uint16_t)CCP_get_id(timeline_command_dispatcher->tlm_info_.tl_list[offset+22]));
874  TF_copy_u32(&packet[298], (uint32_t)CCP_get_ti(timeline_command_dispatcher->tlm_info_.tl_list[offset+22]));
881  TF_copy_u16(&packet[308], (uint16_t)CCP_get_id(timeline_command_dispatcher->tlm_info_.tl_list[offset+23]));
882  TF_copy_u32(&packet[310], (uint32_t)CCP_get_ti(timeline_command_dispatcher->tlm_info_.tl_list[offset+23]));
889  TF_copy_u16(&packet[320], (uint16_t)CCP_get_id(timeline_command_dispatcher->tlm_info_.tl_list[offset+24]));
890  TF_copy_u32(&packet[322], (uint32_t)CCP_get_ti(timeline_command_dispatcher->tlm_info_.tl_list[offset+24]));
897  TF_copy_u16(&packet[332], (uint16_t)CCP_get_id(timeline_command_dispatcher->tlm_info_.tl_list[offset+25]));
898  TF_copy_u32(&packet[334], (uint32_t)CCP_get_ti(timeline_command_dispatcher->tlm_info_.tl_list[offset+25]));
905  TF_copy_u16(&packet[344], (uint16_t)CCP_get_id(timeline_command_dispatcher->tlm_info_.tl_list[offset+26]));
906  TF_copy_u32(&packet[346], (uint32_t)CCP_get_ti(timeline_command_dispatcher->tlm_info_.tl_list[offset+26]));
913  TF_copy_u16(&packet[356], (uint16_t)CCP_get_id(timeline_command_dispatcher->tlm_info_.tl_list[offset+27]));
914  TF_copy_u32(&packet[358], (uint32_t)CCP_get_ti(timeline_command_dispatcher->tlm_info_.tl_list[offset+27]));
921  TF_copy_u16(&packet[368], (uint16_t)CCP_get_id(timeline_command_dispatcher->tlm_info_.tl_list[offset+28]));
922  TF_copy_u32(&packet[370], (uint32_t)CCP_get_ti(timeline_command_dispatcher->tlm_info_.tl_list[offset+28]));
929  TF_copy_u16(&packet[380], (uint16_t)CCP_get_id(timeline_command_dispatcher->tlm_info_.tl_list[offset+29]));
930  TF_copy_u32(&packet[382], (uint32_t)CCP_get_ti(timeline_command_dispatcher->tlm_info_.tl_list[offset+29]));
937  TF_copy_u16(&packet[392], (uint16_t)CCP_get_id(timeline_command_dispatcher->tlm_info_.tl_list[offset+30]));
938  TF_copy_u32(&packet[394], (uint32_t)CCP_get_ti(timeline_command_dispatcher->tlm_info_.tl_list[offset+30]));
945  TF_copy_u16(&packet[404], (uint16_t)CCP_get_id(timeline_command_dispatcher->tlm_info_.tl_list[offset+31]));
946  TF_copy_u32(&packet[406], (uint32_t)CCP_get_ti(timeline_command_dispatcher->tlm_info_.tl_list[offset+31]));
953 #endif
954 
955  *len = 416;
957 }
958 
959 static TF_TLM_FUNC_ACK Tlm_BL_(uint8_t* packet, uint16_t* len, uint16_t max_len)
960 {
961  const bct_id_t block = block_command_table->pos.block;
962 
963  if (426 > max_len) return TF_TLM_FUNC_ACK_TOO_SHORT_LEN;
964 
965 #ifndef BUILD_SETTINGS_FAST_BUILD
966  TF_copy_u16(&packet[26], block);
967  TF_copy_u8(&packet[28], block_command_table->pos.cmd);
968  TF_copy_u8(&packet[29], BCT_get_bc_length(block));
969  TF_copy_u8(&packet[30], BCE_get_bc_exe_params(block)->rotate.next_cmd);
970  TF_copy_u16(&packet[31], BCE_get_bc_exe_params(block)->rotate.counter);
971  TF_copy_u16(&packet[33], BCE_get_bc_exe_params(block)->rotate.interval);
972  TF_copy_u16(&packet[35], BCE_get_bc_exe_params(block)->timelimit_combine.call_num);
973  TF_copy_u16(&packet[37], BCE_get_bc_exe_params(block)->timelimit_combine.timeover_num);
974  TF_copy_u8(&packet[39], BCE_get_bc_exe_params(block)->timelimit_combine.last_timeover_cmd_pos);
975  TF_copy_u8(&packet[40], BCE_get_bc_exe_params(block)->timelimit_combine.worst_cmd_pos);
976  TF_copy_u8(&packet[41], BCE_get_bc_exe_params(block)->is_active);
977  TF_copy_u16(&packet[42], (uint16_t)BCT_get_id(block, 0));
978  TF_copy_u32(&packet[44], (uint32_t)BCT_get_ti(block, 0));
979  TF_copy_u8(&packet[48], BCT_get_param_head(block, 0)[0]);
980  TF_copy_u8(&packet[49], BCT_get_param_head(block, 0)[1]);
981  TF_copy_u8(&packet[50], BCT_get_param_head(block, 0)[2]);
982  TF_copy_u8(&packet[51], BCT_get_param_head(block, 0)[3]);
983  TF_copy_u8(&packet[52], BCT_get_param_head(block, 0)[4]);
984  TF_copy_u8(&packet[53], BCT_get_param_head(block, 0)[5]);
985  TF_copy_u16(&packet[54], (uint16_t)BCT_get_id(block, 1));
986  TF_copy_u32(&packet[56], (uint32_t)BCT_get_ti(block, 1));
987  TF_copy_u8(&packet[60], BCT_get_param_head(block, 1)[0]);
988  TF_copy_u8(&packet[61], BCT_get_param_head(block, 1)[1]);
989  TF_copy_u8(&packet[62], BCT_get_param_head(block, 1)[2]);
990  TF_copy_u8(&packet[63], BCT_get_param_head(block, 1)[3]);
991  TF_copy_u8(&packet[64], BCT_get_param_head(block, 1)[4]);
992  TF_copy_u8(&packet[65], BCT_get_param_head(block, 1)[5]);
993  TF_copy_u16(&packet[66], (uint16_t)BCT_get_id(block, 2));
994  TF_copy_u32(&packet[68], (uint32_t)BCT_get_ti(block, 2));
995  TF_copy_u8(&packet[72], BCT_get_param_head(block, 2)[0]);
996  TF_copy_u8(&packet[73], BCT_get_param_head(block, 2)[1]);
997  TF_copy_u8(&packet[74], BCT_get_param_head(block, 2)[2]);
998  TF_copy_u8(&packet[75], BCT_get_param_head(block, 2)[3]);
999  TF_copy_u8(&packet[76], BCT_get_param_head(block, 2)[4]);
1000  TF_copy_u8(&packet[77], BCT_get_param_head(block, 2)[5]);
1001  TF_copy_u16(&packet[78], (uint16_t)BCT_get_id(block, 3));
1002  TF_copy_u32(&packet[80], (uint32_t)BCT_get_ti(block, 3));
1003  TF_copy_u8(&packet[84], BCT_get_param_head(block, 3)[0]);
1004  TF_copy_u8(&packet[85], BCT_get_param_head(block, 3)[1]);
1005  TF_copy_u8(&packet[86], BCT_get_param_head(block, 3)[2]);
1006  TF_copy_u8(&packet[87], BCT_get_param_head(block, 3)[3]);
1007  TF_copy_u8(&packet[88], BCT_get_param_head(block, 3)[4]);
1008  TF_copy_u8(&packet[89], BCT_get_param_head(block, 3)[5]);
1009  TF_copy_u16(&packet[90], (uint16_t)BCT_get_id(block, 4));
1010  TF_copy_u32(&packet[92], (uint32_t)BCT_get_ti(block, 4));
1011  TF_copy_u8(&packet[96], BCT_get_param_head(block, 4)[0]);
1012  TF_copy_u8(&packet[97], BCT_get_param_head(block, 4)[1]);
1013  TF_copy_u8(&packet[98], BCT_get_param_head(block, 4)[2]);
1014  TF_copy_u8(&packet[99], BCT_get_param_head(block, 4)[3]);
1015  TF_copy_u8(&packet[100], BCT_get_param_head(block, 4)[4]);
1016  TF_copy_u8(&packet[101], BCT_get_param_head(block, 4)[5]);
1017  TF_copy_u16(&packet[102], (uint16_t)BCT_get_id(block, 5));
1018  TF_copy_u32(&packet[104], (uint32_t)BCT_get_ti(block, 5));
1019  TF_copy_u8(&packet[108], BCT_get_param_head(block, 5)[0]);
1020  TF_copy_u8(&packet[109], BCT_get_param_head(block, 5)[1]);
1021  TF_copy_u8(&packet[110], BCT_get_param_head(block, 5)[2]);
1022  TF_copy_u8(&packet[111], BCT_get_param_head(block, 5)[3]);
1023  TF_copy_u8(&packet[112], BCT_get_param_head(block, 5)[4]);
1024  TF_copy_u8(&packet[113], BCT_get_param_head(block, 5)[5]);
1025  TF_copy_u16(&packet[114], (uint16_t)BCT_get_id(block, 6));
1026  TF_copy_u32(&packet[116], (uint32_t)BCT_get_ti(block, 6));
1027  TF_copy_u8(&packet[120], BCT_get_param_head(block, 6)[0]);
1028  TF_copy_u8(&packet[121], BCT_get_param_head(block, 6)[1]);
1029  TF_copy_u8(&packet[122], BCT_get_param_head(block, 6)[2]);
1030  TF_copy_u8(&packet[123], BCT_get_param_head(block, 6)[3]);
1031  TF_copy_u8(&packet[124], BCT_get_param_head(block, 6)[4]);
1032  TF_copy_u8(&packet[125], BCT_get_param_head(block, 6)[5]);
1033  TF_copy_u16(&packet[126], (uint16_t)BCT_get_id(block, 7));
1034  TF_copy_u32(&packet[128], (uint32_t)BCT_get_ti(block, 7));
1035  TF_copy_u8(&packet[132], BCT_get_param_head(block, 7)[0]);
1036  TF_copy_u8(&packet[133], BCT_get_param_head(block, 7)[1]);
1037  TF_copy_u8(&packet[134], BCT_get_param_head(block, 7)[2]);
1038  TF_copy_u8(&packet[135], BCT_get_param_head(block, 7)[3]);
1039  TF_copy_u8(&packet[136], BCT_get_param_head(block, 7)[4]);
1040  TF_copy_u8(&packet[137], BCT_get_param_head(block, 7)[5]);
1041  TF_copy_u16(&packet[138], (uint16_t)BCT_get_id(block, 8));
1042  TF_copy_u32(&packet[140], (uint32_t)BCT_get_ti(block, 8));
1043  TF_copy_u8(&packet[144], BCT_get_param_head(block, 8)[0]);
1044  TF_copy_u8(&packet[145], BCT_get_param_head(block, 8)[1]);
1045  TF_copy_u8(&packet[146], BCT_get_param_head(block, 8)[2]);
1046  TF_copy_u8(&packet[147], BCT_get_param_head(block, 8)[3]);
1047  TF_copy_u8(&packet[148], BCT_get_param_head(block, 8)[4]);
1048  TF_copy_u8(&packet[149], BCT_get_param_head(block, 8)[5]);
1049  TF_copy_u16(&packet[150], (uint16_t)BCT_get_id(block, 9));
1050  TF_copy_u32(&packet[152], (uint32_t)BCT_get_ti(block, 9));
1051  TF_copy_u8(&packet[156], BCT_get_param_head(block, 9)[0]);
1052  TF_copy_u8(&packet[157], BCT_get_param_head(block, 9)[1]);
1053  TF_copy_u8(&packet[158], BCT_get_param_head(block, 9)[2]);
1054  TF_copy_u8(&packet[159], BCT_get_param_head(block, 9)[3]);
1055  TF_copy_u8(&packet[160], BCT_get_param_head(block, 9)[4]);
1056  TF_copy_u8(&packet[161], BCT_get_param_head(block, 9)[5]);
1057  TF_copy_u16(&packet[162], (uint16_t)BCT_get_id(block, 10));
1058  TF_copy_u32(&packet[164], (uint32_t)BCT_get_ti(block, 10));
1059  TF_copy_u8(&packet[168], BCT_get_param_head(block, 10)[0]);
1060  TF_copy_u8(&packet[169], BCT_get_param_head(block, 10)[1]);
1061  TF_copy_u8(&packet[170], BCT_get_param_head(block, 10)[2]);
1062  TF_copy_u8(&packet[171], BCT_get_param_head(block, 10)[3]);
1063  TF_copy_u8(&packet[172], BCT_get_param_head(block, 10)[4]);
1064  TF_copy_u8(&packet[173], BCT_get_param_head(block, 10)[5]);
1065  TF_copy_u16(&packet[174], (uint16_t)BCT_get_id(block, 11));
1066  TF_copy_u32(&packet[176], (uint32_t)BCT_get_ti(block, 11));
1067  TF_copy_u8(&packet[180], BCT_get_param_head(block, 11)[0]);
1068  TF_copy_u8(&packet[181], BCT_get_param_head(block, 11)[1]);
1069  TF_copy_u8(&packet[182], BCT_get_param_head(block, 11)[2]);
1070  TF_copy_u8(&packet[183], BCT_get_param_head(block, 11)[3]);
1071  TF_copy_u8(&packet[184], BCT_get_param_head(block, 11)[4]);
1072  TF_copy_u8(&packet[185], BCT_get_param_head(block, 11)[5]);
1073  TF_copy_u16(&packet[186], (uint16_t)BCT_get_id(block, 12));
1074  TF_copy_u32(&packet[188], (uint32_t)BCT_get_ti(block, 12));
1075  TF_copy_u8(&packet[192], BCT_get_param_head(block, 12)[0]);
1076  TF_copy_u8(&packet[193], BCT_get_param_head(block, 12)[1]);
1077  TF_copy_u8(&packet[194], BCT_get_param_head(block, 12)[2]);
1078  TF_copy_u8(&packet[195], BCT_get_param_head(block, 12)[3]);
1079  TF_copy_u8(&packet[196], BCT_get_param_head(block, 12)[4]);
1080  TF_copy_u8(&packet[197], BCT_get_param_head(block, 12)[5]);
1081  TF_copy_u16(&packet[198], (uint16_t)BCT_get_id(block, 13));
1082  TF_copy_u32(&packet[200], (uint32_t)BCT_get_ti(block, 13));
1083  TF_copy_u8(&packet[204], BCT_get_param_head(block, 13)[0]);
1084  TF_copy_u8(&packet[205], BCT_get_param_head(block, 13)[1]);
1085  TF_copy_u8(&packet[206], BCT_get_param_head(block, 13)[2]);
1086  TF_copy_u8(&packet[207], BCT_get_param_head(block, 13)[3]);
1087  TF_copy_u8(&packet[208], BCT_get_param_head(block, 13)[4]);
1088  TF_copy_u8(&packet[209], BCT_get_param_head(block, 13)[5]);
1089  TF_copy_u16(&packet[210], (uint16_t)BCT_get_id(block, 14));
1090  TF_copy_u32(&packet[212], (uint32_t)BCT_get_ti(block, 14));
1091  TF_copy_u8(&packet[216], BCT_get_param_head(block, 14)[0]);
1092  TF_copy_u8(&packet[217], BCT_get_param_head(block, 14)[1]);
1093  TF_copy_u8(&packet[218], BCT_get_param_head(block, 14)[2]);
1094  TF_copy_u8(&packet[219], BCT_get_param_head(block, 14)[3]);
1095  TF_copy_u8(&packet[220], BCT_get_param_head(block, 14)[4]);
1096  TF_copy_u8(&packet[221], BCT_get_param_head(block, 14)[5]);
1097  TF_copy_u16(&packet[222], (uint16_t)BCT_get_id(block, 15));
1098  TF_copy_u32(&packet[224], (uint32_t)BCT_get_ti(block, 15));
1099  TF_copy_u8(&packet[228], BCT_get_param_head(block, 15)[0]);
1100  TF_copy_u8(&packet[229], BCT_get_param_head(block, 15)[1]);
1101  TF_copy_u8(&packet[230], BCT_get_param_head(block, 15)[2]);
1102  TF_copy_u8(&packet[231], BCT_get_param_head(block, 15)[3]);
1103  TF_copy_u8(&packet[232], BCT_get_param_head(block, 15)[4]);
1104  TF_copy_u8(&packet[233], BCT_get_param_head(block, 15)[5]);
1105  TF_copy_u16(&packet[234], (uint16_t)BCT_get_id(block, 16));
1106  TF_copy_u32(&packet[236], (uint32_t)BCT_get_ti(block, 16));
1107  TF_copy_u8(&packet[240], BCT_get_param_head(block, 16)[0]);
1108  TF_copy_u8(&packet[241], BCT_get_param_head(block, 16)[1]);
1109  TF_copy_u8(&packet[242], BCT_get_param_head(block, 16)[2]);
1110  TF_copy_u8(&packet[243], BCT_get_param_head(block, 16)[3]);
1111  TF_copy_u8(&packet[244], BCT_get_param_head(block, 16)[4]);
1112  TF_copy_u8(&packet[245], BCT_get_param_head(block, 16)[5]);
1113  TF_copy_u16(&packet[246], (uint16_t)BCT_get_id(block, 17));
1114  TF_copy_u32(&packet[248], (uint32_t)BCT_get_ti(block, 17));
1115  TF_copy_u8(&packet[252], BCT_get_param_head(block, 17)[0]);
1116  TF_copy_u8(&packet[253], BCT_get_param_head(block, 17)[1]);
1117  TF_copy_u8(&packet[254], BCT_get_param_head(block, 17)[2]);
1118  TF_copy_u8(&packet[255], BCT_get_param_head(block, 17)[3]);
1119  TF_copy_u8(&packet[256], BCT_get_param_head(block, 17)[4]);
1120  TF_copy_u8(&packet[257], BCT_get_param_head(block, 17)[5]);
1121  TF_copy_u16(&packet[258], (uint16_t)BCT_get_id(block, 18));
1122  TF_copy_u32(&packet[260], (uint32_t)BCT_get_ti(block, 18));
1123  TF_copy_u8(&packet[264], BCT_get_param_head(block, 18)[0]);
1124  TF_copy_u8(&packet[265], BCT_get_param_head(block, 18)[1]);
1125  TF_copy_u8(&packet[266], BCT_get_param_head(block, 18)[2]);
1126  TF_copy_u8(&packet[267], BCT_get_param_head(block, 18)[3]);
1127  TF_copy_u8(&packet[268], BCT_get_param_head(block, 18)[4]);
1128  TF_copy_u8(&packet[269], BCT_get_param_head(block, 18)[5]);
1129  TF_copy_u16(&packet[270], (uint16_t)BCT_get_id(block, 19));
1130  TF_copy_u32(&packet[272], (uint32_t)BCT_get_ti(block, 19));
1131  TF_copy_u8(&packet[276], BCT_get_param_head(block, 19)[0]);
1132  TF_copy_u8(&packet[277], BCT_get_param_head(block, 19)[1]);
1133  TF_copy_u8(&packet[278], BCT_get_param_head(block, 19)[2]);
1134  TF_copy_u8(&packet[279], BCT_get_param_head(block, 19)[3]);
1135  TF_copy_u8(&packet[280], BCT_get_param_head(block, 19)[4]);
1136  TF_copy_u8(&packet[281], BCT_get_param_head(block, 19)[5]);
1137  TF_copy_u16(&packet[282], (uint16_t)BCT_get_id(block, 20));
1138  TF_copy_u32(&packet[284], (uint32_t)BCT_get_ti(block, 20));
1139  TF_copy_u8(&packet[288], BCT_get_param_head(block, 20)[0]);
1140  TF_copy_u8(&packet[289], BCT_get_param_head(block, 20)[1]);
1141  TF_copy_u8(&packet[290], BCT_get_param_head(block, 20)[2]);
1142  TF_copy_u8(&packet[291], BCT_get_param_head(block, 20)[3]);
1143  TF_copy_u8(&packet[292], BCT_get_param_head(block, 20)[4]);
1144  TF_copy_u8(&packet[293], BCT_get_param_head(block, 20)[5]);
1145  TF_copy_u16(&packet[294], (uint16_t)BCT_get_id(block, 21));
1146  TF_copy_u32(&packet[296], (uint32_t)BCT_get_ti(block, 21));
1147  TF_copy_u8(&packet[300], BCT_get_param_head(block, 21)[0]);
1148  TF_copy_u8(&packet[301], BCT_get_param_head(block, 21)[1]);
1149  TF_copy_u8(&packet[302], BCT_get_param_head(block, 21)[2]);
1150  TF_copy_u8(&packet[303], BCT_get_param_head(block, 21)[3]);
1151  TF_copy_u8(&packet[304], BCT_get_param_head(block, 21)[4]);
1152  TF_copy_u8(&packet[305], BCT_get_param_head(block, 21)[5]);
1153  TF_copy_u16(&packet[306], (uint16_t)BCT_get_id(block, 22));
1154  TF_copy_u32(&packet[308], (uint32_t)BCT_get_ti(block, 22));
1155  TF_copy_u8(&packet[312], BCT_get_param_head(block, 22)[0]);
1156  TF_copy_u8(&packet[313], BCT_get_param_head(block, 22)[1]);
1157  TF_copy_u8(&packet[314], BCT_get_param_head(block, 22)[2]);
1158  TF_copy_u8(&packet[315], BCT_get_param_head(block, 22)[3]);
1159  TF_copy_u8(&packet[316], BCT_get_param_head(block, 22)[4]);
1160  TF_copy_u8(&packet[317], BCT_get_param_head(block, 22)[5]);
1161  TF_copy_u16(&packet[318], (uint16_t)BCT_get_id(block, 23));
1162  TF_copy_u32(&packet[320], (uint32_t)BCT_get_ti(block, 23));
1163  TF_copy_u8(&packet[324], BCT_get_param_head(block, 23)[0]);
1164  TF_copy_u8(&packet[325], BCT_get_param_head(block, 23)[1]);
1165  TF_copy_u8(&packet[326], BCT_get_param_head(block, 23)[2]);
1166  TF_copy_u8(&packet[327], BCT_get_param_head(block, 23)[3]);
1167  TF_copy_u8(&packet[328], BCT_get_param_head(block, 23)[4]);
1168  TF_copy_u8(&packet[329], BCT_get_param_head(block, 23)[5]);
1169  TF_copy_u16(&packet[330], (uint16_t)BCT_get_id(block, 24));
1170  TF_copy_u32(&packet[332], (uint32_t)BCT_get_ti(block, 24));
1171  TF_copy_u8(&packet[336], BCT_get_param_head(block, 24)[0]);
1172  TF_copy_u8(&packet[337], BCT_get_param_head(block, 24)[1]);
1173  TF_copy_u8(&packet[338], BCT_get_param_head(block, 24)[2]);
1174  TF_copy_u8(&packet[339], BCT_get_param_head(block, 24)[3]);
1175  TF_copy_u8(&packet[340], BCT_get_param_head(block, 24)[4]);
1176  TF_copy_u8(&packet[341], BCT_get_param_head(block, 24)[5]);
1177  TF_copy_u16(&packet[342], (uint16_t)BCT_get_id(block, 25));
1178  TF_copy_u32(&packet[344], (uint32_t)BCT_get_ti(block, 25));
1179  TF_copy_u8(&packet[348], BCT_get_param_head(block, 25)[0]);
1180  TF_copy_u8(&packet[349], BCT_get_param_head(block, 25)[1]);
1181  TF_copy_u8(&packet[350], BCT_get_param_head(block, 25)[2]);
1182  TF_copy_u8(&packet[351], BCT_get_param_head(block, 25)[3]);
1183  TF_copy_u8(&packet[352], BCT_get_param_head(block, 25)[4]);
1184  TF_copy_u8(&packet[353], BCT_get_param_head(block, 25)[5]);
1185  TF_copy_u16(&packet[354], (uint16_t)BCT_get_id(block, 26));
1186  TF_copy_u32(&packet[356], (uint32_t)BCT_get_ti(block, 26));
1187  TF_copy_u8(&packet[360], BCT_get_param_head(block, 26)[0]);
1188  TF_copy_u8(&packet[361], BCT_get_param_head(block, 26)[1]);
1189  TF_copy_u8(&packet[362], BCT_get_param_head(block, 26)[2]);
1190  TF_copy_u8(&packet[363], BCT_get_param_head(block, 26)[3]);
1191  TF_copy_u8(&packet[364], BCT_get_param_head(block, 26)[4]);
1192  TF_copy_u8(&packet[365], BCT_get_param_head(block, 26)[5]);
1193  TF_copy_u16(&packet[366], (uint16_t)BCT_get_id(block, 27));
1194  TF_copy_u32(&packet[368], (uint32_t)BCT_get_ti(block, 27));
1195  TF_copy_u8(&packet[372], BCT_get_param_head(block, 27)[0]);
1196  TF_copy_u8(&packet[373], BCT_get_param_head(block, 27)[1]);
1197  TF_copy_u8(&packet[374], BCT_get_param_head(block, 27)[2]);
1198  TF_copy_u8(&packet[375], BCT_get_param_head(block, 27)[3]);
1199  TF_copy_u8(&packet[376], BCT_get_param_head(block, 27)[4]);
1200  TF_copy_u8(&packet[377], BCT_get_param_head(block, 27)[5]);
1201  TF_copy_u16(&packet[378], (uint16_t)BCT_get_id(block, 28));
1202  TF_copy_u32(&packet[380], (uint32_t)BCT_get_ti(block, 28));
1203  TF_copy_u8(&packet[384], BCT_get_param_head(block, 28)[0]);
1204  TF_copy_u8(&packet[385], BCT_get_param_head(block, 28)[1]);
1205  TF_copy_u8(&packet[386], BCT_get_param_head(block, 28)[2]);
1206  TF_copy_u8(&packet[387], BCT_get_param_head(block, 28)[3]);
1207  TF_copy_u8(&packet[388], BCT_get_param_head(block, 28)[4]);
1208  TF_copy_u8(&packet[389], BCT_get_param_head(block, 28)[5]);
1209  TF_copy_u16(&packet[390], (uint16_t)BCT_get_id(block, 29));
1210  TF_copy_u32(&packet[392], (uint32_t)BCT_get_ti(block, 29));
1211  TF_copy_u8(&packet[396], BCT_get_param_head(block, 29)[0]);
1212  TF_copy_u8(&packet[397], BCT_get_param_head(block, 29)[1]);
1213  TF_copy_u8(&packet[398], BCT_get_param_head(block, 29)[2]);
1214  TF_copy_u8(&packet[399], BCT_get_param_head(block, 29)[3]);
1215  TF_copy_u8(&packet[400], BCT_get_param_head(block, 29)[4]);
1216  TF_copy_u8(&packet[401], BCT_get_param_head(block, 29)[5]);
1217  TF_copy_u16(&packet[402], (uint16_t)BCT_get_id(block, 30));
1218  TF_copy_u32(&packet[404], (uint32_t)BCT_get_ti(block, 30));
1219  TF_copy_u8(&packet[408], BCT_get_param_head(block, 30)[0]);
1220  TF_copy_u8(&packet[409], BCT_get_param_head(block, 30)[1]);
1221  TF_copy_u8(&packet[410], BCT_get_param_head(block, 30)[2]);
1222  TF_copy_u8(&packet[411], BCT_get_param_head(block, 30)[3]);
1223  TF_copy_u8(&packet[412], BCT_get_param_head(block, 30)[4]);
1224  TF_copy_u8(&packet[413], BCT_get_param_head(block, 30)[5]);
1225  TF_copy_u16(&packet[414], (uint16_t)BCT_get_id(block, 31));
1226  TF_copy_u32(&packet[416], (uint32_t)BCT_get_ti(block, 31));
1227  TF_copy_u8(&packet[420], BCT_get_param_head(block, 31)[0]);
1228  TF_copy_u8(&packet[421], BCT_get_param_head(block, 31)[1]);
1229  TF_copy_u8(&packet[422], BCT_get_param_head(block, 31)[2]);
1230  TF_copy_u8(&packet[423], BCT_get_param_head(block, 31)[3]);
1231  TF_copy_u8(&packet[424], BCT_get_param_head(block, 31)[4]);
1232  TF_copy_u8(&packet[425], BCT_get_param_head(block, 31)[5]);
1233 #endif
1234 
1235  *len = 426;
1236  return TF_TLM_FUNC_ACK_SUCCESS;
1237 }
1238 
1239 static TF_TLM_FUNC_ACK Tlm_CA_(uint8_t* packet, uint16_t* len, uint16_t max_len)
1240 {
1241  int offset = CA_TLM_PAGE_SIZE * (command_analyze->tlm_page_no);
1242 
1243  if (251 > max_len) return TF_TLM_FUNC_ACK_TOO_SHORT_LEN;
1244 
1245 #ifndef BUILD_SETTINGS_FAST_BUILD
1246  TF_copy_u8(&packet[26], (uint8_t)(command_analyze->tlm_page_no));
1247  TF_copy_u32(&packet[27], (uint32_t)(command_analyze->cmd_table[offset+0].cmd_func));
1248  TF_copy_u8(&packet[31], (uint8_t)(((command_analyze->cmd_table[offset+0].param_size_infos[0].packed_info.bit.first & 0x0f) << 4) | (command_analyze->cmd_table[offset+0].param_size_infos[0].packed_info.bit.second & 0x0f)));
1249  TF_copy_u8(&packet[32], (uint8_t)(((command_analyze->cmd_table[offset+0].param_size_infos[1].packed_info.bit.first & 0x0f) << 4) | (command_analyze->cmd_table[offset+0].param_size_infos[1].packed_info.bit.second & 0x0f)));
1250  TF_copy_u8(&packet[33], (uint8_t)(((command_analyze->cmd_table[offset+0].param_size_infos[2].packed_info.bit.first & 0x0f) << 4) | (command_analyze->cmd_table[offset+0].param_size_infos[2].packed_info.bit.second & 0x0f)));
1251  TF_copy_u32(&packet[34], (uint32_t)(command_analyze->cmd_table[offset+1].cmd_func));
1252  TF_copy_u8(&packet[38], (uint8_t)(((command_analyze->cmd_table[offset+1].param_size_infos[0].packed_info.bit.first & 0x0f) << 4) | (command_analyze->cmd_table[offset+1].param_size_infos[0].packed_info.bit.second & 0x0f)));
1253  TF_copy_u8(&packet[39], (uint8_t)(((command_analyze->cmd_table[offset+1].param_size_infos[1].packed_info.bit.first & 0x0f) << 4) | (command_analyze->cmd_table[offset+1].param_size_infos[1].packed_info.bit.second & 0x0f)));
1254  TF_copy_u8(&packet[40], (uint8_t)(((command_analyze->cmd_table[offset+1].param_size_infos[2].packed_info.bit.first & 0x0f) << 4) | (command_analyze->cmd_table[offset+1].param_size_infos[2].packed_info.bit.second & 0x0f)));
1255  TF_copy_u32(&packet[41], (uint32_t)(command_analyze->cmd_table[offset+2].cmd_func));
1256  TF_copy_u8(&packet[45], (uint8_t)(((command_analyze->cmd_table[offset+2].param_size_infos[0].packed_info.bit.first & 0x0f) << 4) | (command_analyze->cmd_table[offset+2].param_size_infos[0].packed_info.bit.second & 0x0f)));
1257  TF_copy_u8(&packet[46], (uint8_t)(((command_analyze->cmd_table[offset+2].param_size_infos[1].packed_info.bit.first & 0x0f) << 4) | (command_analyze->cmd_table[offset+2].param_size_infos[1].packed_info.bit.second & 0x0f)));
1258  TF_copy_u8(&packet[47], (uint8_t)(((command_analyze->cmd_table[offset+2].param_size_infos[2].packed_info.bit.first & 0x0f) << 4) | (command_analyze->cmd_table[offset+2].param_size_infos[2].packed_info.bit.second & 0x0f)));
1259  TF_copy_u32(&packet[48], (uint32_t)(command_analyze->cmd_table[offset+3].cmd_func));
1260  TF_copy_u8(&packet[52], (uint8_t)(((command_analyze->cmd_table[offset+3].param_size_infos[0].packed_info.bit.first & 0x0f) << 4) | (command_analyze->cmd_table[offset+3].param_size_infos[0].packed_info.bit.second & 0x0f)));
1261  TF_copy_u8(&packet[53], (uint8_t)(((command_analyze->cmd_table[offset+3].param_size_infos[1].packed_info.bit.first & 0x0f) << 4) | (command_analyze->cmd_table[offset+3].param_size_infos[1].packed_info.bit.second & 0x0f)));
1262  TF_copy_u8(&packet[54], (uint8_t)(((command_analyze->cmd_table[offset+3].param_size_infos[2].packed_info.bit.first & 0x0f) << 4) | (command_analyze->cmd_table[offset+3].param_size_infos[2].packed_info.bit.second & 0x0f)));
1263  TF_copy_u32(&packet[55], (uint32_t)(command_analyze->cmd_table[offset+4].cmd_func));
1264  TF_copy_u8(&packet[59], (uint8_t)(((command_analyze->cmd_table[offset+4].param_size_infos[0].packed_info.bit.first & 0x0f) << 4) | (command_analyze->cmd_table[offset+4].param_size_infos[0].packed_info.bit.second & 0x0f)));
1265  TF_copy_u8(&packet[60], (uint8_t)(((command_analyze->cmd_table[offset+4].param_size_infos[1].packed_info.bit.first & 0x0f) << 4) | (command_analyze->cmd_table[offset+4].param_size_infos[1].packed_info.bit.second & 0x0f)));
1266  TF_copy_u8(&packet[61], (uint8_t)(((command_analyze->cmd_table[offset+4].param_size_infos[2].packed_info.bit.first & 0x0f) << 4) | (command_analyze->cmd_table[offset+4].param_size_infos[2].packed_info.bit.second & 0x0f)));
1267  TF_copy_u32(&packet[62], (uint32_t)(command_analyze->cmd_table[offset+5].cmd_func));
1268  TF_copy_u8(&packet[66], (uint8_t)(((command_analyze->cmd_table[offset+5].param_size_infos[0].packed_info.bit.first & 0x0f) << 4) | (command_analyze->cmd_table[offset+5].param_size_infos[0].packed_info.bit.second & 0x0f)));
1269  TF_copy_u8(&packet[67], (uint8_t)(((command_analyze->cmd_table[offset+5].param_size_infos[1].packed_info.bit.first & 0x0f) << 4) | (command_analyze->cmd_table[offset+5].param_size_infos[1].packed_info.bit.second & 0x0f)));
1270  TF_copy_u8(&packet[68], (uint8_t)(((command_analyze->cmd_table[offset+5].param_size_infos[2].packed_info.bit.first & 0x0f) << 4) | (command_analyze->cmd_table[offset+5].param_size_infos[2].packed_info.bit.second & 0x0f)));
1271  TF_copy_u32(&packet[69], (uint32_t)(command_analyze->cmd_table[offset+6].cmd_func));
1272  TF_copy_u8(&packet[73], (uint8_t)(((command_analyze->cmd_table[offset+6].param_size_infos[0].packed_info.bit.first & 0x0f) << 4) | (command_analyze->cmd_table[offset+6].param_size_infos[0].packed_info.bit.second & 0x0f)));
1273  TF_copy_u8(&packet[74], (uint8_t)(((command_analyze->cmd_table[offset+6].param_size_infos[1].packed_info.bit.first & 0x0f) << 4) | (command_analyze->cmd_table[offset+6].param_size_infos[1].packed_info.bit.second & 0x0f)));
1274  TF_copy_u8(&packet[75], (uint8_t)(((command_analyze->cmd_table[offset+6].param_size_infos[2].packed_info.bit.first & 0x0f) << 4) | (command_analyze->cmd_table[offset+6].param_size_infos[2].packed_info.bit.second & 0x0f)));
1275  TF_copy_u32(&packet[76], (uint32_t)(command_analyze->cmd_table[offset+7].cmd_func));
1276  TF_copy_u8(&packet[80], (uint8_t)(((command_analyze->cmd_table[offset+7].param_size_infos[0].packed_info.bit.first & 0x0f) << 4) | (command_analyze->cmd_table[offset+7].param_size_infos[0].packed_info.bit.second & 0x0f)));
1277  TF_copy_u8(&packet[81], (uint8_t)(((command_analyze->cmd_table[offset+7].param_size_infos[1].packed_info.bit.first & 0x0f) << 4) | (command_analyze->cmd_table[offset+7].param_size_infos[1].packed_info.bit.second & 0x0f)));
1278  TF_copy_u8(&packet[82], (uint8_t)(((command_analyze->cmd_table[offset+7].param_size_infos[2].packed_info.bit.first & 0x0f) << 4) | (command_analyze->cmd_table[offset+7].param_size_infos[2].packed_info.bit.second & 0x0f)));
1279  TF_copy_u32(&packet[83], (uint32_t)(command_analyze->cmd_table[offset+8].cmd_func));
1280  TF_copy_u8(&packet[87], (uint8_t)(((command_analyze->cmd_table[offset+8].param_size_infos[0].packed_info.bit.first & 0x0f) << 4) | (command_analyze->cmd_table[offset+8].param_size_infos[0].packed_info.bit.second & 0x0f)));
1281  TF_copy_u8(&packet[88], (uint8_t)(((command_analyze->cmd_table[offset+8].param_size_infos[1].packed_info.bit.first & 0x0f) << 4) | (command_analyze->cmd_table[offset+8].param_size_infos[1].packed_info.bit.second & 0x0f)));
1282  TF_copy_u8(&packet[89], (uint8_t)(((command_analyze->cmd_table[offset+8].param_size_infos[2].packed_info.bit.first & 0x0f) << 4) | (command_analyze->cmd_table[offset+8].param_size_infos[2].packed_info.bit.second & 0x0f)));
1283  TF_copy_u32(&packet[90], (uint32_t)(command_analyze->cmd_table[offset+9].cmd_func));
1284  TF_copy_u8(&packet[94], (uint8_t)(((command_analyze->cmd_table[offset+9].param_size_infos[0].packed_info.bit.first & 0x0f) << 4) | (command_analyze->cmd_table[offset+9].param_size_infos[0].packed_info.bit.second & 0x0f)));
1285  TF_copy_u8(&packet[95], (uint8_t)(((command_analyze->cmd_table[offset+9].param_size_infos[1].packed_info.bit.first & 0x0f) << 4) | (command_analyze->cmd_table[offset+9].param_size_infos[1].packed_info.bit.second & 0x0f)));
1286  TF_copy_u8(&packet[96], (uint8_t)(((command_analyze->cmd_table[offset+9].param_size_infos[2].packed_info.bit.first & 0x0f) << 4) | (command_analyze->cmd_table[offset+9].param_size_infos[2].packed_info.bit.second & 0x0f)));
1287  TF_copy_u32(&packet[97], (uint32_t)(command_analyze->cmd_table[offset+10].cmd_func));
1288  TF_copy_u8(&packet[101], (uint8_t)(((command_analyze->cmd_table[offset+10].param_size_infos[0].packed_info.bit.first & 0x0f) << 4) | (command_analyze->cmd_table[offset+10].param_size_infos[0].packed_info.bit.second & 0x0f)));
1289  TF_copy_u8(&packet[102], (uint8_t)(((command_analyze->cmd_table[offset+10].param_size_infos[1].packed_info.bit.first & 0x0f) << 4) | (command_analyze->cmd_table[offset+10].param_size_infos[1].packed_info.bit.second & 0x0f)));
1290  TF_copy_u8(&packet[103], (uint8_t)(((command_analyze->cmd_table[offset+10].param_size_infos[2].packed_info.bit.first & 0x0f) << 4) | (command_analyze->cmd_table[offset+10].param_size_infos[2].packed_info.bit.second & 0x0f)));
1291  TF_copy_u32(&packet[104], (uint32_t)(command_analyze->cmd_table[offset+11].cmd_func));
1292  TF_copy_u8(&packet[108], (uint8_t)(((command_analyze->cmd_table[offset+11].param_size_infos[0].packed_info.bit.first & 0x0f) << 4) | (command_analyze->cmd_table[offset+11].param_size_infos[0].packed_info.bit.second & 0x0f)));
1293  TF_copy_u8(&packet[109], (uint8_t)(((command_analyze->cmd_table[offset+11].param_size_infos[1].packed_info.bit.first & 0x0f) << 4) | (command_analyze->cmd_table[offset+11].param_size_infos[1].packed_info.bit.second & 0x0f)));
1294  TF_copy_u8(&packet[110], (uint8_t)(((command_analyze->cmd_table[offset+11].param_size_infos[2].packed_info.bit.first & 0x0f) << 4) | (command_analyze->cmd_table[offset+11].param_size_infos[2].packed_info.bit.second & 0x0f)));
1295  TF_copy_u32(&packet[111], (uint32_t)(command_analyze->cmd_table[offset+12].cmd_func));
1296  TF_copy_u8(&packet[115], (uint8_t)(((command_analyze->cmd_table[offset+12].param_size_infos[0].packed_info.bit.first & 0x0f) << 4) | (command_analyze->cmd_table[offset+12].param_size_infos[0].packed_info.bit.second & 0x0f)));
1297  TF_copy_u8(&packet[116], (uint8_t)(((command_analyze->cmd_table[offset+12].param_size_infos[1].packed_info.bit.first & 0x0f) << 4) | (command_analyze->cmd_table[offset+12].param_size_infos[1].packed_info.bit.second & 0x0f)));
1298  TF_copy_u8(&packet[117], (uint8_t)(((command_analyze->cmd_table[offset+12].param_size_infos[2].packed_info.bit.first & 0x0f) << 4) | (command_analyze->cmd_table[offset+12].param_size_infos[2].packed_info.bit.second & 0x0f)));
1299  TF_copy_u32(&packet[118], (uint32_t)(command_analyze->cmd_table[offset+13].cmd_func));
1300  TF_copy_u8(&packet[122], (uint8_t)(((command_analyze->cmd_table[offset+13].param_size_infos[0].packed_info.bit.first & 0x0f) << 4) | (command_analyze->cmd_table[offset+13].param_size_infos[0].packed_info.bit.second & 0x0f)));
1301  TF_copy_u8(&packet[123], (uint8_t)(((command_analyze->cmd_table[offset+13].param_size_infos[1].packed_info.bit.first & 0x0f) << 4) | (command_analyze->cmd_table[offset+13].param_size_infos[1].packed_info.bit.second & 0x0f)));
1302  TF_copy_u8(&packet[124], (uint8_t)(((command_analyze->cmd_table[offset+13].param_size_infos[2].packed_info.bit.first & 0x0f) << 4) | (command_analyze->cmd_table[offset+13].param_size_infos[2].packed_info.bit.second & 0x0f)));
1303  TF_copy_u32(&packet[125], (uint32_t)(command_analyze->cmd_table[offset+14].cmd_func));
1304  TF_copy_u8(&packet[129], (uint8_t)(((command_analyze->cmd_table[offset+14].param_size_infos[0].packed_info.bit.first & 0x0f) << 4) | (command_analyze->cmd_table[offset+14].param_size_infos[0].packed_info.bit.second & 0x0f)));
1305  TF_copy_u8(&packet[130], (uint8_t)(((command_analyze->cmd_table[offset+14].param_size_infos[1].packed_info.bit.first & 0x0f) << 4) | (command_analyze->cmd_table[offset+14].param_size_infos[1].packed_info.bit.second & 0x0f)));
1306  TF_copy_u8(&packet[131], (uint8_t)(((command_analyze->cmd_table[offset+14].param_size_infos[2].packed_info.bit.first & 0x0f) << 4) | (command_analyze->cmd_table[offset+14].param_size_infos[2].packed_info.bit.second & 0x0f)));
1307  TF_copy_u32(&packet[132], (uint32_t)(command_analyze->cmd_table[offset+15].cmd_func));
1308  TF_copy_u8(&packet[136], (uint8_t)(((command_analyze->cmd_table[offset+15].param_size_infos[0].packed_info.bit.first & 0x0f) << 4) | (command_analyze->cmd_table[offset+15].param_size_infos[0].packed_info.bit.second & 0x0f)));
1309  TF_copy_u8(&packet[137], (uint8_t)(((command_analyze->cmd_table[offset+15].param_size_infos[1].packed_info.bit.first & 0x0f) << 4) | (command_analyze->cmd_table[offset+15].param_size_infos[1].packed_info.bit.second & 0x0f)));
1310  TF_copy_u8(&packet[138], (uint8_t)(((command_analyze->cmd_table[offset+15].param_size_infos[2].packed_info.bit.first & 0x0f) << 4) | (command_analyze->cmd_table[offset+15].param_size_infos[2].packed_info.bit.second & 0x0f)));
1311  TF_copy_u32(&packet[139], (uint32_t)(command_analyze->cmd_table[offset+16].cmd_func));
1312  TF_copy_u8(&packet[143], (uint8_t)(((command_analyze->cmd_table[offset+16].param_size_infos[0].packed_info.bit.first & 0x0f) << 4) | (command_analyze->cmd_table[offset+16].param_size_infos[0].packed_info.bit.second & 0x0f)));
1313  TF_copy_u8(&packet[144], (uint8_t)(((command_analyze->cmd_table[offset+16].param_size_infos[1].packed_info.bit.first & 0x0f) << 4) | (command_analyze->cmd_table[offset+16].param_size_infos[1].packed_info.bit.second & 0x0f)));
1314  TF_copy_u8(&packet[145], (uint8_t)(((command_analyze->cmd_table[offset+16].param_size_infos[2].packed_info.bit.first & 0x0f) << 4) | (command_analyze->cmd_table[offset+16].param_size_infos[2].packed_info.bit.second & 0x0f)));
1315  TF_copy_u32(&packet[146], (uint32_t)(command_analyze->cmd_table[offset+17].cmd_func));
1316  TF_copy_u8(&packet[150], (uint8_t)(((command_analyze->cmd_table[offset+17].param_size_infos[0].packed_info.bit.first & 0x0f) << 4) | (command_analyze->cmd_table[offset+17].param_size_infos[0].packed_info.bit.second & 0x0f)));
1317  TF_copy_u8(&packet[151], (uint8_t)(((command_analyze->cmd_table[offset+17].param_size_infos[1].packed_info.bit.first & 0x0f) << 4) | (command_analyze->cmd_table[offset+17].param_size_infos[1].packed_info.bit.second & 0x0f)));
1318  TF_copy_u8(&packet[152], (uint8_t)(((command_analyze->cmd_table[offset+17].param_size_infos[2].packed_info.bit.first & 0x0f) << 4) | (command_analyze->cmd_table[offset+17].param_size_infos[2].packed_info.bit.second & 0x0f)));
1319  TF_copy_u32(&packet[153], (uint32_t)(command_analyze->cmd_table[offset+18].cmd_func));
1320  TF_copy_u8(&packet[157], (uint8_t)(((command_analyze->cmd_table[offset+18].param_size_infos[0].packed_info.bit.first & 0x0f) << 4) | (command_analyze->cmd_table[offset+18].param_size_infos[0].packed_info.bit.second & 0x0f)));
1321  TF_copy_u8(&packet[158], (uint8_t)(((command_analyze->cmd_table[offset+18].param_size_infos[1].packed_info.bit.first & 0x0f) << 4) | (command_analyze->cmd_table[offset+18].param_size_infos[1].packed_info.bit.second & 0x0f)));
1322  TF_copy_u8(&packet[159], (uint8_t)(((command_analyze->cmd_table[offset+18].param_size_infos[2].packed_info.bit.first & 0x0f) << 4) | (command_analyze->cmd_table[offset+18].param_size_infos[2].packed_info.bit.second & 0x0f)));
1323  TF_copy_u32(&packet[160], (uint32_t)(command_analyze->cmd_table[offset+19].cmd_func));
1324  TF_copy_u8(&packet[164], (uint8_t)(((command_analyze->cmd_table[offset+19].param_size_infos[0].packed_info.bit.first & 0x0f) << 4) | (command_analyze->cmd_table[offset+19].param_size_infos[0].packed_info.bit.second & 0x0f)));
1325  TF_copy_u8(&packet[165], (uint8_t)(((command_analyze->cmd_table[offset+19].param_size_infos[1].packed_info.bit.first & 0x0f) << 4) | (command_analyze->cmd_table[offset+19].param_size_infos[1].packed_info.bit.second & 0x0f)));
1326  TF_copy_u8(&packet[166], (uint8_t)(((command_analyze->cmd_table[offset+19].param_size_infos[2].packed_info.bit.first & 0x0f) << 4) | (command_analyze->cmd_table[offset+19].param_size_infos[2].packed_info.bit.second & 0x0f)));
1327  TF_copy_u32(&packet[167], (uint32_t)(command_analyze->cmd_table[offset+20].cmd_func));
1328  TF_copy_u8(&packet[171], (uint8_t)(((command_analyze->cmd_table[offset+20].param_size_infos[0].packed_info.bit.first & 0x0f) << 4) | (command_analyze->cmd_table[offset+20].param_size_infos[0].packed_info.bit.second & 0x0f)));
1329  TF_copy_u8(&packet[172], (uint8_t)(((command_analyze->cmd_table[offset+20].param_size_infos[1].packed_info.bit.first & 0x0f) << 4) | (command_analyze->cmd_table[offset+20].param_size_infos[1].packed_info.bit.second & 0x0f)));
1330  TF_copy_u8(&packet[173], (uint8_t)(((command_analyze->cmd_table[offset+20].param_size_infos[2].packed_info.bit.first & 0x0f) << 4) | (command_analyze->cmd_table[offset+20].param_size_infos[2].packed_info.bit.second & 0x0f)));
1331  TF_copy_u32(&packet[174], (uint32_t)(command_analyze->cmd_table[offset+21].cmd_func));
1332  TF_copy_u8(&packet[178], (uint8_t)(((command_analyze->cmd_table[offset+21].param_size_infos[0].packed_info.bit.first & 0x0f) << 4) | (command_analyze->cmd_table[offset+21].param_size_infos[0].packed_info.bit.second & 0x0f)));
1333  TF_copy_u8(&packet[179], (uint8_t)(((command_analyze->cmd_table[offset+21].param_size_infos[1].packed_info.bit.first & 0x0f) << 4) | (command_analyze->cmd_table[offset+21].param_size_infos[1].packed_info.bit.second & 0x0f)));
1334  TF_copy_u8(&packet[180], (uint8_t)(((command_analyze->cmd_table[offset+21].param_size_infos[2].packed_info.bit.first & 0x0f) << 4) | (command_analyze->cmd_table[offset+21].param_size_infos[2].packed_info.bit.second & 0x0f)));
1335  TF_copy_u32(&packet[181], (uint32_t)(command_analyze->cmd_table[offset+22].cmd_func));
1336  TF_copy_u8(&packet[185], (uint8_t)(((command_analyze->cmd_table[offset+22].param_size_infos[0].packed_info.bit.first & 0x0f) << 4) | (command_analyze->cmd_table[offset+22].param_size_infos[0].packed_info.bit.second & 0x0f)));
1337  TF_copy_u8(&packet[186], (uint8_t)(((command_analyze->cmd_table[offset+22].param_size_infos[1].packed_info.bit.first & 0x0f) << 4) | (command_analyze->cmd_table[offset+22].param_size_infos[1].packed_info.bit.second & 0x0f)));
1338  TF_copy_u8(&packet[187], (uint8_t)(((command_analyze->cmd_table[offset+22].param_size_infos[2].packed_info.bit.first & 0x0f) << 4) | (command_analyze->cmd_table[offset+22].param_size_infos[2].packed_info.bit.second & 0x0f)));
1339  TF_copy_u32(&packet[188], (uint32_t)(command_analyze->cmd_table[offset+23].cmd_func));
1340  TF_copy_u8(&packet[192], (uint8_t)(((command_analyze->cmd_table[offset+23].param_size_infos[0].packed_info.bit.first & 0x0f) << 4) | (command_analyze->cmd_table[offset+23].param_size_infos[0].packed_info.bit.second & 0x0f)));
1341  TF_copy_u8(&packet[193], (uint8_t)(((command_analyze->cmd_table[offset+23].param_size_infos[1].packed_info.bit.first & 0x0f) << 4) | (command_analyze->cmd_table[offset+23].param_size_infos[1].packed_info.bit.second & 0x0f)));
1342  TF_copy_u8(&packet[194], (uint8_t)(((command_analyze->cmd_table[offset+23].param_size_infos[2].packed_info.bit.first & 0x0f) << 4) | (command_analyze->cmd_table[offset+23].param_size_infos[2].packed_info.bit.second & 0x0f)));
1343  TF_copy_u32(&packet[195], (uint32_t)(command_analyze->cmd_table[offset+24].cmd_func));
1344  TF_copy_u8(&packet[199], (uint8_t)(((command_analyze->cmd_table[offset+24].param_size_infos[0].packed_info.bit.first & 0x0f) << 4) | (command_analyze->cmd_table[offset+24].param_size_infos[0].packed_info.bit.second & 0x0f)));
1345  TF_copy_u8(&packet[200], (uint8_t)(((command_analyze->cmd_table[offset+24].param_size_infos[1].packed_info.bit.first & 0x0f) << 4) | (command_analyze->cmd_table[offset+24].param_size_infos[1].packed_info.bit.second & 0x0f)));
1346  TF_copy_u8(&packet[201], (uint8_t)(((command_analyze->cmd_table[offset+24].param_size_infos[2].packed_info.bit.first & 0x0f) << 4) | (command_analyze->cmd_table[offset+24].param_size_infos[2].packed_info.bit.second & 0x0f)));
1347  TF_copy_u32(&packet[202], (uint32_t)(command_analyze->cmd_table[offset+25].cmd_func));
1348  TF_copy_u8(&packet[206], (uint8_t)(((command_analyze->cmd_table[offset+25].param_size_infos[0].packed_info.bit.first & 0x0f) << 4) | (command_analyze->cmd_table[offset+25].param_size_infos[0].packed_info.bit.second & 0x0f)));
1349  TF_copy_u8(&packet[207], (uint8_t)(((command_analyze->cmd_table[offset+25].param_size_infos[1].packed_info.bit.first & 0x0f) << 4) | (command_analyze->cmd_table[offset+25].param_size_infos[1].packed_info.bit.second & 0x0f)));
1350  TF_copy_u8(&packet[208], (uint8_t)(((command_analyze->cmd_table[offset+25].param_size_infos[2].packed_info.bit.first & 0x0f) << 4) | (command_analyze->cmd_table[offset+25].param_size_infos[2].packed_info.bit.second & 0x0f)));
1351  TF_copy_u32(&packet[209], (uint32_t)(command_analyze->cmd_table[offset+26].cmd_func));
1352  TF_copy_u8(&packet[213], (uint8_t)(((command_analyze->cmd_table[offset+26].param_size_infos[0].packed_info.bit.first & 0x0f) << 4) | (command_analyze->cmd_table[offset+26].param_size_infos[0].packed_info.bit.second & 0x0f)));
1353  TF_copy_u8(&packet[214], (uint8_t)(((command_analyze->cmd_table[offset+26].param_size_infos[1].packed_info.bit.first & 0x0f) << 4) | (command_analyze->cmd_table[offset+26].param_size_infos[1].packed_info.bit.second & 0x0f)));
1354  TF_copy_u8(&packet[215], (uint8_t)(((command_analyze->cmd_table[offset+26].param_size_infos[2].packed_info.bit.first & 0x0f) << 4) | (command_analyze->cmd_table[offset+26].param_size_infos[2].packed_info.bit.second & 0x0f)));
1355  TF_copy_u32(&packet[216], (uint32_t)(command_analyze->cmd_table[offset+27].cmd_func));
1356  TF_copy_u8(&packet[220], (uint8_t)(((command_analyze->cmd_table[offset+27].param_size_infos[0].packed_info.bit.first & 0x0f) << 4) | (command_analyze->cmd_table[offset+27].param_size_infos[0].packed_info.bit.second & 0x0f)));
1357  TF_copy_u8(&packet[221], (uint8_t)(((command_analyze->cmd_table[offset+27].param_size_infos[1].packed_info.bit.first & 0x0f) << 4) | (command_analyze->cmd_table[offset+27].param_size_infos[1].packed_info.bit.second & 0x0f)));
1358  TF_copy_u8(&packet[222], (uint8_t)(((command_analyze->cmd_table[offset+27].param_size_infos[2].packed_info.bit.first & 0x0f) << 4) | (command_analyze->cmd_table[offset+27].param_size_infos[2].packed_info.bit.second & 0x0f)));
1359  TF_copy_u32(&packet[223], (uint32_t)(command_analyze->cmd_table[offset+28].cmd_func));
1360  TF_copy_u8(&packet[227], (uint8_t)(((command_analyze->cmd_table[offset+28].param_size_infos[0].packed_info.bit.first & 0x0f) << 4) | (command_analyze->cmd_table[offset+28].param_size_infos[0].packed_info.bit.second & 0x0f)));
1361  TF_copy_u8(&packet[228], (uint8_t)(((command_analyze->cmd_table[offset+28].param_size_infos[1].packed_info.bit.first & 0x0f) << 4) | (command_analyze->cmd_table[offset+28].param_size_infos[1].packed_info.bit.second & 0x0f)));
1362  TF_copy_u8(&packet[229], (uint8_t)(((command_analyze->cmd_table[offset+28].param_size_infos[2].packed_info.bit.first & 0x0f) << 4) | (command_analyze->cmd_table[offset+28].param_size_infos[2].packed_info.bit.second & 0x0f)));
1363  TF_copy_u32(&packet[230], (uint32_t)(command_analyze->cmd_table[offset+29].cmd_func));
1364  TF_copy_u8(&packet[234], (uint8_t)(((command_analyze->cmd_table[offset+29].param_size_infos[0].packed_info.bit.first & 0x0f) << 4) | (command_analyze->cmd_table[offset+29].param_size_infos[0].packed_info.bit.second & 0x0f)));
1365  TF_copy_u8(&packet[235], (uint8_t)(((command_analyze->cmd_table[offset+29].param_size_infos[1].packed_info.bit.first & 0x0f) << 4) | (command_analyze->cmd_table[offset+29].param_size_infos[1].packed_info.bit.second & 0x0f)));
1366  TF_copy_u8(&packet[236], (uint8_t)(((command_analyze->cmd_table[offset+29].param_size_infos[2].packed_info.bit.first & 0x0f) << 4) | (command_analyze->cmd_table[offset+29].param_size_infos[2].packed_info.bit.second & 0x0f)));
1367  TF_copy_u32(&packet[237], (uint32_t)(command_analyze->cmd_table[offset+30].cmd_func));
1368  TF_copy_u8(&packet[241], (uint8_t)(((command_analyze->cmd_table[offset+30].param_size_infos[0].packed_info.bit.first & 0x0f) << 4) | (command_analyze->cmd_table[offset+30].param_size_infos[0].packed_info.bit.second & 0x0f)));
1369  TF_copy_u8(&packet[242], (uint8_t)(((command_analyze->cmd_table[offset+30].param_size_infos[1].packed_info.bit.first & 0x0f) << 4) | (command_analyze->cmd_table[offset+30].param_size_infos[1].packed_info.bit.second & 0x0f)));
1370  TF_copy_u8(&packet[243], (uint8_t)(((command_analyze->cmd_table[offset+30].param_size_infos[2].packed_info.bit.first & 0x0f) << 4) | (command_analyze->cmd_table[offset+30].param_size_infos[2].packed_info.bit.second & 0x0f)));
1371  TF_copy_u32(&packet[244], (uint32_t)(command_analyze->cmd_table[offset+31].cmd_func));
1372  TF_copy_u8(&packet[248], (uint8_t)(((command_analyze->cmd_table[offset+31].param_size_infos[0].packed_info.bit.first & 0x0f) << 4) | (command_analyze->cmd_table[offset+31].param_size_infos[0].packed_info.bit.second & 0x0f)));
1373  TF_copy_u8(&packet[249], (uint8_t)(((command_analyze->cmd_table[offset+31].param_size_infos[1].packed_info.bit.first & 0x0f) << 4) | (command_analyze->cmd_table[offset+31].param_size_infos[1].packed_info.bit.second & 0x0f)));
1374  TF_copy_u8(&packet[250], (uint8_t)(((command_analyze->cmd_table[offset+31].param_size_infos[2].packed_info.bit.first & 0x0f) << 4) | (command_analyze->cmd_table[offset+31].param_size_infos[2].packed_info.bit.second & 0x0f)));
1375 #endif
1376 
1377  *len = 251;
1378  return TF_TLM_FUNC_ACK_SUCCESS;
1379 }
1380 
1381 static TF_TLM_FUNC_ACK Tlm_TF_(uint8_t* packet, uint16_t* len, uint16_t max_len)
1382 {
1383  uint8_t page = telemetry_frame->tlm_page_no;
1384  int offset = TF_TLM_PAGE_SIZE * (telemetry_frame->tlm_page_no);
1385 
1386  if (283 > max_len) return TF_TLM_FUNC_ACK_TOO_SHORT_LEN;
1387 
1388 #ifndef BUILD_SETTINGS_FAST_BUILD
1389  TF_copy_u8(&packet[26], page);
1390  TF_copy_u32(&packet[27], (uint32_t)(telemetry_frame->tlm_table[offset+0].tlm_func));
1391  TF_copy_u32(&packet[31], (uint32_t)(telemetry_frame->tlm_table[offset+1].tlm_func));
1392  TF_copy_u32(&packet[35], (uint32_t)(telemetry_frame->tlm_table[offset+2].tlm_func));
1393  TF_copy_u32(&packet[39], (uint32_t)(telemetry_frame->tlm_table[offset+3].tlm_func));
1394  TF_copy_u32(&packet[43], (uint32_t)(telemetry_frame->tlm_table[offset+4].tlm_func));
1395  TF_copy_u32(&packet[47], (uint32_t)(telemetry_frame->tlm_table[offset+5].tlm_func));
1396  TF_copy_u32(&packet[51], (uint32_t)(telemetry_frame->tlm_table[offset+6].tlm_func));
1397  TF_copy_u32(&packet[55], (uint32_t)(telemetry_frame->tlm_table[offset+7].tlm_func));
1398  TF_copy_u32(&packet[59], (uint32_t)(telemetry_frame->tlm_table[offset+8].tlm_func));
1399  TF_copy_u32(&packet[63], (uint32_t)(telemetry_frame->tlm_table[offset+9].tlm_func));
1400  TF_copy_u32(&packet[67], (uint32_t)(telemetry_frame->tlm_table[offset+10].tlm_func));
1401  TF_copy_u32(&packet[71], (uint32_t)(telemetry_frame->tlm_table[offset+11].tlm_func));
1402  TF_copy_u32(&packet[75], (uint32_t)(telemetry_frame->tlm_table[offset+12].tlm_func));
1403  TF_copy_u32(&packet[79], (uint32_t)(telemetry_frame->tlm_table[offset+13].tlm_func));
1404  TF_copy_u32(&packet[83], (uint32_t)(telemetry_frame->tlm_table[offset+14].tlm_func));
1405  TF_copy_u32(&packet[87], (uint32_t)(telemetry_frame->tlm_table[offset+15].tlm_func));
1406  TF_copy_u32(&packet[91], (uint32_t)(telemetry_frame->tlm_table[offset+16].tlm_func));
1407  TF_copy_u32(&packet[95], (uint32_t)(telemetry_frame->tlm_table[offset+17].tlm_func));
1408  TF_copy_u32(&packet[99], (uint32_t)(telemetry_frame->tlm_table[offset+18].tlm_func));
1409  TF_copy_u32(&packet[103], (uint32_t)(telemetry_frame->tlm_table[offset+19].tlm_func));
1410  TF_copy_u32(&packet[107], (uint32_t)(telemetry_frame->tlm_table[offset+20].tlm_func));
1411  TF_copy_u32(&packet[111], (uint32_t)(telemetry_frame->tlm_table[offset+21].tlm_func));
1412  TF_copy_u32(&packet[115], (uint32_t)(telemetry_frame->tlm_table[offset+22].tlm_func));
1413  TF_copy_u32(&packet[119], (uint32_t)(telemetry_frame->tlm_table[offset+23].tlm_func));
1414  TF_copy_u32(&packet[123], (uint32_t)(telemetry_frame->tlm_table[offset+24].tlm_func));
1415  TF_copy_u32(&packet[127], (uint32_t)(telemetry_frame->tlm_table[offset+25].tlm_func));
1416  TF_copy_u32(&packet[131], (uint32_t)(telemetry_frame->tlm_table[offset+26].tlm_func));
1417  TF_copy_u32(&packet[135], (uint32_t)(telemetry_frame->tlm_table[offset+27].tlm_func));
1418  TF_copy_u32(&packet[139], (uint32_t)(telemetry_frame->tlm_table[offset+28].tlm_func));
1419  TF_copy_u32(&packet[143], (uint32_t)(telemetry_frame->tlm_table[offset+29].tlm_func));
1420  TF_copy_u32(&packet[147], (uint32_t)(telemetry_frame->tlm_table[offset+30].tlm_func));
1421  TF_copy_u32(&packet[151], (uint32_t)(telemetry_frame->tlm_table[offset+31].tlm_func));
1422  TF_copy_u32(&packet[155], (uint32_t)(telemetry_frame->tlm_table[offset+32].tlm_func));
1423  TF_copy_u32(&packet[159], (uint32_t)(telemetry_frame->tlm_table[offset+33].tlm_func));
1424  TF_copy_u32(&packet[163], (uint32_t)(telemetry_frame->tlm_table[offset+34].tlm_func));
1425  TF_copy_u32(&packet[167], (uint32_t)(telemetry_frame->tlm_table[offset+35].tlm_func));
1426  TF_copy_u32(&packet[171], (uint32_t)(telemetry_frame->tlm_table[offset+36].tlm_func));
1427  TF_copy_u32(&packet[175], (uint32_t)(telemetry_frame->tlm_table[offset+37].tlm_func));
1428  TF_copy_u32(&packet[179], (uint32_t)(telemetry_frame->tlm_table[offset+38].tlm_func));
1429  TF_copy_u32(&packet[183], (uint32_t)(telemetry_frame->tlm_table[offset+39].tlm_func));
1430  TF_copy_u32(&packet[187], (uint32_t)(telemetry_frame->tlm_table[offset+40].tlm_func));
1431  TF_copy_u32(&packet[191], (uint32_t)(telemetry_frame->tlm_table[offset+41].tlm_func));
1432  TF_copy_u32(&packet[195], (uint32_t)(telemetry_frame->tlm_table[offset+42].tlm_func));
1433  TF_copy_u32(&packet[199], (uint32_t)(telemetry_frame->tlm_table[offset+43].tlm_func));
1434  TF_copy_u32(&packet[203], (uint32_t)(telemetry_frame->tlm_table[offset+44].tlm_func));
1435  TF_copy_u32(&packet[207], (uint32_t)(telemetry_frame->tlm_table[offset+45].tlm_func));
1436  TF_copy_u32(&packet[211], (uint32_t)(telemetry_frame->tlm_table[offset+46].tlm_func));
1437  TF_copy_u32(&packet[215], (uint32_t)(telemetry_frame->tlm_table[offset+47].tlm_func));
1438  TF_copy_u32(&packet[219], (uint32_t)(telemetry_frame->tlm_table[offset+48].tlm_func));
1439  TF_copy_u32(&packet[223], (uint32_t)(telemetry_frame->tlm_table[offset+49].tlm_func));
1440  TF_copy_u32(&packet[227], (uint32_t)(telemetry_frame->tlm_table[offset+50].tlm_func));
1441  TF_copy_u32(&packet[231], (uint32_t)(telemetry_frame->tlm_table[offset+51].tlm_func));
1442  TF_copy_u32(&packet[235], (uint32_t)(telemetry_frame->tlm_table[offset+52].tlm_func));
1443  TF_copy_u32(&packet[239], (uint32_t)(telemetry_frame->tlm_table[offset+53].tlm_func));
1444  TF_copy_u32(&packet[243], (uint32_t)(telemetry_frame->tlm_table[offset+54].tlm_func));
1445  TF_copy_u32(&packet[247], (uint32_t)(telemetry_frame->tlm_table[offset+55].tlm_func));
1446  TF_copy_u32(&packet[251], (uint32_t)(telemetry_frame->tlm_table[offset+56].tlm_func));
1447  TF_copy_u32(&packet[255], (uint32_t)(telemetry_frame->tlm_table[offset+57].tlm_func));
1448  TF_copy_u32(&packet[259], (uint32_t)(telemetry_frame->tlm_table[offset+58].tlm_func));
1449  TF_copy_u32(&packet[263], (uint32_t)(telemetry_frame->tlm_table[offset+59].tlm_func));
1450  TF_copy_u32(&packet[267], (uint32_t)(telemetry_frame->tlm_table[offset+60].tlm_func));
1451  TF_copy_u32(&packet[271], (uint32_t)(telemetry_frame->tlm_table[offset+61].tlm_func));
1452  TF_copy_u32(&packet[275], (uint32_t)(telemetry_frame->tlm_table[offset+62].tlm_func));
1453  TF_copy_u32(&packet[279], (uint32_t)(telemetry_frame->tlm_table[offset+63].tlm_func));
1454 #endif
1455 
1456  *len = 283;
1457  return TF_TLM_FUNC_ACK_SUCCESS;
1458 }
1459 
1460 static TF_TLM_FUNC_ACK Tlm_DCU_(uint8_t* packet, uint16_t* len, uint16_t max_len)
1461 {
1462  if (202 > max_len) return TF_TLM_FUNC_ACK_TOO_SHORT_LEN;
1463 
1464 #ifndef BUILD_SETTINGS_FAST_BUILD
1465  TF_copy_u8(&packet[26], divided_cmd_utility->exec_log_order[0]);
1466  TF_copy_u8(&packet[27], divided_cmd_utility->exec_log_order[1]);
1467  TF_copy_u8(&packet[28], divided_cmd_utility->exec_log_order[2]);
1468  TF_copy_u8(&packet[29], divided_cmd_utility->exec_log_order[3]);
1469  TF_copy_u8(&packet[30], divided_cmd_utility->exec_log_order[4]);
1470  TF_copy_u8(&packet[31], divided_cmd_utility->exec_log_order[5]);
1471  TF_copy_u8(&packet[32], divided_cmd_utility->exec_log_order[6]);
1472  TF_copy_u8(&packet[33], divided_cmd_utility->exec_log_order[7]);
1473  TF_copy_u8(&packet[34], divided_cmd_utility->exec_log_order[8]);
1474  TF_copy_u8(&packet[35], divided_cmd_utility->exec_log_order[9]);
1475  TF_copy_u8(&packet[36], divided_cmd_utility->exec_log_order[10]);
1476  TF_copy_u8(&packet[37], divided_cmd_utility->exec_log_order[11]);
1477  TF_copy_u8(&packet[38], divided_cmd_utility->exec_log_order[12]);
1478  TF_copy_u8(&packet[39], divided_cmd_utility->exec_log_order[13]);
1479  TF_copy_u8(&packet[40], divided_cmd_utility->exec_log_order[14]);
1480  TF_copy_u8(&packet[41], divided_cmd_utility->exec_log_order[15]);
1561 #endif
1562 
1563  *len = 202;
1564  return TF_TLM_FUNC_ACK_SUCCESS;
1565 }
1566 
1567 static TF_TLM_FUNC_ACK Tlm_MM_(uint8_t* packet, uint16_t* len, uint16_t max_len)
1568 {
1569  if (424 > max_len) return TF_TLM_FUNC_ACK_TOO_SHORT_LEN;
1570 
1571 #ifndef BUILD_SETTINGS_FAST_BUILD
1572  TF_copy_u8(&packet[26], (uint8_t)(mode_manager->current_id));
1573  TF_copy_u8(&packet[27], (uint8_t)(mode_manager->previous_id));
1574  TF_copy_u8(&packet[28], (uint8_t)(mode_manager->stat));
1575  TF_copy_u8(&packet[29], (uint8_t)(mode_manager->mm_ack));
1576  TF_copy_u16(&packet[30], (uint16_t)(mode_manager->mode_list[0]));
1577  TF_copy_u16(&packet[32], (uint16_t)(mode_manager->mode_list[1]));
1578  TF_copy_u16(&packet[34], (uint16_t)(mode_manager->mode_list[2]));
1579  TF_copy_u16(&packet[36], (uint16_t)(mode_manager->mode_list[3]));
1580  TF_copy_u16(&packet[38], (uint16_t)(mode_manager->mode_list[4]));
1581  TF_copy_u16(&packet[40], (uint16_t)(mode_manager->mode_list[5]));
1582  TF_copy_u16(&packet[42], (uint16_t)(mode_manager->mode_list[6]));
1583  TF_copy_u16(&packet[44], (uint16_t)(mode_manager->mode_list[7]));
1584  TF_copy_u16(&packet[46], (uint16_t)(mode_manager->mode_list[8]));
1585  TF_copy_u16(&packet[48], (uint16_t)(mode_manager->mode_list[9]));
1586  TF_copy_u16(&packet[50], (uint16_t)(mode_manager->mode_list[10]));
1587  TF_copy_u16(&packet[52], (uint16_t)(mode_manager->mode_list[11]));
1588  TF_copy_u16(&packet[54], (uint16_t)(mode_manager->mode_list[12]));
1589  TF_copy_u16(&packet[56], (uint16_t)(mode_manager->mode_list[13]));
1590  TF_copy_u16(&packet[58], (uint16_t)(mode_manager->mode_list[14]));
1591  TF_copy_u16(&packet[60], (uint16_t)(mode_manager->mode_list[15]));
1595  TF_copy_u16(&packet[66], (uint16_t)(mode_manager->transition_table_for_tlm[0].bc_index));
1598  TF_copy_u16(&packet[70], (uint16_t)(mode_manager->transition_table_for_tlm[1].bc_index));
1601  TF_copy_u16(&packet[74], (uint16_t)(mode_manager->transition_table_for_tlm[2].bc_index));
1604  TF_copy_u16(&packet[78], (uint16_t)(mode_manager->transition_table_for_tlm[3].bc_index));
1607  TF_copy_u16(&packet[82], (uint16_t)(mode_manager->transition_table_for_tlm[4].bc_index));
1610  TF_copy_u16(&packet[86], (uint16_t)(mode_manager->transition_table_for_tlm[5].bc_index));
1613  TF_copy_u16(&packet[90], (uint16_t)(mode_manager->transition_table_for_tlm[6].bc_index));
1616  TF_copy_u16(&packet[94], (uint16_t)(mode_manager->transition_table_for_tlm[7].bc_index));
1619  TF_copy_u16(&packet[98], (uint16_t)(mode_manager->transition_table_for_tlm[8].bc_index));
1622  TF_copy_u16(&packet[102], (uint16_t)(mode_manager->transition_table_for_tlm[9].bc_index));
1624  TF_copy_u8(&packet[105], mode_manager->transition_table_for_tlm[10].to);
1625  TF_copy_u16(&packet[106], (uint16_t)(mode_manager->transition_table_for_tlm[10].bc_index));
1627  TF_copy_u8(&packet[109], mode_manager->transition_table_for_tlm[11].to);
1628  TF_copy_u16(&packet[110], (uint16_t)(mode_manager->transition_table_for_tlm[11].bc_index));
1630  TF_copy_u8(&packet[113], mode_manager->transition_table_for_tlm[12].to);
1631  TF_copy_u16(&packet[114], (uint16_t)(mode_manager->transition_table_for_tlm[12].bc_index));
1633  TF_copy_u8(&packet[117], mode_manager->transition_table_for_tlm[13].to);
1634  TF_copy_u16(&packet[118], (uint16_t)(mode_manager->transition_table_for_tlm[13].bc_index));
1636  TF_copy_u8(&packet[121], mode_manager->transition_table_for_tlm[14].to);
1637  TF_copy_u16(&packet[122], (uint16_t)(mode_manager->transition_table_for_tlm[14].bc_index));
1639  TF_copy_u8(&packet[125], mode_manager->transition_table_for_tlm[15].to);
1640  TF_copy_u16(&packet[126], (uint16_t)(mode_manager->transition_table_for_tlm[15].bc_index));
1642  TF_copy_u8(&packet[129], mode_manager->transition_table_for_tlm[16].to);
1643  TF_copy_u16(&packet[130], (uint16_t)(mode_manager->transition_table_for_tlm[16].bc_index));
1645  TF_copy_u8(&packet[133], mode_manager->transition_table_for_tlm[17].to);
1646  TF_copy_u16(&packet[134], (uint16_t)(mode_manager->transition_table_for_tlm[17].bc_index));
1648  TF_copy_u8(&packet[137], mode_manager->transition_table_for_tlm[18].to);
1649  TF_copy_u16(&packet[138], (uint16_t)(mode_manager->transition_table_for_tlm[18].bc_index));
1651  TF_copy_u8(&packet[141], mode_manager->transition_table_for_tlm[19].to);
1652  TF_copy_u16(&packet[142], (uint16_t)(mode_manager->transition_table_for_tlm[19].bc_index));
1654  TF_copy_u8(&packet[145], mode_manager->transition_table_for_tlm[20].to);
1655  TF_copy_u16(&packet[146], (uint16_t)(mode_manager->transition_table_for_tlm[20].bc_index));
1657  TF_copy_u8(&packet[149], mode_manager->transition_table_for_tlm[21].to);
1658  TF_copy_u16(&packet[150], (uint16_t)(mode_manager->transition_table_for_tlm[21].bc_index));
1660  TF_copy_u8(&packet[153], mode_manager->transition_table_for_tlm[22].to);
1661  TF_copy_u16(&packet[154], (uint16_t)(mode_manager->transition_table_for_tlm[22].bc_index));
1663  TF_copy_u8(&packet[157], mode_manager->transition_table_for_tlm[23].to);
1664  TF_copy_u16(&packet[158], (uint16_t)(mode_manager->transition_table_for_tlm[23].bc_index));
1666  TF_copy_u8(&packet[161], mode_manager->transition_table_for_tlm[24].to);
1667  TF_copy_u16(&packet[162], (uint16_t)(mode_manager->transition_table_for_tlm[24].bc_index));
1669  TF_copy_u8(&packet[165], mode_manager->transition_table_for_tlm[25].to);
1670  TF_copy_u16(&packet[166], (uint16_t)(mode_manager->transition_table_for_tlm[25].bc_index));
1672  TF_copy_u8(&packet[169], mode_manager->transition_table_for_tlm[26].to);
1673  TF_copy_u16(&packet[170], (uint16_t)(mode_manager->transition_table_for_tlm[26].bc_index));
1675  TF_copy_u8(&packet[173], mode_manager->transition_table_for_tlm[27].to);
1676  TF_copy_u16(&packet[174], (uint16_t)(mode_manager->transition_table_for_tlm[27].bc_index));
1678  TF_copy_u8(&packet[177], mode_manager->transition_table_for_tlm[28].to);
1679  TF_copy_u16(&packet[178], (uint16_t)(mode_manager->transition_table_for_tlm[28].bc_index));
1681  TF_copy_u8(&packet[181], mode_manager->transition_table_for_tlm[29].to);
1682  TF_copy_u16(&packet[182], (uint16_t)(mode_manager->transition_table_for_tlm[29].bc_index));
1684  TF_copy_u8(&packet[185], mode_manager->transition_table_for_tlm[30].to);
1685  TF_copy_u16(&packet[186], (uint16_t)(mode_manager->transition_table_for_tlm[30].bc_index));
1687  TF_copy_u8(&packet[189], mode_manager->transition_table_for_tlm[31].to);
1688  TF_copy_u16(&packet[190], (uint16_t)(mode_manager->transition_table_for_tlm[31].bc_index));
1690  TF_copy_u8(&packet[193], mode_manager->transition_table_for_tlm[32].to);
1691  TF_copy_u16(&packet[194], (uint16_t)(mode_manager->transition_table_for_tlm[32].bc_index));
1693  TF_copy_u8(&packet[197], mode_manager->transition_table_for_tlm[33].to);
1694  TF_copy_u16(&packet[198], (uint16_t)(mode_manager->transition_table_for_tlm[33].bc_index));
1696  TF_copy_u8(&packet[201], mode_manager->transition_table_for_tlm[34].to);
1697  TF_copy_u16(&packet[202], (uint16_t)(mode_manager->transition_table_for_tlm[34].bc_index));
1699  TF_copy_u8(&packet[205], mode_manager->transition_table_for_tlm[35].to);
1700  TF_copy_u16(&packet[206], (uint16_t)(mode_manager->transition_table_for_tlm[35].bc_index));
1702  TF_copy_u8(&packet[209], mode_manager->transition_table_for_tlm[36].to);
1703  TF_copy_u16(&packet[210], (uint16_t)(mode_manager->transition_table_for_tlm[36].bc_index));
1705  TF_copy_u8(&packet[213], mode_manager->transition_table_for_tlm[37].to);
1706  TF_copy_u16(&packet[214], (uint16_t)(mode_manager->transition_table_for_tlm[37].bc_index));
1708  TF_copy_u8(&packet[217], mode_manager->transition_table_for_tlm[38].to);
1709  TF_copy_u16(&packet[218], (uint16_t)(mode_manager->transition_table_for_tlm[38].bc_index));
1711  TF_copy_u8(&packet[221], mode_manager->transition_table_for_tlm[39].to);
1712  TF_copy_u16(&packet[222], (uint16_t)(mode_manager->transition_table_for_tlm[39].bc_index));
1714  TF_copy_u8(&packet[225], mode_manager->transition_table_for_tlm[40].to);
1715  TF_copy_u16(&packet[226], (uint16_t)(mode_manager->transition_table_for_tlm[40].bc_index));
1717  TF_copy_u8(&packet[229], mode_manager->transition_table_for_tlm[41].to);
1718  TF_copy_u16(&packet[230], (uint16_t)(mode_manager->transition_table_for_tlm[41].bc_index));
1720  TF_copy_u8(&packet[233], mode_manager->transition_table_for_tlm[42].to);
1721  TF_copy_u16(&packet[234], (uint16_t)(mode_manager->transition_table_for_tlm[42].bc_index));
1723  TF_copy_u8(&packet[237], mode_manager->transition_table_for_tlm[43].to);
1724  TF_copy_u16(&packet[238], (uint16_t)(mode_manager->transition_table_for_tlm[43].bc_index));
1726  TF_copy_u8(&packet[241], mode_manager->transition_table_for_tlm[44].to);
1727  TF_copy_u16(&packet[242], (uint16_t)(mode_manager->transition_table_for_tlm[44].bc_index));
1729  TF_copy_u8(&packet[245], mode_manager->transition_table_for_tlm[45].to);
1730  TF_copy_u16(&packet[246], (uint16_t)(mode_manager->transition_table_for_tlm[45].bc_index));
1732  TF_copy_u8(&packet[249], mode_manager->transition_table_for_tlm[46].to);
1733  TF_copy_u16(&packet[250], (uint16_t)(mode_manager->transition_table_for_tlm[46].bc_index));
1735  TF_copy_u8(&packet[253], mode_manager->transition_table_for_tlm[47].to);
1736  TF_copy_u16(&packet[254], (uint16_t)(mode_manager->transition_table_for_tlm[47].bc_index));
1738  TF_copy_u8(&packet[257], mode_manager->transition_table_for_tlm[48].to);
1739  TF_copy_u16(&packet[258], (uint16_t)(mode_manager->transition_table_for_tlm[48].bc_index));
1741  TF_copy_u8(&packet[261], mode_manager->transition_table_for_tlm[49].to);
1742  TF_copy_u16(&packet[262], (uint16_t)(mode_manager->transition_table_for_tlm[49].bc_index));
1744  TF_copy_u8(&packet[265], mode_manager->transition_table_for_tlm[50].to);
1745  TF_copy_u16(&packet[266], (uint16_t)(mode_manager->transition_table_for_tlm[50].bc_index));
1747  TF_copy_u8(&packet[269], mode_manager->transition_table_for_tlm[51].to);
1748  TF_copy_u16(&packet[270], (uint16_t)(mode_manager->transition_table_for_tlm[51].bc_index));
1750  TF_copy_u8(&packet[273], mode_manager->transition_table_for_tlm[52].to);
1751  TF_copy_u16(&packet[274], (uint16_t)(mode_manager->transition_table_for_tlm[52].bc_index));
1753  TF_copy_u8(&packet[277], mode_manager->transition_table_for_tlm[53].to);
1754  TF_copy_u16(&packet[278], (uint16_t)(mode_manager->transition_table_for_tlm[53].bc_index));
1756  TF_copy_u8(&packet[281], mode_manager->transition_table_for_tlm[54].to);
1757  TF_copy_u16(&packet[282], (uint16_t)(mode_manager->transition_table_for_tlm[54].bc_index));
1759  TF_copy_u8(&packet[285], mode_manager->transition_table_for_tlm[55].to);
1760  TF_copy_u16(&packet[286], (uint16_t)(mode_manager->transition_table_for_tlm[55].bc_index));
1762  TF_copy_u8(&packet[289], mode_manager->transition_table_for_tlm[56].to);
1763  TF_copy_u16(&packet[290], (uint16_t)(mode_manager->transition_table_for_tlm[56].bc_index));
1765  TF_copy_u8(&packet[293], mode_manager->transition_table_for_tlm[57].to);
1766  TF_copy_u16(&packet[294], (uint16_t)(mode_manager->transition_table_for_tlm[57].bc_index));
1768  TF_copy_u8(&packet[297], mode_manager->transition_table_for_tlm[58].to);
1769  TF_copy_u16(&packet[298], (uint16_t)(mode_manager->transition_table_for_tlm[58].bc_index));
1771  TF_copy_u8(&packet[301], mode_manager->transition_table_for_tlm[59].to);
1772  TF_copy_u16(&packet[302], (uint16_t)(mode_manager->transition_table_for_tlm[59].bc_index));
1774  TF_copy_u8(&packet[305], mode_manager->transition_table_for_tlm[60].to);
1775  TF_copy_u16(&packet[306], (uint16_t)(mode_manager->transition_table_for_tlm[60].bc_index));
1777  TF_copy_u8(&packet[309], mode_manager->transition_table_for_tlm[61].to);
1778  TF_copy_u16(&packet[310], (uint16_t)(mode_manager->transition_table_for_tlm[61].bc_index));
1780  TF_copy_u8(&packet[313], mode_manager->transition_table_for_tlm[62].to);
1781  TF_copy_u16(&packet[314], (uint16_t)(mode_manager->transition_table_for_tlm[62].bc_index));
1783  TF_copy_u8(&packet[317], mode_manager->transition_table_for_tlm[63].to);
1784  TF_copy_u16(&packet[318], (uint16_t)(mode_manager->transition_table_for_tlm[63].bc_index));
1786  TF_copy_u8(&packet[321], mode_manager->transition_table_for_tlm[64].to);
1787  TF_copy_u16(&packet[322], (uint16_t)(mode_manager->transition_table_for_tlm[64].bc_index));
1789  TF_copy_u8(&packet[325], mode_manager->transition_table_for_tlm[65].to);
1790  TF_copy_u16(&packet[326], (uint16_t)(mode_manager->transition_table_for_tlm[65].bc_index));
1792  TF_copy_u8(&packet[329], mode_manager->transition_table_for_tlm[66].to);
1793  TF_copy_u16(&packet[330], (uint16_t)(mode_manager->transition_table_for_tlm[66].bc_index));
1795  TF_copy_u8(&packet[333], mode_manager->transition_table_for_tlm[67].to);
1796  TF_copy_u16(&packet[334], (uint16_t)(mode_manager->transition_table_for_tlm[67].bc_index));
1798  TF_copy_u8(&packet[337], mode_manager->transition_table_for_tlm[68].to);
1799  TF_copy_u16(&packet[338], (uint16_t)(mode_manager->transition_table_for_tlm[68].bc_index));
1801  TF_copy_u8(&packet[341], mode_manager->transition_table_for_tlm[69].to);
1802  TF_copy_u16(&packet[342], (uint16_t)(mode_manager->transition_table_for_tlm[69].bc_index));
1804  TF_copy_u8(&packet[345], mode_manager->transition_table_for_tlm[70].to);
1805  TF_copy_u16(&packet[346], (uint16_t)(mode_manager->transition_table_for_tlm[70].bc_index));
1807  TF_copy_u8(&packet[349], mode_manager->transition_table_for_tlm[71].to);
1808  TF_copy_u16(&packet[350], (uint16_t)(mode_manager->transition_table_for_tlm[71].bc_index));
1810  TF_copy_u8(&packet[353], mode_manager->transition_table_for_tlm[72].to);
1811  TF_copy_u16(&packet[354], (uint16_t)(mode_manager->transition_table_for_tlm[72].bc_index));
1813  TF_copy_u8(&packet[357], mode_manager->transition_table_for_tlm[73].to);
1814  TF_copy_u16(&packet[358], (uint16_t)(mode_manager->transition_table_for_tlm[73].bc_index));
1816  TF_copy_u8(&packet[361], mode_manager->transition_table_for_tlm[74].to);
1817  TF_copy_u16(&packet[362], (uint16_t)(mode_manager->transition_table_for_tlm[74].bc_index));
1819  TF_copy_u8(&packet[365], mode_manager->transition_table_for_tlm[75].to);
1820  TF_copy_u16(&packet[366], (uint16_t)(mode_manager->transition_table_for_tlm[75].bc_index));
1822  TF_copy_u8(&packet[369], mode_manager->transition_table_for_tlm[76].to);
1823  TF_copy_u16(&packet[370], (uint16_t)(mode_manager->transition_table_for_tlm[76].bc_index));
1825  TF_copy_u8(&packet[373], mode_manager->transition_table_for_tlm[77].to);
1826  TF_copy_u16(&packet[374], (uint16_t)(mode_manager->transition_table_for_tlm[77].bc_index));
1828  TF_copy_u8(&packet[377], mode_manager->transition_table_for_tlm[78].to);
1829  TF_copy_u16(&packet[378], (uint16_t)(mode_manager->transition_table_for_tlm[78].bc_index));
1831  TF_copy_u8(&packet[381], mode_manager->transition_table_for_tlm[79].to);
1832  TF_copy_u16(&packet[382], (uint16_t)(mode_manager->transition_table_for_tlm[79].bc_index));
1834  TF_copy_u8(&packet[385], mode_manager->transition_table_for_tlm[80].to);
1835  TF_copy_u16(&packet[386], (uint16_t)(mode_manager->transition_table_for_tlm[80].bc_index));
1837  TF_copy_u8(&packet[389], mode_manager->transition_table_for_tlm[81].to);
1838  TF_copy_u16(&packet[390], (uint16_t)(mode_manager->transition_table_for_tlm[81].bc_index));
1840  TF_copy_u8(&packet[393], mode_manager->transition_table_for_tlm[82].to);
1841  TF_copy_u16(&packet[394], (uint16_t)(mode_manager->transition_table_for_tlm[82].bc_index));
1843  TF_copy_u8(&packet[397], mode_manager->transition_table_for_tlm[83].to);
1844  TF_copy_u16(&packet[398], (uint16_t)(mode_manager->transition_table_for_tlm[83].bc_index));
1846  TF_copy_u8(&packet[401], mode_manager->transition_table_for_tlm[84].to);
1847  TF_copy_u16(&packet[402], (uint16_t)(mode_manager->transition_table_for_tlm[84].bc_index));
1849  TF_copy_u8(&packet[405], mode_manager->transition_table_for_tlm[85].to);
1850  TF_copy_u16(&packet[406], (uint16_t)(mode_manager->transition_table_for_tlm[85].bc_index));
1852  TF_copy_u8(&packet[409], mode_manager->transition_table_for_tlm[86].to);
1853  TF_copy_u16(&packet[410], (uint16_t)(mode_manager->transition_table_for_tlm[86].bc_index));
1855  TF_copy_u8(&packet[413], mode_manager->transition_table_for_tlm[87].to);
1856  TF_copy_u16(&packet[414], (uint16_t)(mode_manager->transition_table_for_tlm[87].bc_index));
1858  TF_copy_u8(&packet[417], mode_manager->transition_table_for_tlm[88].to);
1859  TF_copy_u16(&packet[418], (uint16_t)(mode_manager->transition_table_for_tlm[88].bc_index));
1861  TF_copy_u8(&packet[421], mode_manager->transition_table_for_tlm[89].to);
1862  TF_copy_u16(&packet[422], (uint16_t)(mode_manager->transition_table_for_tlm[89].bc_index));
1863 #endif
1864 
1865  *len = 424;
1866  return TF_TLM_FUNC_ACK_SUCCESS;
1867 }
1868 
1869 static TF_TLM_FUNC_ACK Tlm_AM_(uint8_t* packet, uint16_t* len, uint16_t max_len)
1870 {
1871  int offset = AM_TLM_PAGE_SIZE * app_manager->page_no;
1872 
1873  if (411 > max_len) return TF_TLM_FUNC_ACK_TOO_SHORT_LEN;
1874 
1875 #ifndef BUILD_SETTINGS_FAST_BUILD
1876  TF_copy_u8(&packet[26], (uint8_t)(app_manager->page_no));
1877  TF_copy_u32(&packet[27], (uint32_t)(app_manager->ais[offset+0].initializer));
1878  TF_copy_u32(&packet[31], (uint32_t)(app_manager->ais[offset+0].entry_point));
1879  TF_copy_u8(&packet[35], (uint8_t)(app_manager->ais[offset+0].init_duration));
1880  TF_copy_u8(&packet[36], (uint8_t)(app_manager->ais[offset+0].prev));
1881  TF_copy_u8(&packet[37], (uint8_t)(app_manager->ais[offset+0].min));
1882  TF_copy_u8(&packet[38], (uint8_t)(app_manager->ais[offset+0].max));
1883  TF_copy_u32(&packet[39], (uint32_t)(app_manager->ais[offset+1].initializer));
1884  TF_copy_u32(&packet[43], (uint32_t)(app_manager->ais[offset+1].entry_point));
1885  TF_copy_u8(&packet[47], (uint8_t)(app_manager->ais[offset+1].init_duration));
1886  TF_copy_u8(&packet[48], (uint8_t)(app_manager->ais[offset+1].prev));
1887  TF_copy_u8(&packet[49], (uint8_t)(app_manager->ais[offset+1].min));
1888  TF_copy_u8(&packet[50], (uint8_t)(app_manager->ais[offset+1].max));
1889  TF_copy_u32(&packet[51], (uint32_t)(app_manager->ais[offset+2].initializer));
1890  TF_copy_u32(&packet[55], (uint32_t)(app_manager->ais[offset+2].entry_point));
1891  TF_copy_u8(&packet[59], (uint8_t)(app_manager->ais[offset+2].init_duration));
1892  TF_copy_u8(&packet[60], (uint8_t)(app_manager->ais[offset+2].prev));
1893  TF_copy_u8(&packet[61], (uint8_t)(app_manager->ais[offset+2].min));
1894  TF_copy_u8(&packet[62], (uint8_t)(app_manager->ais[offset+2].max));
1895  TF_copy_u32(&packet[63], (uint32_t)(app_manager->ais[offset+3].initializer));
1896  TF_copy_u32(&packet[67], (uint32_t)(app_manager->ais[offset+3].entry_point));
1897  TF_copy_u8(&packet[71], (uint8_t)(app_manager->ais[offset+3].init_duration));
1898  TF_copy_u8(&packet[72], (uint8_t)(app_manager->ais[offset+3].prev));
1899  TF_copy_u8(&packet[73], (uint8_t)(app_manager->ais[offset+3].min));
1900  TF_copy_u8(&packet[74], (uint8_t)(app_manager->ais[offset+3].max));
1901  TF_copy_u32(&packet[75], (uint32_t)(app_manager->ais[offset+4].initializer));
1902  TF_copy_u32(&packet[79], (uint32_t)(app_manager->ais[offset+4].entry_point));
1903  TF_copy_u8(&packet[83], (uint8_t)(app_manager->ais[offset+4].init_duration));
1904  TF_copy_u8(&packet[84], (uint8_t)(app_manager->ais[offset+4].prev));
1905  TF_copy_u8(&packet[85], (uint8_t)(app_manager->ais[offset+4].min));
1906  TF_copy_u8(&packet[86], (uint8_t)(app_manager->ais[offset+4].max));
1907  TF_copy_u32(&packet[87], (uint32_t)(app_manager->ais[offset+5].initializer));
1908  TF_copy_u32(&packet[91], (uint32_t)(app_manager->ais[offset+5].entry_point));
1909  TF_copy_u8(&packet[95], (uint8_t)(app_manager->ais[offset+5].init_duration));
1910  TF_copy_u8(&packet[96], (uint8_t)(app_manager->ais[offset+5].prev));
1911  TF_copy_u8(&packet[97], (uint8_t)(app_manager->ais[offset+5].min));
1912  TF_copy_u8(&packet[98], (uint8_t)(app_manager->ais[offset+5].max));
1913  TF_copy_u32(&packet[99], (uint32_t)(app_manager->ais[offset+6].initializer));
1914  TF_copy_u32(&packet[103], (uint32_t)(app_manager->ais[offset+6].entry_point));
1915  TF_copy_u8(&packet[107], (uint8_t)(app_manager->ais[offset+6].init_duration));
1916  TF_copy_u8(&packet[108], (uint8_t)(app_manager->ais[offset+6].prev));
1917  TF_copy_u8(&packet[109], (uint8_t)(app_manager->ais[offset+6].min));
1918  TF_copy_u8(&packet[110], (uint8_t)(app_manager->ais[offset+6].max));
1919  TF_copy_u32(&packet[111], (uint32_t)(app_manager->ais[offset+7].initializer));
1920  TF_copy_u32(&packet[115], (uint32_t)(app_manager->ais[offset+7].entry_point));
1921  TF_copy_u8(&packet[119], (uint8_t)(app_manager->ais[offset+7].init_duration));
1922  TF_copy_u8(&packet[120], (uint8_t)(app_manager->ais[offset+7].prev));
1923  TF_copy_u8(&packet[121], (uint8_t)(app_manager->ais[offset+7].min));
1924  TF_copy_u8(&packet[122], (uint8_t)(app_manager->ais[offset+7].max));
1925  TF_copy_u32(&packet[123], (uint32_t)(app_manager->ais[offset+8].initializer));
1926  TF_copy_u32(&packet[127], (uint32_t)(app_manager->ais[offset+8].entry_point));
1927  TF_copy_u8(&packet[131], (uint8_t)(app_manager->ais[offset+8].init_duration));
1928  TF_copy_u8(&packet[132], (uint8_t)(app_manager->ais[offset+8].prev));
1929  TF_copy_u8(&packet[133], (uint8_t)(app_manager->ais[offset+8].min));
1930  TF_copy_u8(&packet[134], (uint8_t)(app_manager->ais[offset+8].max));
1931  TF_copy_u32(&packet[135], (uint32_t)(app_manager->ais[offset+9].initializer));
1932  TF_copy_u32(&packet[139], (uint32_t)(app_manager->ais[offset+9].entry_point));
1933  TF_copy_u8(&packet[143], (uint8_t)(app_manager->ais[offset+9].init_duration));
1934  TF_copy_u8(&packet[144], (uint8_t)(app_manager->ais[offset+9].prev));
1935  TF_copy_u8(&packet[145], (uint8_t)(app_manager->ais[offset+9].min));
1936  TF_copy_u8(&packet[146], (uint8_t)(app_manager->ais[offset+9].max));
1937  TF_copy_u32(&packet[147], (uint32_t)(app_manager->ais[offset+10].initializer));
1938  TF_copy_u32(&packet[151], (uint32_t)(app_manager->ais[offset+10].entry_point));
1939  TF_copy_u8(&packet[155], (uint8_t)(app_manager->ais[offset+10].init_duration));
1940  TF_copy_u8(&packet[156], (uint8_t)(app_manager->ais[offset+10].prev));
1941  TF_copy_u8(&packet[157], (uint8_t)(app_manager->ais[offset+10].min));
1942  TF_copy_u8(&packet[158], (uint8_t)(app_manager->ais[offset+10].max));
1943  TF_copy_u32(&packet[159], (uint32_t)(app_manager->ais[offset+11].initializer));
1944  TF_copy_u32(&packet[163], (uint32_t)(app_manager->ais[offset+11].entry_point));
1945  TF_copy_u8(&packet[167], (uint8_t)(app_manager->ais[offset+11].init_duration));
1946  TF_copy_u8(&packet[168], (uint8_t)(app_manager->ais[offset+11].prev));
1947  TF_copy_u8(&packet[169], (uint8_t)(app_manager->ais[offset+11].min));
1948  TF_copy_u8(&packet[170], (uint8_t)(app_manager->ais[offset+11].max));
1949  TF_copy_u32(&packet[171], (uint32_t)(app_manager->ais[offset+12].initializer));
1950  TF_copy_u32(&packet[175], (uint32_t)(app_manager->ais[offset+12].entry_point));
1951  TF_copy_u8(&packet[179], (uint8_t)(app_manager->ais[offset+12].init_duration));
1952  TF_copy_u8(&packet[180], (uint8_t)(app_manager->ais[offset+12].prev));
1953  TF_copy_u8(&packet[181], (uint8_t)(app_manager->ais[offset+12].min));
1954  TF_copy_u8(&packet[182], (uint8_t)(app_manager->ais[offset+12].max));
1955  TF_copy_u32(&packet[183], (uint32_t)(app_manager->ais[offset+13].initializer));
1956  TF_copy_u32(&packet[187], (uint32_t)(app_manager->ais[offset+13].entry_point));
1957  TF_copy_u8(&packet[191], (uint8_t)(app_manager->ais[offset+13].init_duration));
1958  TF_copy_u8(&packet[192], (uint8_t)(app_manager->ais[offset+13].prev));
1959  TF_copy_u8(&packet[193], (uint8_t)(app_manager->ais[offset+13].min));
1960  TF_copy_u8(&packet[194], (uint8_t)(app_manager->ais[offset+13].max));
1961  TF_copy_u32(&packet[195], (uint32_t)(app_manager->ais[offset+14].initializer));
1962  TF_copy_u32(&packet[199], (uint32_t)(app_manager->ais[offset+14].entry_point));
1963  TF_copy_u8(&packet[203], (uint8_t)(app_manager->ais[offset+14].init_duration));
1964  TF_copy_u8(&packet[204], (uint8_t)(app_manager->ais[offset+14].prev));
1965  TF_copy_u8(&packet[205], (uint8_t)(app_manager->ais[offset+14].min));
1966  TF_copy_u8(&packet[206], (uint8_t)(app_manager->ais[offset+14].max));
1967  TF_copy_u32(&packet[207], (uint32_t)(app_manager->ais[offset+15].initializer));
1968  TF_copy_u32(&packet[211], (uint32_t)(app_manager->ais[offset+15].entry_point));
1969  TF_copy_u8(&packet[215], (uint8_t)(app_manager->ais[offset+15].init_duration));
1970  TF_copy_u8(&packet[216], (uint8_t)(app_manager->ais[offset+15].prev));
1971  TF_copy_u8(&packet[217], (uint8_t)(app_manager->ais[offset+15].min));
1972  TF_copy_u8(&packet[218], (uint8_t)(app_manager->ais[offset+15].max));
1973  TF_copy_u32(&packet[219], (uint32_t)(app_manager->ais[offset+16].initializer));
1974  TF_copy_u32(&packet[223], (uint32_t)(app_manager->ais[offset+16].entry_point));
1975  TF_copy_u8(&packet[227], (uint8_t)(app_manager->ais[offset+16].init_duration));
1976  TF_copy_u8(&packet[228], (uint8_t)(app_manager->ais[offset+16].prev));
1977  TF_copy_u8(&packet[229], (uint8_t)(app_manager->ais[offset+16].min));
1978  TF_copy_u8(&packet[230], (uint8_t)(app_manager->ais[offset+16].max));
1979  TF_copy_u32(&packet[231], (uint32_t)(app_manager->ais[offset+17].initializer));
1980  TF_copy_u32(&packet[235], (uint32_t)(app_manager->ais[offset+17].entry_point));
1981  TF_copy_u8(&packet[239], (uint8_t)(app_manager->ais[offset+17].init_duration));
1982  TF_copy_u8(&packet[240], (uint8_t)(app_manager->ais[offset+17].prev));
1983  TF_copy_u8(&packet[241], (uint8_t)(app_manager->ais[offset+17].min));
1984  TF_copy_u8(&packet[242], (uint8_t)(app_manager->ais[offset+17].max));
1985  TF_copy_u32(&packet[243], (uint32_t)(app_manager->ais[offset+18].initializer));
1986  TF_copy_u32(&packet[247], (uint32_t)(app_manager->ais[offset+18].entry_point));
1987  TF_copy_u8(&packet[251], (uint8_t)(app_manager->ais[offset+18].init_duration));
1988  TF_copy_u8(&packet[252], (uint8_t)(app_manager->ais[offset+18].prev));
1989  TF_copy_u8(&packet[253], (uint8_t)(app_manager->ais[offset+18].min));
1990  TF_copy_u8(&packet[254], (uint8_t)(app_manager->ais[offset+18].max));
1991  TF_copy_u32(&packet[255], (uint32_t)(app_manager->ais[offset+19].initializer));
1992  TF_copy_u32(&packet[259], (uint32_t)(app_manager->ais[offset+19].entry_point));
1993  TF_copy_u8(&packet[263], (uint8_t)(app_manager->ais[offset+19].init_duration));
1994  TF_copy_u8(&packet[264], (uint8_t)(app_manager->ais[offset+19].prev));
1995  TF_copy_u8(&packet[265], (uint8_t)(app_manager->ais[offset+19].min));
1996  TF_copy_u8(&packet[266], (uint8_t)(app_manager->ais[offset+19].max));
1997  TF_copy_u32(&packet[267], (uint32_t)(app_manager->ais[offset+20].initializer));
1998  TF_copy_u32(&packet[271], (uint32_t)(app_manager->ais[offset+20].entry_point));
1999  TF_copy_u8(&packet[275], (uint8_t)(app_manager->ais[offset+20].init_duration));
2000  TF_copy_u8(&packet[276], (uint8_t)(app_manager->ais[offset+20].prev));
2001  TF_copy_u8(&packet[277], (uint8_t)(app_manager->ais[offset+20].min));
2002  TF_copy_u8(&packet[278], (uint8_t)(app_manager->ais[offset+20].max));
2003  TF_copy_u32(&packet[279], (uint32_t)(app_manager->ais[offset+21].initializer));
2004  TF_copy_u32(&packet[283], (uint32_t)(app_manager->ais[offset+21].entry_point));
2005  TF_copy_u8(&packet[287], (uint8_t)(app_manager->ais[offset+21].init_duration));
2006  TF_copy_u8(&packet[288], (uint8_t)(app_manager->ais[offset+21].prev));
2007  TF_copy_u8(&packet[289], (uint8_t)(app_manager->ais[offset+21].min));
2008  TF_copy_u8(&packet[290], (uint8_t)(app_manager->ais[offset+21].max));
2009  TF_copy_u32(&packet[291], (uint32_t)(app_manager->ais[offset+22].initializer));
2010  TF_copy_u32(&packet[295], (uint32_t)(app_manager->ais[offset+22].entry_point));
2011  TF_copy_u8(&packet[299], (uint8_t)(app_manager->ais[offset+22].init_duration));
2012  TF_copy_u8(&packet[300], (uint8_t)(app_manager->ais[offset+22].prev));
2013  TF_copy_u8(&packet[301], (uint8_t)(app_manager->ais[offset+22].min));
2014  TF_copy_u8(&packet[302], (uint8_t)(app_manager->ais[offset+22].max));
2015  TF_copy_u32(&packet[303], (uint32_t)(app_manager->ais[offset+23].initializer));
2016  TF_copy_u32(&packet[307], (uint32_t)(app_manager->ais[offset+23].entry_point));
2017  TF_copy_u8(&packet[311], (uint8_t)(app_manager->ais[offset+23].init_duration));
2018  TF_copy_u8(&packet[312], (uint8_t)(app_manager->ais[offset+23].prev));
2019  TF_copy_u8(&packet[313], (uint8_t)(app_manager->ais[offset+23].min));
2020  TF_copy_u8(&packet[314], (uint8_t)(app_manager->ais[offset+23].max));
2021  TF_copy_u32(&packet[315], (uint32_t)(app_manager->ais[offset+24].initializer));
2022  TF_copy_u32(&packet[319], (uint32_t)(app_manager->ais[offset+24].entry_point));
2023  TF_copy_u8(&packet[323], (uint8_t)(app_manager->ais[offset+24].init_duration));
2024  TF_copy_u8(&packet[324], (uint8_t)(app_manager->ais[offset+24].prev));
2025  TF_copy_u8(&packet[325], (uint8_t)(app_manager->ais[offset+24].min));
2026  TF_copy_u8(&packet[326], (uint8_t)(app_manager->ais[offset+24].max));
2027  TF_copy_u32(&packet[327], (uint32_t)(app_manager->ais[offset+25].initializer));
2028  TF_copy_u32(&packet[331], (uint32_t)(app_manager->ais[offset+25].entry_point));
2029  TF_copy_u8(&packet[335], (uint8_t)(app_manager->ais[offset+25].init_duration));
2030  TF_copy_u8(&packet[336], (uint8_t)(app_manager->ais[offset+25].prev));
2031  TF_copy_u8(&packet[337], (uint8_t)(app_manager->ais[offset+25].min));
2032  TF_copy_u8(&packet[338], (uint8_t)(app_manager->ais[offset+25].max));
2033  TF_copy_u32(&packet[339], (uint32_t)(app_manager->ais[offset+26].initializer));
2034  TF_copy_u32(&packet[343], (uint32_t)(app_manager->ais[offset+26].entry_point));
2035  TF_copy_u8(&packet[347], (uint8_t)(app_manager->ais[offset+26].init_duration));
2036  TF_copy_u8(&packet[348], (uint8_t)(app_manager->ais[offset+26].prev));
2037  TF_copy_u8(&packet[349], (uint8_t)(app_manager->ais[offset+26].min));
2038  TF_copy_u8(&packet[350], (uint8_t)(app_manager->ais[offset+26].max));
2039  TF_copy_u32(&packet[351], (uint32_t)(app_manager->ais[offset+27].initializer));
2040  TF_copy_u32(&packet[355], (uint32_t)(app_manager->ais[offset+27].entry_point));
2041  TF_copy_u8(&packet[359], (uint8_t)(app_manager->ais[offset+27].init_duration));
2042  TF_copy_u8(&packet[360], (uint8_t)(app_manager->ais[offset+27].prev));
2043  TF_copy_u8(&packet[361], (uint8_t)(app_manager->ais[offset+27].min));
2044  TF_copy_u8(&packet[362], (uint8_t)(app_manager->ais[offset+27].max));
2045  TF_copy_u32(&packet[363], (uint32_t)(app_manager->ais[offset+28].initializer));
2046  TF_copy_u32(&packet[367], (uint32_t)(app_manager->ais[offset+28].entry_point));
2047  TF_copy_u8(&packet[371], (uint8_t)(app_manager->ais[offset+28].init_duration));
2048  TF_copy_u8(&packet[372], (uint8_t)(app_manager->ais[offset+28].prev));
2049  TF_copy_u8(&packet[373], (uint8_t)(app_manager->ais[offset+28].min));
2050  TF_copy_u8(&packet[374], (uint8_t)(app_manager->ais[offset+28].max));
2051  TF_copy_u32(&packet[375], (uint32_t)(app_manager->ais[offset+29].initializer));
2052  TF_copy_u32(&packet[379], (uint32_t)(app_manager->ais[offset+29].entry_point));
2053  TF_copy_u8(&packet[383], (uint8_t)(app_manager->ais[offset+29].init_duration));
2054  TF_copy_u8(&packet[384], (uint8_t)(app_manager->ais[offset+29].prev));
2055  TF_copy_u8(&packet[385], (uint8_t)(app_manager->ais[offset+29].min));
2056  TF_copy_u8(&packet[386], (uint8_t)(app_manager->ais[offset+29].max));
2057  TF_copy_u32(&packet[387], (uint32_t)(app_manager->ais[offset+30].initializer));
2058  TF_copy_u32(&packet[391], (uint32_t)(app_manager->ais[offset+30].entry_point));
2059  TF_copy_u8(&packet[395], (uint8_t)(app_manager->ais[offset+30].init_duration));
2060  TF_copy_u8(&packet[396], (uint8_t)(app_manager->ais[offset+30].prev));
2061  TF_copy_u8(&packet[397], (uint8_t)(app_manager->ais[offset+30].min));
2062  TF_copy_u8(&packet[398], (uint8_t)(app_manager->ais[offset+30].max));
2063  TF_copy_u32(&packet[399], (uint32_t)(app_manager->ais[offset+31].initializer));
2064  TF_copy_u32(&packet[403], (uint32_t)(app_manager->ais[offset+31].entry_point));
2065  TF_copy_u8(&packet[407], (uint8_t)(app_manager->ais[offset+31].init_duration));
2066  TF_copy_u8(&packet[408], (uint8_t)(app_manager->ais[offset+31].prev));
2067  TF_copy_u8(&packet[409], (uint8_t)(app_manager->ais[offset+31].min));
2068  TF_copy_u8(&packet[410], (uint8_t)(app_manager->ais[offset+31].max));
2069 #endif
2070 
2071  *len = 411;
2072  return TF_TLM_FUNC_ACK_SUCCESS;
2073 }
2074 
2075 static TF_TLM_FUNC_ACK Tlm_APP_TIME_(uint8_t* packet, uint16_t* len, uint16_t max_len)
2076 {
2077  if (426 > max_len) return TF_TLM_FUNC_ACK_TOO_SHORT_LEN;
2078 
2079 #ifndef BUILD_SETTINGS_FAST_BUILD
2080  TF_copy_u8(&packet[26], (uint8_t)(app_manager->ais[0].init_duration));
2081  TF_copy_u8(&packet[27], (uint8_t)(app_manager->ais[0].prev));
2082  TF_copy_u8(&packet[28], (uint8_t)(app_manager->ais[0].min));
2083  TF_copy_u8(&packet[29], (uint8_t)(app_manager->ais[0].max));
2084  TF_copy_u8(&packet[30], (uint8_t)(app_manager->ais[1].init_duration));
2085  TF_copy_u8(&packet[31], (uint8_t)(app_manager->ais[1].prev));
2086  TF_copy_u8(&packet[32], (uint8_t)(app_manager->ais[1].min));
2087  TF_copy_u8(&packet[33], (uint8_t)(app_manager->ais[1].max));
2088  TF_copy_u8(&packet[34], (uint8_t)(app_manager->ais[2].init_duration));
2089  TF_copy_u8(&packet[35], (uint8_t)(app_manager->ais[2].prev));
2090  TF_copy_u8(&packet[36], (uint8_t)(app_manager->ais[2].min));
2091  TF_copy_u8(&packet[37], (uint8_t)(app_manager->ais[2].max));
2092  TF_copy_u8(&packet[38], (uint8_t)(app_manager->ais[3].init_duration));
2093  TF_copy_u8(&packet[39], (uint8_t)(app_manager->ais[3].prev));
2094  TF_copy_u8(&packet[40], (uint8_t)(app_manager->ais[3].min));
2095  TF_copy_u8(&packet[41], (uint8_t)(app_manager->ais[3].max));
2096  TF_copy_u8(&packet[42], (uint8_t)(app_manager->ais[4].init_duration));
2097  TF_copy_u8(&packet[43], (uint8_t)(app_manager->ais[4].prev));
2098  TF_copy_u8(&packet[44], (uint8_t)(app_manager->ais[4].min));
2099  TF_copy_u8(&packet[45], (uint8_t)(app_manager->ais[4].max));
2100  TF_copy_u8(&packet[46], (uint8_t)(app_manager->ais[5].init_duration));
2101  TF_copy_u8(&packet[47], (uint8_t)(app_manager->ais[5].prev));
2102  TF_copy_u8(&packet[48], (uint8_t)(app_manager->ais[5].min));
2103  TF_copy_u8(&packet[49], (uint8_t)(app_manager->ais[5].max));
2104  TF_copy_u8(&packet[50], (uint8_t)(app_manager->ais[6].init_duration));
2105  TF_copy_u8(&packet[51], (uint8_t)(app_manager->ais[6].prev));
2106  TF_copy_u8(&packet[52], (uint8_t)(app_manager->ais[6].min));
2107  TF_copy_u8(&packet[53], (uint8_t)(app_manager->ais[6].max));
2108  TF_copy_u8(&packet[54], (uint8_t)(app_manager->ais[7].init_duration));
2109  TF_copy_u8(&packet[55], (uint8_t)(app_manager->ais[7].prev));
2110  TF_copy_u8(&packet[56], (uint8_t)(app_manager->ais[7].min));
2111  TF_copy_u8(&packet[57], (uint8_t)(app_manager->ais[7].max));
2112  TF_copy_u8(&packet[58], (uint8_t)(app_manager->ais[8].init_duration));
2113  TF_copy_u8(&packet[59], (uint8_t)(app_manager->ais[8].prev));
2114  TF_copy_u8(&packet[60], (uint8_t)(app_manager->ais[8].min));
2115  TF_copy_u8(&packet[61], (uint8_t)(app_manager->ais[8].max));
2116  TF_copy_u8(&packet[62], (uint8_t)(app_manager->ais[9].init_duration));
2117  TF_copy_u8(&packet[63], (uint8_t)(app_manager->ais[9].prev));
2118  TF_copy_u8(&packet[64], (uint8_t)(app_manager->ais[9].min));
2119  TF_copy_u8(&packet[65], (uint8_t)(app_manager->ais[9].max));
2120  TF_copy_u8(&packet[66], (uint8_t)(app_manager->ais[10].init_duration));
2121  TF_copy_u8(&packet[67], (uint8_t)(app_manager->ais[10].prev));
2122  TF_copy_u8(&packet[68], (uint8_t)(app_manager->ais[10].min));
2123  TF_copy_u8(&packet[69], (uint8_t)(app_manager->ais[10].max));
2124  TF_copy_u8(&packet[70], (uint8_t)(app_manager->ais[11].init_duration));
2125  TF_copy_u8(&packet[71], (uint8_t)(app_manager->ais[11].prev));
2126  TF_copy_u8(&packet[72], (uint8_t)(app_manager->ais[11].min));
2127  TF_copy_u8(&packet[73], (uint8_t)(app_manager->ais[11].max));
2128  TF_copy_u8(&packet[74], (uint8_t)(app_manager->ais[12].init_duration));
2129  TF_copy_u8(&packet[75], (uint8_t)(app_manager->ais[12].prev));
2130  TF_copy_u8(&packet[76], (uint8_t)(app_manager->ais[12].min));
2131  TF_copy_u8(&packet[77], (uint8_t)(app_manager->ais[12].max));
2132  TF_copy_u8(&packet[78], (uint8_t)(app_manager->ais[13].init_duration));
2133  TF_copy_u8(&packet[79], (uint8_t)(app_manager->ais[13].prev));
2134  TF_copy_u8(&packet[80], (uint8_t)(app_manager->ais[13].min));
2135  TF_copy_u8(&packet[81], (uint8_t)(app_manager->ais[13].max));
2136  TF_copy_u8(&packet[82], (uint8_t)(app_manager->ais[14].init_duration));
2137  TF_copy_u8(&packet[83], (uint8_t)(app_manager->ais[14].prev));
2138  TF_copy_u8(&packet[84], (uint8_t)(app_manager->ais[14].min));
2139  TF_copy_u8(&packet[85], (uint8_t)(app_manager->ais[14].max));
2140  TF_copy_u8(&packet[86], (uint8_t)(app_manager->ais[15].init_duration));
2141  TF_copy_u8(&packet[87], (uint8_t)(app_manager->ais[15].prev));
2142  TF_copy_u8(&packet[88], (uint8_t)(app_manager->ais[15].min));
2143  TF_copy_u8(&packet[89], (uint8_t)(app_manager->ais[15].max));
2144  TF_copy_u8(&packet[90], (uint8_t)(app_manager->ais[16].init_duration));
2145  TF_copy_u8(&packet[91], (uint8_t)(app_manager->ais[16].prev));
2146  TF_copy_u8(&packet[92], (uint8_t)(app_manager->ais[16].min));
2147  TF_copy_u8(&packet[93], (uint8_t)(app_manager->ais[16].max));
2148  TF_copy_u8(&packet[94], (uint8_t)(app_manager->ais[17].init_duration));
2149  TF_copy_u8(&packet[95], (uint8_t)(app_manager->ais[17].prev));
2150  TF_copy_u8(&packet[96], (uint8_t)(app_manager->ais[17].min));
2151  TF_copy_u8(&packet[97], (uint8_t)(app_manager->ais[17].max));
2152  TF_copy_u8(&packet[98], (uint8_t)(app_manager->ais[18].init_duration));
2153  TF_copy_u8(&packet[99], (uint8_t)(app_manager->ais[18].prev));
2154  TF_copy_u8(&packet[100], (uint8_t)(app_manager->ais[18].min));
2155  TF_copy_u8(&packet[101], (uint8_t)(app_manager->ais[18].max));
2156  TF_copy_u8(&packet[102], (uint8_t)(app_manager->ais[19].init_duration));
2157  TF_copy_u8(&packet[103], (uint8_t)(app_manager->ais[19].prev));
2158  TF_copy_u8(&packet[104], (uint8_t)(app_manager->ais[19].min));
2159  TF_copy_u8(&packet[105], (uint8_t)(app_manager->ais[19].max));
2160  TF_copy_u8(&packet[106], (uint8_t)(app_manager->ais[20].init_duration));
2161  TF_copy_u8(&packet[107], (uint8_t)(app_manager->ais[20].prev));
2162  TF_copy_u8(&packet[108], (uint8_t)(app_manager->ais[20].min));
2163  TF_copy_u8(&packet[109], (uint8_t)(app_manager->ais[20].max));
2164  TF_copy_u8(&packet[110], (uint8_t)(app_manager->ais[21].init_duration));
2165  TF_copy_u8(&packet[111], (uint8_t)(app_manager->ais[21].prev));
2166  TF_copy_u8(&packet[112], (uint8_t)(app_manager->ais[21].min));
2167  TF_copy_u8(&packet[113], (uint8_t)(app_manager->ais[21].max));
2168  TF_copy_u8(&packet[114], (uint8_t)(app_manager->ais[22].init_duration));
2169  TF_copy_u8(&packet[115], (uint8_t)(app_manager->ais[22].prev));
2170  TF_copy_u8(&packet[116], (uint8_t)(app_manager->ais[22].min));
2171  TF_copy_u8(&packet[117], (uint8_t)(app_manager->ais[22].max));
2172  TF_copy_u8(&packet[118], (uint8_t)(app_manager->ais[23].init_duration));
2173  TF_copy_u8(&packet[119], (uint8_t)(app_manager->ais[23].prev));
2174  TF_copy_u8(&packet[120], (uint8_t)(app_manager->ais[23].min));
2175  TF_copy_u8(&packet[121], (uint8_t)(app_manager->ais[23].max));
2176  TF_copy_u8(&packet[122], (uint8_t)(app_manager->ais[24].init_duration));
2177  TF_copy_u8(&packet[123], (uint8_t)(app_manager->ais[24].prev));
2178  TF_copy_u8(&packet[124], (uint8_t)(app_manager->ais[24].min));
2179  TF_copy_u8(&packet[125], (uint8_t)(app_manager->ais[24].max));
2180  TF_copy_u8(&packet[126], (uint8_t)(app_manager->ais[25].init_duration));
2181  TF_copy_u8(&packet[127], (uint8_t)(app_manager->ais[25].prev));
2182  TF_copy_u8(&packet[128], (uint8_t)(app_manager->ais[25].min));
2183  TF_copy_u8(&packet[129], (uint8_t)(app_manager->ais[25].max));
2184  TF_copy_u8(&packet[130], (uint8_t)(app_manager->ais[26].init_duration));
2185  TF_copy_u8(&packet[131], (uint8_t)(app_manager->ais[26].prev));
2186  TF_copy_u8(&packet[132], (uint8_t)(app_manager->ais[26].min));
2187  TF_copy_u8(&packet[133], (uint8_t)(app_manager->ais[26].max));
2188  TF_copy_u8(&packet[134], (uint8_t)(app_manager->ais[27].init_duration));
2189  TF_copy_u8(&packet[135], (uint8_t)(app_manager->ais[27].prev));
2190  TF_copy_u8(&packet[136], (uint8_t)(app_manager->ais[27].min));
2191  TF_copy_u8(&packet[137], (uint8_t)(app_manager->ais[27].max));
2192  TF_copy_u8(&packet[138], (uint8_t)(app_manager->ais[28].init_duration));
2193  TF_copy_u8(&packet[139], (uint8_t)(app_manager->ais[28].prev));
2194  TF_copy_u8(&packet[140], (uint8_t)(app_manager->ais[28].min));
2195  TF_copy_u8(&packet[141], (uint8_t)(app_manager->ais[28].max));
2196  TF_copy_u8(&packet[142], (uint8_t)(app_manager->ais[29].init_duration));
2197  TF_copy_u8(&packet[143], (uint8_t)(app_manager->ais[29].prev));
2198  TF_copy_u8(&packet[144], (uint8_t)(app_manager->ais[29].min));
2199  TF_copy_u8(&packet[145], (uint8_t)(app_manager->ais[29].max));
2200  TF_copy_u8(&packet[146], (uint8_t)(app_manager->ais[30].init_duration));
2201  TF_copy_u8(&packet[147], (uint8_t)(app_manager->ais[30].prev));
2202  TF_copy_u8(&packet[148], (uint8_t)(app_manager->ais[30].min));
2203  TF_copy_u8(&packet[149], (uint8_t)(app_manager->ais[30].max));
2204  TF_copy_u8(&packet[150], (uint8_t)(app_manager->ais[31].init_duration));
2205  TF_copy_u8(&packet[151], (uint8_t)(app_manager->ais[31].prev));
2206  TF_copy_u8(&packet[152], (uint8_t)(app_manager->ais[31].min));
2207  TF_copy_u8(&packet[153], (uint8_t)(app_manager->ais[31].max));
2208  TF_copy_u8(&packet[154], (uint8_t)(app_manager->ais[32].init_duration));
2209  TF_copy_u8(&packet[155], (uint8_t)(app_manager->ais[32].prev));
2210  TF_copy_u8(&packet[156], (uint8_t)(app_manager->ais[32].min));
2211  TF_copy_u8(&packet[157], (uint8_t)(app_manager->ais[32].max));
2212  TF_copy_u8(&packet[158], (uint8_t)(app_manager->ais[33].init_duration));
2213  TF_copy_u8(&packet[159], (uint8_t)(app_manager->ais[33].prev));
2214  TF_copy_u8(&packet[160], (uint8_t)(app_manager->ais[33].min));
2215  TF_copy_u8(&packet[161], (uint8_t)(app_manager->ais[33].max));
2216  TF_copy_u8(&packet[162], (uint8_t)(app_manager->ais[34].init_duration));
2217  TF_copy_u8(&packet[163], (uint8_t)(app_manager->ais[34].prev));
2218  TF_copy_u8(&packet[164], (uint8_t)(app_manager->ais[34].min));
2219  TF_copy_u8(&packet[165], (uint8_t)(app_manager->ais[34].max));
2220  TF_copy_u8(&packet[166], (uint8_t)(app_manager->ais[35].init_duration));
2221  TF_copy_u8(&packet[167], (uint8_t)(app_manager->ais[35].prev));
2222  TF_copy_u8(&packet[168], (uint8_t)(app_manager->ais[35].min));
2223  TF_copy_u8(&packet[169], (uint8_t)(app_manager->ais[35].max));
2224  TF_copy_u8(&packet[170], (uint8_t)(app_manager->ais[36].init_duration));
2225  TF_copy_u8(&packet[171], (uint8_t)(app_manager->ais[36].prev));
2226  TF_copy_u8(&packet[172], (uint8_t)(app_manager->ais[36].min));
2227  TF_copy_u8(&packet[173], (uint8_t)(app_manager->ais[36].max));
2228  TF_copy_u8(&packet[174], (uint8_t)(app_manager->ais[37].init_duration));
2229  TF_copy_u8(&packet[175], (uint8_t)(app_manager->ais[37].prev));
2230  TF_copy_u8(&packet[176], (uint8_t)(app_manager->ais[37].min));
2231  TF_copy_u8(&packet[177], (uint8_t)(app_manager->ais[37].max));
2232  TF_copy_u8(&packet[178], (uint8_t)(app_manager->ais[38].init_duration));
2233  TF_copy_u8(&packet[179], (uint8_t)(app_manager->ais[38].prev));
2234  TF_copy_u8(&packet[180], (uint8_t)(app_manager->ais[38].min));
2235  TF_copy_u8(&packet[181], (uint8_t)(app_manager->ais[38].max));
2236  TF_copy_u8(&packet[182], (uint8_t)(app_manager->ais[39].init_duration));
2237  TF_copy_u8(&packet[183], (uint8_t)(app_manager->ais[39].prev));
2238  TF_copy_u8(&packet[184], (uint8_t)(app_manager->ais[39].min));
2239  TF_copy_u8(&packet[185], (uint8_t)(app_manager->ais[39].max));
2240  TF_copy_u8(&packet[186], (uint8_t)(app_manager->ais[40].init_duration));
2241  TF_copy_u8(&packet[187], (uint8_t)(app_manager->ais[40].prev));
2242  TF_copy_u8(&packet[188], (uint8_t)(app_manager->ais[40].min));
2243  TF_copy_u8(&packet[189], (uint8_t)(app_manager->ais[40].max));
2244  TF_copy_u8(&packet[190], (uint8_t)(app_manager->ais[41].init_duration));
2245  TF_copy_u8(&packet[191], (uint8_t)(app_manager->ais[41].prev));
2246  TF_copy_u8(&packet[192], (uint8_t)(app_manager->ais[41].min));
2247  TF_copy_u8(&packet[193], (uint8_t)(app_manager->ais[41].max));
2248  TF_copy_u8(&packet[194], (uint8_t)(app_manager->ais[42].init_duration));
2249  TF_copy_u8(&packet[195], (uint8_t)(app_manager->ais[42].prev));
2250  TF_copy_u8(&packet[196], (uint8_t)(app_manager->ais[42].min));
2251  TF_copy_u8(&packet[197], (uint8_t)(app_manager->ais[42].max));
2252  TF_copy_u8(&packet[198], (uint8_t)(app_manager->ais[43].init_duration));
2253  TF_copy_u8(&packet[199], (uint8_t)(app_manager->ais[43].prev));
2254  TF_copy_u8(&packet[200], (uint8_t)(app_manager->ais[43].min));
2255  TF_copy_u8(&packet[201], (uint8_t)(app_manager->ais[43].max));
2256  TF_copy_u8(&packet[202], (uint8_t)(app_manager->ais[44].init_duration));
2257  TF_copy_u8(&packet[203], (uint8_t)(app_manager->ais[44].prev));
2258  TF_copy_u8(&packet[204], (uint8_t)(app_manager->ais[44].min));
2259  TF_copy_u8(&packet[205], (uint8_t)(app_manager->ais[44].max));
2260  TF_copy_u8(&packet[206], (uint8_t)(app_manager->ais[45].init_duration));
2261  TF_copy_u8(&packet[207], (uint8_t)(app_manager->ais[45].prev));
2262  TF_copy_u8(&packet[208], (uint8_t)(app_manager->ais[45].min));
2263  TF_copy_u8(&packet[209], (uint8_t)(app_manager->ais[45].max));
2264  TF_copy_u8(&packet[210], (uint8_t)(app_manager->ais[46].init_duration));
2265  TF_copy_u8(&packet[211], (uint8_t)(app_manager->ais[46].prev));
2266  TF_copy_u8(&packet[212], (uint8_t)(app_manager->ais[46].min));
2267  TF_copy_u8(&packet[213], (uint8_t)(app_manager->ais[46].max));
2268  TF_copy_u8(&packet[214], (uint8_t)(app_manager->ais[47].init_duration));
2269  TF_copy_u8(&packet[215], (uint8_t)(app_manager->ais[47].prev));
2270  TF_copy_u8(&packet[216], (uint8_t)(app_manager->ais[47].min));
2271  TF_copy_u8(&packet[217], (uint8_t)(app_manager->ais[47].max));
2272  TF_copy_u8(&packet[218], (uint8_t)(app_manager->ais[48].init_duration));
2273  TF_copy_u8(&packet[219], (uint8_t)(app_manager->ais[48].prev));
2274  TF_copy_u8(&packet[220], (uint8_t)(app_manager->ais[48].min));
2275  TF_copy_u8(&packet[221], (uint8_t)(app_manager->ais[48].max));
2276  TF_copy_u8(&packet[222], (uint8_t)(app_manager->ais[49].init_duration));
2277  TF_copy_u8(&packet[223], (uint8_t)(app_manager->ais[49].prev));
2278  TF_copy_u8(&packet[224], (uint8_t)(app_manager->ais[49].min));
2279  TF_copy_u8(&packet[225], (uint8_t)(app_manager->ais[49].max));
2280  TF_copy_u8(&packet[226], (uint8_t)(app_manager->ais[50].init_duration));
2281  TF_copy_u8(&packet[227], (uint8_t)(app_manager->ais[50].prev));
2282  TF_copy_u8(&packet[228], (uint8_t)(app_manager->ais[50].min));
2283  TF_copy_u8(&packet[229], (uint8_t)(app_manager->ais[50].max));
2284  TF_copy_u8(&packet[230], (uint8_t)(app_manager->ais[51].init_duration));
2285  TF_copy_u8(&packet[231], (uint8_t)(app_manager->ais[51].prev));
2286  TF_copy_u8(&packet[232], (uint8_t)(app_manager->ais[51].min));
2287  TF_copy_u8(&packet[233], (uint8_t)(app_manager->ais[51].max));
2288  TF_copy_u8(&packet[234], (uint8_t)(app_manager->ais[52].init_duration));
2289  TF_copy_u8(&packet[235], (uint8_t)(app_manager->ais[52].prev));
2290  TF_copy_u8(&packet[236], (uint8_t)(app_manager->ais[52].min));
2291  TF_copy_u8(&packet[237], (uint8_t)(app_manager->ais[52].max));
2292  TF_copy_u8(&packet[238], (uint8_t)(app_manager->ais[53].init_duration));
2293  TF_copy_u8(&packet[239], (uint8_t)(app_manager->ais[53].prev));
2294  TF_copy_u8(&packet[240], (uint8_t)(app_manager->ais[53].min));
2295  TF_copy_u8(&packet[241], (uint8_t)(app_manager->ais[53].max));
2296  TF_copy_u8(&packet[242], (uint8_t)(app_manager->ais[54].init_duration));
2297  TF_copy_u8(&packet[243], (uint8_t)(app_manager->ais[54].prev));
2298  TF_copy_u8(&packet[244], (uint8_t)(app_manager->ais[54].min));
2299  TF_copy_u8(&packet[245], (uint8_t)(app_manager->ais[54].max));
2300  TF_copy_u8(&packet[246], (uint8_t)(app_manager->ais[55].init_duration));
2301  TF_copy_u8(&packet[247], (uint8_t)(app_manager->ais[55].prev));
2302  TF_copy_u8(&packet[248], (uint8_t)(app_manager->ais[55].min));
2303  TF_copy_u8(&packet[249], (uint8_t)(app_manager->ais[55].max));
2304  TF_copy_u8(&packet[250], (uint8_t)(app_manager->ais[56].init_duration));
2305  TF_copy_u8(&packet[251], (uint8_t)(app_manager->ais[56].prev));
2306  TF_copy_u8(&packet[252], (uint8_t)(app_manager->ais[56].min));
2307  TF_copy_u8(&packet[253], (uint8_t)(app_manager->ais[56].max));
2308  TF_copy_u8(&packet[254], (uint8_t)(app_manager->ais[57].init_duration));
2309  TF_copy_u8(&packet[255], (uint8_t)(app_manager->ais[57].prev));
2310  TF_copy_u8(&packet[256], (uint8_t)(app_manager->ais[57].min));
2311  TF_copy_u8(&packet[257], (uint8_t)(app_manager->ais[57].max));
2312  TF_copy_u8(&packet[258], (uint8_t)(app_manager->ais[58].init_duration));
2313  TF_copy_u8(&packet[259], (uint8_t)(app_manager->ais[58].prev));
2314  TF_copy_u8(&packet[260], (uint8_t)(app_manager->ais[58].min));
2315  TF_copy_u8(&packet[261], (uint8_t)(app_manager->ais[58].max));
2316  TF_copy_u8(&packet[262], (uint8_t)(app_manager->ais[59].init_duration));
2317  TF_copy_u8(&packet[263], (uint8_t)(app_manager->ais[59].prev));
2318  TF_copy_u8(&packet[264], (uint8_t)(app_manager->ais[59].min));
2319  TF_copy_u8(&packet[265], (uint8_t)(app_manager->ais[59].max));
2320  TF_copy_u8(&packet[266], (uint8_t)(app_manager->ais[60].init_duration));
2321  TF_copy_u8(&packet[267], (uint8_t)(app_manager->ais[60].prev));
2322  TF_copy_u8(&packet[268], (uint8_t)(app_manager->ais[60].min));
2323  TF_copy_u8(&packet[269], (uint8_t)(app_manager->ais[60].max));
2324  TF_copy_u8(&packet[270], (uint8_t)(app_manager->ais[61].init_duration));
2325  TF_copy_u8(&packet[271], (uint8_t)(app_manager->ais[61].prev));
2326  TF_copy_u8(&packet[272], (uint8_t)(app_manager->ais[61].min));
2327  TF_copy_u8(&packet[273], (uint8_t)(app_manager->ais[61].max));
2328  TF_copy_u8(&packet[274], (uint8_t)(app_manager->ais[62].init_duration));
2329  TF_copy_u8(&packet[275], (uint8_t)(app_manager->ais[62].prev));
2330  TF_copy_u8(&packet[276], (uint8_t)(app_manager->ais[62].min));
2331  TF_copy_u8(&packet[277], (uint8_t)(app_manager->ais[62].max));
2332  TF_copy_u8(&packet[278], (uint8_t)(app_manager->ais[63].init_duration));
2333  TF_copy_u8(&packet[279], (uint8_t)(app_manager->ais[63].prev));
2334  TF_copy_u8(&packet[280], (uint8_t)(app_manager->ais[63].min));
2335  TF_copy_u8(&packet[281], (uint8_t)(app_manager->ais[63].max));
2336  TF_copy_u8(&packet[282], (uint8_t)(app_manager->ais[64].init_duration));
2337  TF_copy_u8(&packet[283], (uint8_t)(app_manager->ais[64].prev));
2338  TF_copy_u8(&packet[284], (uint8_t)(app_manager->ais[64].min));
2339  TF_copy_u8(&packet[285], (uint8_t)(app_manager->ais[64].max));
2340  TF_copy_u8(&packet[286], (uint8_t)(app_manager->ais[65].init_duration));
2341  TF_copy_u8(&packet[287], (uint8_t)(app_manager->ais[65].prev));
2342  TF_copy_u8(&packet[288], (uint8_t)(app_manager->ais[65].min));
2343  TF_copy_u8(&packet[289], (uint8_t)(app_manager->ais[65].max));
2344  TF_copy_u8(&packet[290], (uint8_t)(app_manager->ais[66].init_duration));
2345  TF_copy_u8(&packet[291], (uint8_t)(app_manager->ais[66].prev));
2346  TF_copy_u8(&packet[292], (uint8_t)(app_manager->ais[66].min));
2347  TF_copy_u8(&packet[293], (uint8_t)(app_manager->ais[66].max));
2348  TF_copy_u8(&packet[294], (uint8_t)(app_manager->ais[67].init_duration));
2349  TF_copy_u8(&packet[295], (uint8_t)(app_manager->ais[67].prev));
2350  TF_copy_u8(&packet[296], (uint8_t)(app_manager->ais[67].min));
2351  TF_copy_u8(&packet[297], (uint8_t)(app_manager->ais[67].max));
2352  TF_copy_u8(&packet[298], (uint8_t)(app_manager->ais[68].init_duration));
2353  TF_copy_u8(&packet[299], (uint8_t)(app_manager->ais[68].prev));
2354  TF_copy_u8(&packet[300], (uint8_t)(app_manager->ais[68].min));
2355  TF_copy_u8(&packet[301], (uint8_t)(app_manager->ais[68].max));
2356  TF_copy_u8(&packet[302], (uint8_t)(app_manager->ais[69].init_duration));
2357  TF_copy_u8(&packet[303], (uint8_t)(app_manager->ais[69].prev));
2358  TF_copy_u8(&packet[304], (uint8_t)(app_manager->ais[69].min));
2359  TF_copy_u8(&packet[305], (uint8_t)(app_manager->ais[69].max));
2360  TF_copy_u8(&packet[306], (uint8_t)(app_manager->ais[70].init_duration));
2361  TF_copy_u8(&packet[307], (uint8_t)(app_manager->ais[70].prev));
2362  TF_copy_u8(&packet[308], (uint8_t)(app_manager->ais[70].min));
2363  TF_copy_u8(&packet[309], (uint8_t)(app_manager->ais[70].max));
2364  TF_copy_u8(&packet[310], (uint8_t)(app_manager->ais[71].init_duration));
2365  TF_copy_u8(&packet[311], (uint8_t)(app_manager->ais[71].prev));
2366  TF_copy_u8(&packet[312], (uint8_t)(app_manager->ais[71].min));
2367  TF_copy_u8(&packet[313], (uint8_t)(app_manager->ais[71].max));
2368  TF_copy_u8(&packet[314], (uint8_t)(app_manager->ais[72].init_duration));
2369  TF_copy_u8(&packet[315], (uint8_t)(app_manager->ais[72].prev));
2370  TF_copy_u8(&packet[316], (uint8_t)(app_manager->ais[72].min));
2371  TF_copy_u8(&packet[317], (uint8_t)(app_manager->ais[72].max));
2372  TF_copy_u8(&packet[318], (uint8_t)(app_manager->ais[73].init_duration));
2373  TF_copy_u8(&packet[319], (uint8_t)(app_manager->ais[73].prev));
2374  TF_copy_u8(&packet[320], (uint8_t)(app_manager->ais[73].min));
2375  TF_copy_u8(&packet[321], (uint8_t)(app_manager->ais[73].max));
2376  TF_copy_u8(&packet[322], (uint8_t)(app_manager->ais[74].init_duration));
2377  TF_copy_u8(&packet[323], (uint8_t)(app_manager->ais[74].prev));
2378  TF_copy_u8(&packet[324], (uint8_t)(app_manager->ais[74].min));
2379  TF_copy_u8(&packet[325], (uint8_t)(app_manager->ais[74].max));
2380  TF_copy_u8(&packet[326], (uint8_t)(app_manager->ais[75].init_duration));
2381  TF_copy_u8(&packet[327], (uint8_t)(app_manager->ais[75].prev));
2382  TF_copy_u8(&packet[328], (uint8_t)(app_manager->ais[75].min));
2383  TF_copy_u8(&packet[329], (uint8_t)(app_manager->ais[75].max));
2384  TF_copy_u8(&packet[330], (uint8_t)(app_manager->ais[76].init_duration));
2385  TF_copy_u8(&packet[331], (uint8_t)(app_manager->ais[76].prev));
2386  TF_copy_u8(&packet[332], (uint8_t)(app_manager->ais[76].min));
2387  TF_copy_u8(&packet[333], (uint8_t)(app_manager->ais[76].max));
2388  TF_copy_u8(&packet[334], (uint8_t)(app_manager->ais[77].init_duration));
2389  TF_copy_u8(&packet[335], (uint8_t)(app_manager->ais[77].prev));
2390  TF_copy_u8(&packet[336], (uint8_t)(app_manager->ais[77].min));
2391  TF_copy_u8(&packet[337], (uint8_t)(app_manager->ais[77].max));
2392  TF_copy_u8(&packet[338], (uint8_t)(app_manager->ais[78].init_duration));
2393  TF_copy_u8(&packet[339], (uint8_t)(app_manager->ais[78].prev));
2394  TF_copy_u8(&packet[340], (uint8_t)(app_manager->ais[78].min));
2395  TF_copy_u8(&packet[341], (uint8_t)(app_manager->ais[78].max));
2396  TF_copy_u8(&packet[342], (uint8_t)(app_manager->ais[79].init_duration));
2397  TF_copy_u8(&packet[343], (uint8_t)(app_manager->ais[79].prev));
2398  TF_copy_u8(&packet[344], (uint8_t)(app_manager->ais[79].min));
2399  TF_copy_u8(&packet[345], (uint8_t)(app_manager->ais[79].max));
2400  TF_copy_u8(&packet[346], (uint8_t)(app_manager->ais[80].init_duration));
2401  TF_copy_u8(&packet[347], (uint8_t)(app_manager->ais[80].prev));
2402  TF_copy_u8(&packet[348], (uint8_t)(app_manager->ais[80].min));
2403  TF_copy_u8(&packet[349], (uint8_t)(app_manager->ais[80].max));
2404  TF_copy_u8(&packet[350], (uint8_t)(app_manager->ais[81].init_duration));
2405  TF_copy_u8(&packet[351], (uint8_t)(app_manager->ais[81].prev));
2406  TF_copy_u8(&packet[352], (uint8_t)(app_manager->ais[81].min));
2407  TF_copy_u8(&packet[353], (uint8_t)(app_manager->ais[81].max));
2408  TF_copy_u8(&packet[354], (uint8_t)(app_manager->ais[82].init_duration));
2409  TF_copy_u8(&packet[355], (uint8_t)(app_manager->ais[82].prev));
2410  TF_copy_u8(&packet[356], (uint8_t)(app_manager->ais[82].min));
2411  TF_copy_u8(&packet[357], (uint8_t)(app_manager->ais[82].max));
2412  TF_copy_u8(&packet[358], (uint8_t)(app_manager->ais[83].init_duration));
2413  TF_copy_u8(&packet[359], (uint8_t)(app_manager->ais[83].prev));
2414  TF_copy_u8(&packet[360], (uint8_t)(app_manager->ais[83].min));
2415  TF_copy_u8(&packet[361], (uint8_t)(app_manager->ais[83].max));
2416  TF_copy_u8(&packet[362], (uint8_t)(app_manager->ais[84].init_duration));
2417  TF_copy_u8(&packet[363], (uint8_t)(app_manager->ais[84].prev));
2418  TF_copy_u8(&packet[364], (uint8_t)(app_manager->ais[84].min));
2419  TF_copy_u8(&packet[365], (uint8_t)(app_manager->ais[84].max));
2420  TF_copy_u8(&packet[366], (uint8_t)(app_manager->ais[85].init_duration));
2421  TF_copy_u8(&packet[367], (uint8_t)(app_manager->ais[85].prev));
2422  TF_copy_u8(&packet[368], (uint8_t)(app_manager->ais[85].min));
2423  TF_copy_u8(&packet[369], (uint8_t)(app_manager->ais[85].max));
2424  TF_copy_u8(&packet[370], (uint8_t)(app_manager->ais[86].init_duration));
2425  TF_copy_u8(&packet[371], (uint8_t)(app_manager->ais[86].prev));
2426  TF_copy_u8(&packet[372], (uint8_t)(app_manager->ais[86].min));
2427  TF_copy_u8(&packet[373], (uint8_t)(app_manager->ais[86].max));
2428  TF_copy_u8(&packet[374], (uint8_t)(app_manager->ais[87].init_duration));
2429  TF_copy_u8(&packet[375], (uint8_t)(app_manager->ais[87].prev));
2430  TF_copy_u8(&packet[376], (uint8_t)(app_manager->ais[87].min));
2431  TF_copy_u8(&packet[377], (uint8_t)(app_manager->ais[87].max));
2432  TF_copy_u8(&packet[378], (uint8_t)(app_manager->ais[88].init_duration));
2433  TF_copy_u8(&packet[379], (uint8_t)(app_manager->ais[88].prev));
2434  TF_copy_u8(&packet[380], (uint8_t)(app_manager->ais[88].min));
2435  TF_copy_u8(&packet[381], (uint8_t)(app_manager->ais[88].max));
2436  TF_copy_u8(&packet[382], (uint8_t)(app_manager->ais[89].init_duration));
2437  TF_copy_u8(&packet[383], (uint8_t)(app_manager->ais[89].prev));
2438  TF_copy_u8(&packet[384], (uint8_t)(app_manager->ais[89].min));
2439  TF_copy_u8(&packet[385], (uint8_t)(app_manager->ais[89].max));
2440  TF_copy_u8(&packet[386], (uint8_t)(app_manager->ais[90].init_duration));
2441  TF_copy_u8(&packet[387], (uint8_t)(app_manager->ais[90].prev));
2442  TF_copy_u8(&packet[388], (uint8_t)(app_manager->ais[90].min));
2443  TF_copy_u8(&packet[389], (uint8_t)(app_manager->ais[90].max));
2444  TF_copy_u8(&packet[390], (uint8_t)(app_manager->ais[91].init_duration));
2445  TF_copy_u8(&packet[391], (uint8_t)(app_manager->ais[91].prev));
2446  TF_copy_u8(&packet[392], (uint8_t)(app_manager->ais[91].min));
2447  TF_copy_u8(&packet[393], (uint8_t)(app_manager->ais[91].max));
2448  TF_copy_u8(&packet[394], (uint8_t)(app_manager->ais[92].init_duration));
2449  TF_copy_u8(&packet[395], (uint8_t)(app_manager->ais[92].prev));
2450  TF_copy_u8(&packet[396], (uint8_t)(app_manager->ais[92].min));
2451  TF_copy_u8(&packet[397], (uint8_t)(app_manager->ais[92].max));
2452  TF_copy_u8(&packet[398], (uint8_t)(app_manager->ais[93].init_duration));
2453  TF_copy_u8(&packet[399], (uint8_t)(app_manager->ais[93].prev));
2454  TF_copy_u8(&packet[400], (uint8_t)(app_manager->ais[93].min));
2455  TF_copy_u8(&packet[401], (uint8_t)(app_manager->ais[93].max));
2456  TF_copy_u8(&packet[402], (uint8_t)(app_manager->ais[94].init_duration));
2457  TF_copy_u8(&packet[403], (uint8_t)(app_manager->ais[94].prev));
2458  TF_copy_u8(&packet[404], (uint8_t)(app_manager->ais[94].min));
2459  TF_copy_u8(&packet[405], (uint8_t)(app_manager->ais[94].max));
2460  TF_copy_u8(&packet[406], (uint8_t)(app_manager->ais[95].init_duration));
2461  TF_copy_u8(&packet[407], (uint8_t)(app_manager->ais[95].prev));
2462  TF_copy_u8(&packet[408], (uint8_t)(app_manager->ais[95].min));
2463  TF_copy_u8(&packet[409], (uint8_t)(app_manager->ais[95].max));
2464  TF_copy_u8(&packet[410], (uint8_t)(app_manager->ais[96].init_duration));
2465  TF_copy_u8(&packet[411], (uint8_t)(app_manager->ais[96].prev));
2466  TF_copy_u8(&packet[412], (uint8_t)(app_manager->ais[96].min));
2467  TF_copy_u8(&packet[413], (uint8_t)(app_manager->ais[96].max));
2468  TF_copy_u8(&packet[414], (uint8_t)(app_manager->ais[97].init_duration));
2469  TF_copy_u8(&packet[415], (uint8_t)(app_manager->ais[97].prev));
2470  TF_copy_u8(&packet[416], (uint8_t)(app_manager->ais[97].min));
2471  TF_copy_u8(&packet[417], (uint8_t)(app_manager->ais[97].max));
2472  TF_copy_u8(&packet[418], (uint8_t)(app_manager->ais[98].init_duration));
2473  TF_copy_u8(&packet[419], (uint8_t)(app_manager->ais[98].prev));
2474  TF_copy_u8(&packet[420], (uint8_t)(app_manager->ais[98].min));
2475  TF_copy_u8(&packet[421], (uint8_t)(app_manager->ais[98].max));
2476  TF_copy_u8(&packet[422], (uint8_t)(app_manager->ais[99].init_duration));
2477  TF_copy_u8(&packet[423], (uint8_t)(app_manager->ais[99].prev));
2478  TF_copy_u8(&packet[424], (uint8_t)(app_manager->ais[99].min));
2479  TF_copy_u8(&packet[425], (uint8_t)(app_manager->ais[99].max));
2480 #endif
2481 
2482  *len = 426;
2483  return TF_TLM_FUNC_ACK_SUCCESS;
2484 }
2485 
2486 static TF_TLM_FUNC_ACK Tlm_EL_(uint8_t* packet, uint16_t* len, uint16_t max_len)
2487 {
2488  if (412 > max_len) return TF_TLM_FUNC_ACK_TOO_SHORT_LEN;
2489 
2490 #ifndef BUILD_SETTINGS_FAST_BUILD
2497  TF_copy_u8(&packet[50], event_logger->tlm_info.tlog.page_no);
2498  TF_copy_u8(&packet[51], (uint8_t)event_logger->tlm_info.tlog.err_level);
2499  TF_copy_u8(&packet[52], event_logger->tlm_info.clog.page_no);
2500  TF_copy_u8(&packet[53], (uint8_t)event_logger->tlm_info.clog.err_level);
2501  TF_copy_u32(&packet[54], (uint32_t)event_logger->latest_event.group);
2502  TF_copy_u32(&packet[58], event_logger->latest_event.local);
2503  TF_copy_u8(&packet[62], (uint8_t)event_logger->latest_event.err_level);
2505  TF_copy_u8(&packet[67], (uint8_t)event_logger->latest_event.time.step);
2506  TF_copy_u32(&packet[68], event_logger->latest_event.note);
2507  TF_copy_u8(&packet[72], event_logger->is_logging_enable[0]);
2508  TF_copy_u8(&packet[73], event_logger->is_logging_enable[1]);
2509  TF_copy_u8(&packet[74], event_logger->is_logging_enable[2]);
2510  TF_copy_u8(&packet[75], event_logger->is_logging_enable[3]);
2511  TF_copy_u8(&packet[76], event_logger->is_logging_enable[4]);
2512  TF_copy_u8(&packet[77], event_logger->is_logging_enable[5]);
2513  TF_copy_u8(&packet[78], event_logger->is_logging_enable[6]);
2514  TF_copy_u8(&packet[79], event_logger->is_logging_enable[7]);
2515  TF_copy_u8(&packet[80], event_logger->is_logging_enable[8]);
2516  TF_copy_u8(&packet[81], event_logger->is_logging_enable[9]);
2517  TF_copy_u8(&packet[82], event_logger->is_logging_enable[10]);
2518  TF_copy_u8(&packet[83], event_logger->is_logging_enable[11]);
2519  TF_copy_u8(&packet[84], event_logger->is_logging_enable[12]);
2520  TF_copy_u8(&packet[85], event_logger->is_logging_enable[13]);
2521  TF_copy_u8(&packet[86], event_logger->is_logging_enable[14]);
2522  TF_copy_u8(&packet[87], event_logger->is_logging_enable[15]);
2523  TF_copy_u8(&packet[88], event_logger->is_logging_enable[16]);
2524  TF_copy_u8(&packet[89], event_logger->is_logging_enable[17]);
2525  TF_copy_u8(&packet[90], event_logger->is_logging_enable[18]);
2526  TF_copy_u8(&packet[91], event_logger->is_logging_enable[19]);
2527  TF_copy_u8(&packet[92], event_logger->is_logging_enable[20]);
2528  TF_copy_u8(&packet[93], event_logger->is_logging_enable[21]);
2529  TF_copy_u8(&packet[94], event_logger->is_logging_enable[22]);
2530  TF_copy_u8(&packet[95], event_logger->is_logging_enable[23]);
2531  TF_copy_u8(&packet[96], event_logger->is_logging_enable[24]);
2532  TF_copy_u8(&packet[97], event_logger->is_logging_enable[25]);
2533  TF_copy_u8(&packet[98], event_logger->is_logging_enable[26]);
2534  TF_copy_u8(&packet[99], event_logger->is_logging_enable[27]);
2535  TF_copy_u8(&packet[100], event_logger->is_logging_enable[28]);
2536  TF_copy_u8(&packet[101], event_logger->is_logging_enable[29]);
2537  TF_copy_u8(&packet[102], event_logger->is_logging_enable[30]);
2538  TF_copy_u8(&packet[103], event_logger->is_logging_enable[31]);
2539  TF_copy_u8(&packet[104], (uint8_t)EL_get_the_nth_tlog_from_the_latest(EL_ERROR_LEVEL_HIGH, 0)->group);
2541  TF_copy_u32(&packet[109], EL_get_the_nth_tlog_from_the_latest(EL_ERROR_LEVEL_HIGH, 0)->time.total_cycle);
2542  TF_copy_u8(&packet[113], (uint8_t)EL_get_the_nth_tlog_from_the_latest(EL_ERROR_LEVEL_HIGH, 0)->time.step);
2544  TF_copy_u8(&packet[118], (uint8_t)EL_get_the_nth_tlog_from_the_latest(EL_ERROR_LEVEL_HIGH, 1)->group);
2546  TF_copy_u32(&packet[123], EL_get_the_nth_tlog_from_the_latest(EL_ERROR_LEVEL_HIGH, 1)->time.total_cycle);
2547  TF_copy_u8(&packet[127], (uint8_t)EL_get_the_nth_tlog_from_the_latest(EL_ERROR_LEVEL_HIGH, 1)->time.step);
2549  TF_copy_u8(&packet[132], (uint8_t)EL_get_the_nth_tlog_from_the_latest(EL_ERROR_LEVEL_HIGH, 2)->group);
2551  TF_copy_u32(&packet[137], EL_get_the_nth_tlog_from_the_latest(EL_ERROR_LEVEL_HIGH, 2)->time.total_cycle);
2552  TF_copy_u8(&packet[141], (uint8_t)EL_get_the_nth_tlog_from_the_latest(EL_ERROR_LEVEL_HIGH, 2)->time.step);
2554  TF_copy_u8(&packet[146], (uint8_t)EL_get_the_nth_tlog_from_the_latest(EL_ERROR_LEVEL_HIGH, 3)->group);
2556  TF_copy_u32(&packet[151], EL_get_the_nth_tlog_from_the_latest(EL_ERROR_LEVEL_HIGH, 3)->time.total_cycle);
2557  TF_copy_u8(&packet[155], (uint8_t)EL_get_the_nth_tlog_from_the_latest(EL_ERROR_LEVEL_HIGH, 3)->time.step);
2559  TF_copy_u8(&packet[160], (uint8_t)EL_get_the_nth_tlog_from_the_latest(EL_ERROR_LEVEL_MIDDLE, 0)->group);
2561  TF_copy_u32(&packet[165], EL_get_the_nth_tlog_from_the_latest(EL_ERROR_LEVEL_MIDDLE, 0)->time.total_cycle);
2562  TF_copy_u8(&packet[169], (uint8_t)EL_get_the_nth_tlog_from_the_latest(EL_ERROR_LEVEL_MIDDLE, 0)->time.step);
2564  TF_copy_u8(&packet[174], (uint8_t)EL_get_the_nth_tlog_from_the_latest(EL_ERROR_LEVEL_MIDDLE, 1)->group);
2566  TF_copy_u32(&packet[179], EL_get_the_nth_tlog_from_the_latest(EL_ERROR_LEVEL_MIDDLE, 1)->time.total_cycle);
2567  TF_copy_u8(&packet[183], (uint8_t)EL_get_the_nth_tlog_from_the_latest(EL_ERROR_LEVEL_MIDDLE, 1)->time.step);
2569  TF_copy_u8(&packet[188], (uint8_t)EL_get_the_nth_tlog_from_the_latest(EL_ERROR_LEVEL_MIDDLE, 2)->group);
2571  TF_copy_u32(&packet[193], EL_get_the_nth_tlog_from_the_latest(EL_ERROR_LEVEL_MIDDLE, 2)->time.total_cycle);
2572  TF_copy_u8(&packet[197], (uint8_t)EL_get_the_nth_tlog_from_the_latest(EL_ERROR_LEVEL_MIDDLE, 2)->time.step);
2574  TF_copy_u8(&packet[202], (uint8_t)EL_get_the_nth_tlog_from_the_latest(EL_ERROR_LEVEL_MIDDLE, 3)->group);
2576  TF_copy_u32(&packet[207], EL_get_the_nth_tlog_from_the_latest(EL_ERROR_LEVEL_MIDDLE, 3)->time.total_cycle);
2577  TF_copy_u8(&packet[211], (uint8_t)EL_get_the_nth_tlog_from_the_latest(EL_ERROR_LEVEL_MIDDLE, 3)->time.step);
2579  TF_copy_u8(&packet[216], (uint8_t)EL_get_the_nth_tlog_from_the_latest(EL_ERROR_LEVEL_LOW, 0)->group);
2581  TF_copy_u32(&packet[221], EL_get_the_nth_tlog_from_the_latest(EL_ERROR_LEVEL_LOW, 0)->time.total_cycle);
2582  TF_copy_u8(&packet[225], (uint8_t)EL_get_the_nth_tlog_from_the_latest(EL_ERROR_LEVEL_LOW, 0)->time.step);
2584  TF_copy_u8(&packet[230], (uint8_t)EL_get_the_nth_tlog_from_the_latest(EL_ERROR_LEVEL_LOW, 1)->group);
2586  TF_copy_u32(&packet[235], EL_get_the_nth_tlog_from_the_latest(EL_ERROR_LEVEL_LOW, 1)->time.total_cycle);
2587  TF_copy_u8(&packet[239], (uint8_t)EL_get_the_nth_tlog_from_the_latest(EL_ERROR_LEVEL_LOW, 1)->time.step);
2589  TF_copy_u8(&packet[244], (uint8_t)EL_get_the_nth_tlog_from_the_latest(EL_ERROR_LEVEL_LOW, 2)->group);
2591  TF_copy_u32(&packet[249], EL_get_the_nth_tlog_from_the_latest(EL_ERROR_LEVEL_LOW, 2)->time.total_cycle);
2592  TF_copy_u8(&packet[253], (uint8_t)EL_get_the_nth_tlog_from_the_latest(EL_ERROR_LEVEL_LOW, 2)->time.step);
2594  TF_copy_u8(&packet[258], (uint8_t)EL_get_the_nth_tlog_from_the_latest(EL_ERROR_LEVEL_LOW, 3)->group);
2596  TF_copy_u32(&packet[263], EL_get_the_nth_tlog_from_the_latest(EL_ERROR_LEVEL_LOW, 3)->time.total_cycle);
2597  TF_copy_u8(&packet[267], (uint8_t)EL_get_the_nth_tlog_from_the_latest(EL_ERROR_LEVEL_LOW, 3)->time.step);
2599  TF_copy_u8(&packet[272], (uint8_t)EL_get_the_nth_tlog_from_the_latest(EL_ERROR_LEVEL_LOW, 4)->group);
2601  TF_copy_u32(&packet[277], EL_get_the_nth_tlog_from_the_latest(EL_ERROR_LEVEL_LOW, 4)->time.total_cycle);
2602  TF_copy_u8(&packet[281], (uint8_t)EL_get_the_nth_tlog_from_the_latest(EL_ERROR_LEVEL_LOW, 4)->time.step);
2604  TF_copy_u8(&packet[286], (uint8_t)EL_get_the_nth_tlog_from_the_latest(EL_ERROR_LEVEL_LOW, 5)->group);
2606  TF_copy_u32(&packet[291], EL_get_the_nth_tlog_from_the_latest(EL_ERROR_LEVEL_LOW, 5)->time.total_cycle);
2607  TF_copy_u8(&packet[295], (uint8_t)EL_get_the_nth_tlog_from_the_latest(EL_ERROR_LEVEL_LOW, 5)->time.step);
2609  TF_copy_u8(&packet[300], (uint8_t)EL_get_the_nth_tlog_from_the_latest(EL_ERROR_LEVEL_EL, 0)->group);
2611  TF_copy_u32(&packet[305], EL_get_the_nth_tlog_from_the_latest(EL_ERROR_LEVEL_EL, 0)->time.total_cycle);
2612  TF_copy_u8(&packet[309], (uint8_t)EL_get_the_nth_tlog_from_the_latest(EL_ERROR_LEVEL_EL, 0)->time.step);
2614  TF_copy_u8(&packet[314], (uint8_t)EL_get_the_nth_tlog_from_the_latest(EL_ERROR_LEVEL_EL, 1)->group);
2616  TF_copy_u32(&packet[319], EL_get_the_nth_tlog_from_the_latest(EL_ERROR_LEVEL_EL, 1)->time.total_cycle);
2617  TF_copy_u8(&packet[323], (uint8_t)EL_get_the_nth_tlog_from_the_latest(EL_ERROR_LEVEL_EL, 1)->time.step);
2619  TF_copy_u8(&packet[328], (uint8_t)EL_get_the_nth_tlog_from_the_latest(EL_ERROR_LEVEL_EL, 2)->group);
2621  TF_copy_u32(&packet[333], EL_get_the_nth_tlog_from_the_latest(EL_ERROR_LEVEL_EL, 2)->time.total_cycle);
2622  TF_copy_u8(&packet[337], (uint8_t)EL_get_the_nth_tlog_from_the_latest(EL_ERROR_LEVEL_EL, 2)->time.step);
2624  TF_copy_u8(&packet[342], (uint8_t)EL_get_the_nth_tlog_from_the_latest(EL_ERROR_LEVEL_EL, 3)->group);
2626  TF_copy_u32(&packet[347], EL_get_the_nth_tlog_from_the_latest(EL_ERROR_LEVEL_EL, 3)->time.total_cycle);
2627  TF_copy_u8(&packet[351], (uint8_t)EL_get_the_nth_tlog_from_the_latest(EL_ERROR_LEVEL_EL, 3)->time.step);
2629  TF_copy_u8(&packet[356], (uint8_t)EL_get_the_nth_tlog_from_the_latest(EL_ERROR_LEVEL_EH, 0)->group);
2631  TF_copy_u32(&packet[361], EL_get_the_nth_tlog_from_the_latest(EL_ERROR_LEVEL_EH, 0)->time.total_cycle);
2632  TF_copy_u8(&packet[365], (uint8_t)EL_get_the_nth_tlog_from_the_latest(EL_ERROR_LEVEL_EH, 0)->time.step);
2634  TF_copy_u8(&packet[370], (uint8_t)EL_get_the_nth_tlog_from_the_latest(EL_ERROR_LEVEL_EH, 1)->group);
2636  TF_copy_u32(&packet[375], EL_get_the_nth_tlog_from_the_latest(EL_ERROR_LEVEL_EH, 1)->time.total_cycle);
2637  TF_copy_u8(&packet[379], (uint8_t)EL_get_the_nth_tlog_from_the_latest(EL_ERROR_LEVEL_EH, 1)->time.step);
2639  TF_copy_u8(&packet[384], (uint8_t)EL_get_the_nth_tlog_from_the_latest(EL_ERROR_LEVEL_EH, 2)->group);
2641  TF_copy_u32(&packet[389], EL_get_the_nth_tlog_from_the_latest(EL_ERROR_LEVEL_EH, 2)->time.total_cycle);
2642  TF_copy_u8(&packet[393], (uint8_t)EL_get_the_nth_tlog_from_the_latest(EL_ERROR_LEVEL_EH, 2)->time.step);
2644  TF_copy_u8(&packet[398], (uint8_t)EL_get_the_nth_tlog_from_the_latest(EL_ERROR_LEVEL_EH, 3)->group);
2646  TF_copy_u32(&packet[403], EL_get_the_nth_tlog_from_the_latest(EL_ERROR_LEVEL_EH, 3)->time.total_cycle);
2647  TF_copy_u8(&packet[407], (uint8_t)EL_get_the_nth_tlog_from_the_latest(EL_ERROR_LEVEL_EH, 3)->time.step);
2649 #endif
2650 
2651  *len = 412;
2652  return TF_TLM_FUNC_ACK_SUCCESS;
2653 }
2654 
2655 static TF_TLM_FUNC_ACK Tlm_EL_TLOG_(uint8_t* packet, uint16_t* len, uint16_t max_len)
2656 {
2659  const EL_Event* events = event_logger->tlogs[err_level].events;
2660 
2661  if (432 > max_len) return TF_TLM_FUNC_ACK_TOO_SHORT_LEN;
2662 
2663 #ifndef BUILD_SETTINGS_FAST_BUILD
2664  TF_copy_u8(&packet[26], event_logger->tlm_info.tlog.page_no);
2665  TF_copy_u8(&packet[27], (uint8_t)((err_level << 4 & 0xf0) | (event_logger->tlogs[err_level].is_enable_overwrite << 3 & 0x08) | ( event_logger->tlogs[err_level].is_table_overflow << 2 & 0x04)));
2667  TF_copy_u32(&packet[32], event_logger->statistics.record_counters[err_level]);
2668  TF_copy_u16(&packet[36], event_logger->tlogs[err_level].log_capacity);
2669  TF_copy_u16(&packet[38], event_logger->tlogs[err_level].log_wp);
2670  TF_copy_u8(&packet[40], (uint8_t)events[offset+0].group);
2671  TF_copy_u32(&packet[41], events[offset+0].local);
2672  TF_copy_u32(&packet[45], events[offset+0].time.total_cycle);
2673  TF_copy_u8(&packet[49], (uint8_t)events[offset+0].time.step);
2674  TF_copy_u32(&packet[50], events[offset+0].note);
2675  TF_copy_u8(&packet[54], (uint8_t)events[offset+1].group);
2676  TF_copy_u32(&packet[55], events[offset+1].local);
2677  TF_copy_u32(&packet[59], events[offset+1].time.total_cycle);
2678  TF_copy_u8(&packet[63], (uint8_t)events[offset+1].time.step);
2679  TF_copy_u32(&packet[64], events[offset+1].note);
2680  TF_copy_u8(&packet[68], (uint8_t)events[offset+2].group);
2681  TF_copy_u32(&packet[69], events[offset+2].local);
2682  TF_copy_u32(&packet[73], events[offset+2].time.total_cycle);
2683  TF_copy_u8(&packet[77], (uint8_t)events[offset+2].time.step);
2684  TF_copy_u32(&packet[78], events[offset+2].note);
2685  TF_copy_u8(&packet[82], (uint8_t)events[offset+3].group);
2686  TF_copy_u32(&packet[83], events[offset+3].local);
2687  TF_copy_u32(&packet[87], events[offset+3].time.total_cycle);
2688  TF_copy_u8(&packet[91], (uint8_t)events[offset+3].time.step);
2689  TF_copy_u32(&packet[92], events[offset+3].note);
2690  TF_copy_u8(&packet[96], (uint8_t)events[offset+4].group);
2691  TF_copy_u32(&packet[97], events[offset+4].local);
2692  TF_copy_u32(&packet[101], events[offset+4].time.total_cycle);
2693  TF_copy_u8(&packet[105], (uint8_t)events[offset+4].time.step);
2694  TF_copy_u32(&packet[106], events[offset+4].note);
2695  TF_copy_u8(&packet[110], (uint8_t)events[offset+5].group);
2696  TF_copy_u32(&packet[111], events[offset+5].local);
2697  TF_copy_u32(&packet[115], events[offset+5].time.total_cycle);
2698  TF_copy_u8(&packet[119], (uint8_t)events[offset+5].time.step);
2699  TF_copy_u32(&packet[120], events[offset+5].note);
2700  TF_copy_u8(&packet[124], (uint8_t)events[offset+6].group);
2701  TF_copy_u32(&packet[125], events[offset+6].local);
2702  TF_copy_u32(&packet[129], events[offset+6].time.total_cycle);
2703  TF_copy_u8(&packet[133], (uint8_t)events[offset+6].time.step);
2704  TF_copy_u32(&packet[134], events[offset+6].note);
2705  TF_copy_u8(&packet[138], (uint8_t)events[offset+7].group);
2706  TF_copy_u32(&packet[139], events[offset+7].local);
2707  TF_copy_u32(&packet[143], events[offset+7].time.total_cycle);
2708  TF_copy_u8(&packet[147], (uint8_t)events[offset+7].time.step);
2709  TF_copy_u32(&packet[148], events[offset+7].note);
2710  TF_copy_u8(&packet[152], (uint8_t)events[offset+8].group);
2711  TF_copy_u32(&packet[153], events[offset+8].local);
2712  TF_copy_u32(&packet[157], events[offset+8].time.total_cycle);
2713  TF_copy_u8(&packet[161], (uint8_t)events[offset+8].time.step);
2714  TF_copy_u32(&packet[162], events[offset+8].note);
2715  TF_copy_u8(&packet[166], (uint8_t)events[offset+9].group);
2716  TF_copy_u32(&packet[167], events[offset+9].local);
2717  TF_copy_u32(&packet[171], events[offset+9].time.total_cycle);
2718  TF_copy_u8(&packet[175], (uint8_t)events[offset+9].time.step);
2719  TF_copy_u32(&packet[176], events[offset+9].note);
2720  TF_copy_u8(&packet[180], (uint8_t)events[offset+10].group);
2721  TF_copy_u32(&packet[181], events[offset+10].local);
2722  TF_copy_u32(&packet[185], events[offset+10].time.total_cycle);
2723  TF_copy_u8(&packet[189], (uint8_t)events[offset+10].time.step);
2724  TF_copy_u32(&packet[190], events[offset+10].note);
2725  TF_copy_u8(&packet[194], (uint8_t)events[offset+11].group);
2726  TF_copy_u32(&packet[195], events[offset+11].local);
2727  TF_copy_u32(&packet[199], events[offset+11].time.total_cycle);
2728  TF_copy_u8(&packet[203], (uint8_t)events[offset+11].time.step);
2729  TF_copy_u32(&packet[204], events[offset+11].note);
2730  TF_copy_u8(&packet[208], (uint8_t)events[offset+12].group);
2731  TF_copy_u32(&packet[209], events[offset+12].local);
2732  TF_copy_u32(&packet[213], events[offset+12].time.total_cycle);
2733  TF_copy_u8(&packet[217], (uint8_t)events[offset+12].time.step);
2734  TF_copy_u32(&packet[218], events[offset+12].note);
2735  TF_copy_u8(&packet[222], (uint8_t)events[offset+13].group);
2736  TF_copy_u32(&packet[223], events[offset+13].local);
2737  TF_copy_u32(&packet[227], events[offset+13].time.total_cycle);
2738  TF_copy_u8(&packet[231], (uint8_t)events[offset+13].time.step);
2739  TF_copy_u32(&packet[232], events[offset+13].note);
2740  TF_copy_u8(&packet[236], (uint8_t)events[offset+14].group);
2741  TF_copy_u32(&packet[237], events[offset+14].local);
2742  TF_copy_u32(&packet[241], events[offset+14].time.total_cycle);
2743  TF_copy_u8(&packet[245], (uint8_t)events[offset+14].time.step);
2744  TF_copy_u32(&packet[246], events[offset+14].note);
2745  TF_copy_u8(&packet[250], (uint8_t)events[offset+15].group);
2746  TF_copy_u32(&packet[251], events[offset+15].local);
2747  TF_copy_u32(&packet[255], events[offset+15].time.total_cycle);
2748  TF_copy_u8(&packet[259], (uint8_t)events[offset+15].time.step);
2749  TF_copy_u32(&packet[260], events[offset+15].note);
2750  TF_copy_u8(&packet[264], (uint8_t)events[offset+16].group);
2751  TF_copy_u32(&packet[265], events[offset+16].local);
2752  TF_copy_u32(&packet[269], events[offset+16].time.total_cycle);
2753  TF_copy_u8(&packet[273], (uint8_t)events[offset+16].time.step);
2754  TF_copy_u32(&packet[274], events[offset+16].note);
2755  TF_copy_u8(&packet[278], (uint8_t)events[offset+17].group);
2756  TF_copy_u32(&packet[279], events[offset+17].local);
2757  TF_copy_u32(&packet[283], events[offset+17].time.total_cycle);
2758  TF_copy_u8(&packet[287], (uint8_t)events[offset+17].time.step);
2759  TF_copy_u32(&packet[288], events[offset+17].note);
2760  TF_copy_u8(&packet[292], (uint8_t)events[offset+18].group);
2761  TF_copy_u32(&packet[293], events[offset+18].local);
2762  TF_copy_u32(&packet[297], events[offset+18].time.total_cycle);
2763  TF_copy_u8(&packet[301], (uint8_t)events[offset+18].time.step);
2764  TF_copy_u32(&packet[302], events[offset+18].note);
2765  TF_copy_u8(&packet[306], (uint8_t)events[offset+19].group);
2766  TF_copy_u32(&packet[307], events[offset+19].local);
2767  TF_copy_u32(&packet[311], events[offset+19].time.total_cycle);
2768  TF_copy_u8(&packet[315], (uint8_t)events[offset+19].time.step);
2769  TF_copy_u32(&packet[316], events[offset+19].note);
2770  TF_copy_u8(&packet[320], (uint8_t)events[offset+20].group);
2771  TF_copy_u32(&packet[321], events[offset+20].local);
2772  TF_copy_u32(&packet[325], events[offset+20].time.total_cycle);
2773  TF_copy_u8(&packet[329], (uint8_t)events[offset+20].time.step);
2774  TF_copy_u32(&packet[330], events[offset+20].note);
2775  TF_copy_u8(&packet[334], (uint8_t)events[offset+21].group);
2776  TF_copy_u32(&packet[335], events[offset+21].local);
2777  TF_copy_u32(&packet[339], events[offset+21].time.total_cycle);
2778  TF_copy_u8(&packet[343], (uint8_t)events[offset+21].time.step);
2779  TF_copy_u32(&packet[344], events[offset+21].note);
2780  TF_copy_u8(&packet[348], (uint8_t)events[offset+22].group);
2781  TF_copy_u32(&packet[349], events[offset+22].local);
2782  TF_copy_u32(&packet[353], events[offset+22].time.total_cycle);
2783  TF_copy_u8(&packet[357], (uint8_t)events[offset+22].time.step);
2784  TF_copy_u32(&packet[358], events[offset+22].note);
2785  TF_copy_u8(&packet[362], (uint8_t)events[offset+23].group);
2786  TF_copy_u32(&packet[363], events[offset+23].local);
2787  TF_copy_u32(&packet[367], events[offset+23].time.total_cycle);
2788  TF_copy_u8(&packet[371], (uint8_t)events[offset+23].time.step);
2789  TF_copy_u32(&packet[372], events[offset+23].note);
2790  TF_copy_u8(&packet[376], (uint8_t)events[offset+24].group);
2791  TF_copy_u32(&packet[377], events[offset+24].local);
2792  TF_copy_u32(&packet[381], events[offset+24].time.total_cycle);
2793  TF_copy_u8(&packet[385], (uint8_t)events[offset+24].time.step);
2794  TF_copy_u32(&packet[386], events[offset+24].note);
2795  TF_copy_u8(&packet[390], (uint8_t)events[offset+25].group);
2796  TF_copy_u32(&packet[391], events[offset+25].local);
2797  TF_copy_u32(&packet[395], events[offset+25].time.total_cycle);
2798  TF_copy_u8(&packet[399], (uint8_t)events[offset+25].time.step);
2799  TF_copy_u32(&packet[400], events[offset+25].note);
2800  TF_copy_u8(&packet[404], (uint8_t)events[offset+26].group);
2801  TF_copy_u32(&packet[405], events[offset+26].local);
2802  TF_copy_u32(&packet[409], events[offset+26].time.total_cycle);
2803  TF_copy_u8(&packet[413], (uint8_t)events[offset+26].time.step);
2804  TF_copy_u32(&packet[414], events[offset+26].note);
2805  TF_copy_u8(&packet[418], (uint8_t)events[offset+27].group);
2806  TF_copy_u32(&packet[419], events[offset+27].local);
2807  TF_copy_u32(&packet[423], events[offset+27].time.total_cycle);
2808  TF_copy_u8(&packet[427], (uint8_t)events[offset+27].time.step);
2809  TF_copy_u32(&packet[428], events[offset+27].note);
2810 #endif
2811 
2812  *len = 432;
2813  return TF_TLM_FUNC_ACK_SUCCESS;
2814 }
2815 
2816 static TF_TLM_FUNC_ACK Tlm_EL_CLOG_(uint8_t* packet, uint16_t* len, uint16_t max_len)
2817 {
2820  const uint16_t* log_orders = event_logger->clogs[err_level].log_orders;
2821  const EL_CLogElement* logs = event_logger->clogs[err_level].logs;
2822 
2823  if (416 > max_len) return TF_TLM_FUNC_ACK_TOO_SHORT_LEN;
2824 
2825 #ifndef BUILD_SETTINGS_FAST_BUILD
2826  TF_copy_u8(&packet[26], event_logger->tlm_info.clog.page_no);
2827  TF_copy_u8(&packet[27], (uint8_t)err_level);
2829  TF_copy_u32(&packet[32], event_logger->statistics.record_counters[err_level]);
2830  TF_copy_u16(&packet[36], event_logger->clogs[err_level].log_capacity);
2831  TF_copy_u8(&packet[38], (uint8_t)logs[log_orders[offset+0]].event.group);
2832  TF_copy_u32(&packet[39], logs[log_orders[offset+0]].event.local);
2833  TF_copy_u32(&packet[43], logs[log_orders[offset+0]].event.time.total_cycle);
2834  TF_copy_u8(&packet[47], (uint8_t)logs[log_orders[offset+0]].event.time.step);
2835  TF_copy_u32(&packet[48], logs[log_orders[offset+0]].event.note);
2836  TF_copy_u16(&packet[52], logs[log_orders[offset+0]].count);
2837  TF_copy_u32(&packet[54], logs[log_orders[offset+0]].delta_record_time.total_cycle);
2838  TF_copy_u8(&packet[58], (uint8_t)logs[log_orders[offset+0]].delta_record_time.step);
2839  TF_copy_u8(&packet[59], (uint8_t)logs[log_orders[offset+1]].event.group);
2840  TF_copy_u32(&packet[60], logs[log_orders[offset+1]].event.local);
2841  TF_copy_u32(&packet[64], logs[log_orders[offset+1]].event.time.total_cycle);
2842  TF_copy_u8(&packet[68], (uint8_t)logs[log_orders[offset+1]].event.time.step);
2843  TF_copy_u32(&packet[69], logs[log_orders[offset+1]].event.note);
2844  TF_copy_u16(&packet[73], logs[log_orders[offset+1]].count);
2845  TF_copy_u32(&packet[75], logs[log_orders[offset+1]].delta_record_time.total_cycle);
2846  TF_copy_u8(&packet[79], (uint8_t)logs[log_orders[offset+1]].delta_record_time.step);
2847  TF_copy_u8(&packet[80], (uint8_t)logs[log_orders[offset+2]].event.group);
2848  TF_copy_u32(&packet[81], logs[log_orders[offset+2]].event.local);
2849  TF_copy_u32(&packet[85], logs[log_orders[offset+2]].event.time.total_cycle);
2850  TF_copy_u8(&packet[89], (uint8_t)logs[log_orders[offset+2]].event.time.step);
2851  TF_copy_u32(&packet[90], logs[log_orders[offset+2]].event.note);
2852  TF_copy_u16(&packet[94], logs[log_orders[offset+2]].count);
2853  TF_copy_u32(&packet[96], logs[log_orders[offset+2]].delta_record_time.total_cycle);
2854  TF_copy_u8(&packet[100], (uint8_t)logs[log_orders[offset+2]].delta_record_time.step);
2855  TF_copy_u8(&packet[101], (uint8_t)logs[log_orders[offset+3]].event.group);
2856  TF_copy_u32(&packet[102], logs[log_orders[offset+3]].event.local);
2857  TF_copy_u32(&packet[106], logs[log_orders[offset+3]].event.time.total_cycle);
2858  TF_copy_u8(&packet[110], (uint8_t)logs[log_orders[offset+3]].event.time.step);
2859  TF_copy_u32(&packet[111], logs[log_orders[offset+3]].event.note);
2860  TF_copy_u16(&packet[115], logs[log_orders[offset+3]].count);
2861  TF_copy_u32(&packet[117], logs[log_orders[offset+3]].delta_record_time.total_cycle);
2862  TF_copy_u8(&packet[121], (uint8_t)logs[log_orders[offset+3]].delta_record_time.step);
2863  TF_copy_u8(&packet[122], (uint8_t)logs[log_orders[offset+4]].event.group);
2864  TF_copy_u32(&packet[123], logs[log_orders[offset+4]].event.local);
2865  TF_copy_u32(&packet[127], logs[log_orders[offset+4]].event.time.total_cycle);
2866  TF_copy_u8(&packet[131], (uint8_t)logs[log_orders[offset+4]].event.time.step);
2867  TF_copy_u32(&packet[132], logs[log_orders[offset+4]].event.note);
2868  TF_copy_u16(&packet[136], logs[log_orders[offset+4]].count);
2869  TF_copy_u32(&packet[138], logs[log_orders[offset+4]].delta_record_time.total_cycle);
2870  TF_copy_u8(&packet[142], (uint8_t)logs[log_orders[offset+4]].delta_record_time.step);
2871  TF_copy_u8(&packet[143], (uint8_t)logs[log_orders[offset+5]].event.group);
2872  TF_copy_u32(&packet[144], logs[log_orders[offset+5]].event.local);
2873  TF_copy_u32(&packet[148], logs[log_orders[offset+5]].event.time.total_cycle);
2874  TF_copy_u8(&packet[152], (uint8_t)logs[log_orders[offset+5]].event.time.step);
2875  TF_copy_u32(&packet[153], logs[log_orders[offset+5]].event.note);
2876  TF_copy_u16(&packet[157], logs[log_orders[offset+5]].count);
2877  TF_copy_u32(&packet[159], logs[log_orders[offset+5]].delta_record_time.total_cycle);
2878  TF_copy_u8(&packet[163], (uint8_t)logs[log_orders[offset+5]].delta_record_time.step);
2879  TF_copy_u8(&packet[164], (uint8_t)logs[log_orders[offset+6]].event.group);
2880  TF_copy_u32(&packet[165], logs[log_orders[offset+6]].event.local);
2881  TF_copy_u32(&packet[169], logs[log_orders[offset+6]].event.time.total_cycle);
2882  TF_copy_u8(&packet[173], (uint8_t)logs[log_orders[offset+6]].event.time.step);
2883  TF_copy_u32(&packet[174], logs[log_orders[offset+6]].event.note);
2884  TF_copy_u16(&packet[178], logs[log_orders[offset+6]].count);
2885  TF_copy_u32(&packet[180], logs[log_orders[offset+6]].delta_record_time.total_cycle);
2886  TF_copy_u8(&packet[184], (uint8_t)logs[log_orders[offset+6]].delta_record_time.step);
2887  TF_copy_u8(&packet[185], (uint8_t)logs[log_orders[offset+7]].event.group);
2888  TF_copy_u32(&packet[186], logs[log_orders[offset+7]].event.local);
2889  TF_copy_u32(&packet[190], logs[log_orders[offset+7]].event.time.total_cycle);
2890  TF_copy_u8(&packet[194], (uint8_t)logs[log_orders[offset+7]].event.time.step);
2891  TF_copy_u32(&packet[195], logs[log_orders[offset+7]].event.note);
2892  TF_copy_u16(&packet[199], logs[log_orders[offset+7]].count);
2893  TF_copy_u32(&packet[201], logs[log_orders[offset+7]].delta_record_time.total_cycle);
2894  TF_copy_u8(&packet[205], (uint8_t)logs[log_orders[offset+7]].delta_record_time.step);
2895  TF_copy_u8(&packet[206], (uint8_t)logs[log_orders[offset+8]].event.group);
2896  TF_copy_u32(&packet[207], logs[log_orders[offset+8]].event.local);
2897  TF_copy_u32(&packet[211], logs[log_orders[offset+8]].event.time.total_cycle);
2898  TF_copy_u8(&packet[215], (uint8_t)logs[log_orders[offset+8]].event.time.step);
2899  TF_copy_u32(&packet[216], logs[log_orders[offset+8]].event.note);
2900  TF_copy_u16(&packet[220], logs[log_orders[offset+8]].count);
2901  TF_copy_u32(&packet[222], logs[log_orders[offset+8]].delta_record_time.total_cycle);
2902  TF_copy_u8(&packet[226], (uint8_t)logs[log_orders[offset+8]].delta_record_time.step);
2903  TF_copy_u8(&packet[227], (uint8_t)logs[log_orders[offset+9]].event.group);
2904  TF_copy_u32(&packet[228], logs[log_orders[offset+9]].event.local);
2905  TF_copy_u32(&packet[232], logs[log_orders[offset+9]].event.time.total_cycle);
2906  TF_copy_u8(&packet[236], (uint8_t)logs[log_orders[offset+9]].event.time.step);
2907  TF_copy_u32(&packet[237], logs[log_orders[offset+9]].event.note);
2908  TF_copy_u16(&packet[241], logs[log_orders[offset+9]].count);
2909  TF_copy_u32(&packet[243], logs[log_orders[offset+9]].delta_record_time.total_cycle);
2910  TF_copy_u8(&packet[247], (uint8_t)logs[log_orders[offset+9]].delta_record_time.step);
2911  TF_copy_u8(&packet[248], (uint8_t)logs[log_orders[offset+10]].event.group);
2912  TF_copy_u32(&packet[249], logs[log_orders[offset+10]].event.local);
2913  TF_copy_u32(&packet[253], logs[log_orders[offset+10]].event.time.total_cycle);
2914  TF_copy_u8(&packet[257], (uint8_t)logs[log_orders[offset+10]].event.time.step);
2915  TF_copy_u32(&packet[258], logs[log_orders[offset+10]].event.note);
2916  TF_copy_u16(&packet[262], logs[log_orders[offset+10]].count);
2917  TF_copy_u32(&packet[264], logs[log_orders[offset+10]].delta_record_time.total_cycle);
2918  TF_copy_u8(&packet[268], (uint8_t)logs[log_orders[offset+10]].delta_record_time.step);
2919  TF_copy_u8(&packet[269], (uint8_t)logs[log_orders[offset+11]].event.group);
2920  TF_copy_u32(&packet[270], logs[log_orders[offset+11]].event.local);
2921  TF_copy_u32(&packet[274], logs[log_orders[offset+11]].event.time.total_cycle);
2922  TF_copy_u8(&packet[278], (uint8_t)logs[log_orders[offset+11]].event.time.step);
2923  TF_copy_u32(&packet[279], logs[log_orders[offset+11]].event.note);
2924  TF_copy_u16(&packet[283], logs[log_orders[offset+11]].count);
2925  TF_copy_u32(&packet[285], logs[log_orders[offset+11]].delta_record_time.total_cycle);
2926  TF_copy_u8(&packet[289], (uint8_t)logs[log_orders[offset+11]].delta_record_time.step);
2927  TF_copy_u8(&packet[290], (uint8_t)logs[log_orders[offset+12]].event.group);
2928  TF_copy_u32(&packet[291], logs[log_orders[offset+12]].event.local);
2929  TF_copy_u32(&packet[295], logs[log_orders[offset+12]].event.time.total_cycle);
2930  TF_copy_u8(&packet[299], (uint8_t)logs[log_orders[offset+12]].event.time.step);
2931  TF_copy_u32(&packet[300], logs[log_orders[offset+12]].event.note);
2932  TF_copy_u16(&packet[304], logs[log_orders[offset+12]].count);
2933  TF_copy_u32(&packet[306], logs[log_orders[offset+12]].delta_record_time.total_cycle);
2934  TF_copy_u8(&packet[310], (uint8_t)logs[log_orders[offset+12]].delta_record_time.step);
2935  TF_copy_u8(&packet[311], (uint8_t)logs[log_orders[offset+13]].event.group);
2936  TF_copy_u32(&packet[312], logs[log_orders[offset+13]].event.local);
2937  TF_copy_u32(&packet[316], logs[log_orders[offset+13]].event.time.total_cycle);
2938  TF_copy_u8(&packet[320], (uint8_t)logs[log_orders[offset+13]].event.time.step);
2939  TF_copy_u32(&packet[321], logs[log_orders[offset+13]].event.note);
2940  TF_copy_u16(&packet[325], logs[log_orders[offset+13]].count);
2941  TF_copy_u32(&packet[327], logs[log_orders[offset+13]].delta_record_time.total_cycle);
2942  TF_copy_u8(&packet[331], (uint8_t)logs[log_orders[offset+13]].delta_record_time.step);
2943  TF_copy_u8(&packet[332], (uint8_t)logs[log_orders[offset+14]].event.group);
2944  TF_copy_u32(&packet[333], logs[log_orders[offset+14]].event.local);
2945  TF_copy_u32(&packet[337], logs[log_orders[offset+14]].event.time.total_cycle);
2946  TF_copy_u8(&packet[341], (uint8_t)logs[log_orders[offset+14]].event.time.step);
2947  TF_copy_u32(&packet[342], logs[log_orders[offset+14]].event.note);
2948  TF_copy_u16(&packet[346], logs[log_orders[offset+14]].count);
2949  TF_copy_u32(&packet[348], logs[log_orders[offset+14]].delta_record_time.total_cycle);
2950  TF_copy_u8(&packet[352], (uint8_t)logs[log_orders[offset+14]].delta_record_time.step);
2951  TF_copy_u8(&packet[353], (uint8_t)logs[log_orders[offset+15]].event.group);
2952  TF_copy_u32(&packet[354], logs[log_orders[offset+15]].event.local);
2953  TF_copy_u32(&packet[358], logs[log_orders[offset+15]].event.time.total_cycle);
2954  TF_copy_u8(&packet[362], (uint8_t)logs[log_orders[offset+15]].event.time.step);
2955  TF_copy_u32(&packet[363], logs[log_orders[offset+15]].event.note);
2956  TF_copy_u16(&packet[367], logs[log_orders[offset+15]].count);
2957  TF_copy_u32(&packet[369], logs[log_orders[offset+15]].delta_record_time.total_cycle);
2958  TF_copy_u8(&packet[373], (uint8_t)logs[log_orders[offset+15]].delta_record_time.step);
2959  TF_copy_u8(&packet[374], (uint8_t)logs[log_orders[offset+16]].event.group);
2960  TF_copy_u32(&packet[375], logs[log_orders[offset+16]].event.local);
2961  TF_copy_u32(&packet[379], logs[log_orders[offset+16]].event.time.total_cycle);
2962  TF_copy_u8(&packet[383], (uint8_t)logs[log_orders[offset+16]].event.time.step);
2963  TF_copy_u32(&packet[384], logs[log_orders[offset+16]].event.note);
2964  TF_copy_u16(&packet[388], logs[log_orders[offset+16]].count);
2965  TF_copy_u32(&packet[390], logs[log_orders[offset+16]].delta_record_time.total_cycle);
2966  TF_copy_u8(&packet[394], (uint8_t)logs[log_orders[offset+16]].delta_record_time.step);
2967  TF_copy_u8(&packet[395], (uint8_t)logs[log_orders[offset+17]].event.group);
2968  TF_copy_u32(&packet[396], logs[log_orders[offset+17]].event.local);
2969  TF_copy_u32(&packet[400], logs[log_orders[offset+17]].event.time.total_cycle);
2970  TF_copy_u8(&packet[404], (uint8_t)logs[log_orders[offset+17]].event.time.step);
2971  TF_copy_u32(&packet[405], logs[log_orders[offset+17]].event.note);
2972  TF_copy_u16(&packet[409], logs[log_orders[offset+17]].count);
2973  TF_copy_u32(&packet[411], logs[log_orders[offset+17]].delta_record_time.total_cycle);
2974  TF_copy_u8(&packet[415], (uint8_t)logs[log_orders[offset+17]].delta_record_time.step);
2975 #endif
2976 
2977  *len = 416;
2978  return TF_TLM_FUNC_ACK_SUCCESS;
2979 }
2980 
2981 static TF_TLM_FUNC_ACK Tlm_EH_(uint8_t* packet, uint16_t* len, uint16_t max_len)
2982 {
2983  if (101 > max_len) return TF_TLM_FUNC_ACK_TOO_SHORT_LEN;
2984 
2985 #ifndef BUILD_SETTINGS_FAST_BUILD
2994  TF_copy_u16(&packet[55], event_handler->log_table.log_wp);
2998  TF_copy_u8(&packet[61], (uint8_t)event_handler->reg_from_cmd.rule_id);
2999  TF_copy_u8(&packet[62], (uint8_t)event_handler->reg_from_cmd.settings.event.group);
3001  TF_copy_u8(&packet[67], (uint8_t)((((uint8_t)event_handler->reg_from_cmd.settings.event.err_level) << 5 & 0xe0) | (event_handler->reg_from_cmd.settings.should_match_err_level << 4 & 0x10) | (event_handler->reg_from_cmd.settings.is_active << 3 & 0x08) | (((uint8_t)event_handler->reg_from_cmd.settings.condition.type) & 0x07)));
3004  TF_copy_u16(&packet[74], (uint16_t)event_handler->reg_from_cmd.settings.deploy_bct_id);
3005  TF_copy_u8(&packet[76], (uint8_t)event_handler->reg_from_cmd.register_ack);
3006  TF_copy_u8(&packet[77], event_handler->tlm_info.rule.page_no);
3007  TF_copy_u8(&packet[78], (uint8_t)event_handler->tlm_info.rule.target_rule_id);
3009  TF_copy_u8(&packet[80], event_handler->tlm_info.log.page_no);
3018 #endif
3019 
3020  *len = 101;
3021  return TF_TLM_FUNC_ACK_SUCCESS;
3022 }
3023 
3024 static TF_TLM_FUNC_ACK Tlm_EH_RULE_(uint8_t* packet, uint16_t* len, uint16_t max_len)
3025 {
3027  const EH_Rule* rules = event_handler->rule_table.rules;
3028 
3029  if (429 > max_len) return TF_TLM_FUNC_ACK_TOO_SHORT_LEN;
3030 
3031 #ifndef BUILD_SETTINGS_FAST_BUILD
3032  TF_copy_u8(&packet[26], event_handler->tlm_info.rule.page_no);
3034  TF_copy_u8(&packet[29], (uint8_t)rules[0 + offset].settings.event.group);
3035  TF_copy_u32(&packet[30], rules[0 + offset].settings.event.local);
3036  TF_copy_u8(&packet[34], (uint8_t)((((uint8_t)rules[0 + offset].settings.event.err_level) << 5 & 0xe0) | (rules[0 + offset].settings.should_match_err_level << 4 & 0x10) | (rules[0 + offset].settings.is_active << 3 & 0x08) | (((uint8_t)rules[0 + offset].settings.condition.type) & 0x07)));
3037  TF_copy_u16(&packet[35], rules[0 + offset].settings.condition.count_threshold);
3038  TF_copy_u32(&packet[37], rules[0 + offset].settings.condition.time_threshold_ms);
3039  TF_copy_u16(&packet[41], (uint16_t)rules[0 + offset].settings.deploy_bct_id);
3040  TF_copy_u16(&packet[43], rules[0 + offset].counter);
3041  TF_copy_u32(&packet[45], (uint32_t)rules[0 + offset].last_event_time.total_cycle);
3042  TF_copy_u8(&packet[49], (uint8_t)rules[1 + offset].settings.event.group);
3043  TF_copy_u32(&packet[50], rules[1 + offset].settings.event.local);
3044  TF_copy_u8(&packet[54], (uint8_t)((((uint8_t)rules[1 + offset].settings.event.err_level) << 5 & 0xe0) | (rules[1 + offset].settings.should_match_err_level << 4 & 0x10) | (rules[1 + offset].settings.is_active << 3 & 0x08) | (((uint8_t)rules[1 + offset].settings.condition.type) & 0x07)));
3045  TF_copy_u16(&packet[55], rules[1 + offset].settings.condition.count_threshold);
3046  TF_copy_u32(&packet[57], rules[1 + offset].settings.condition.time_threshold_ms);
3047  TF_copy_u16(&packet[61], (uint16_t)rules[1 + offset].settings.deploy_bct_id);
3048  TF_copy_u16(&packet[63], rules[1 + offset].counter);
3049  TF_copy_u32(&packet[65], (uint32_t)rules[1 + offset].last_event_time.total_cycle);
3050  TF_copy_u8(&packet[69], (uint8_t)rules[2 + offset].settings.event.group);
3051  TF_copy_u32(&packet[70], rules[2 + offset].settings.event.local);
3052  TF_copy_u8(&packet[74], (uint8_t)((((uint8_t)rules[2 + offset].settings.event.err_level) << 5 & 0xe0) | (rules[2 + offset].settings.should_match_err_level << 4 & 0x10) | (rules[2 + offset].settings.is_active << 3 & 0x08) | (((uint8_t)rules[2 + offset].settings.condition.type) & 0x07)));
3053  TF_copy_u16(&packet[75], rules[2 + offset].settings.condition.count_threshold);
3054  TF_copy_u32(&packet[77], rules[2 + offset].settings.condition.time_threshold_ms);
3055  TF_copy_u16(&packet[81], (uint16_t)rules[2 + offset].settings.deploy_bct_id);
3056  TF_copy_u16(&packet[83], rules[2 + offset].counter);
3057  TF_copy_u32(&packet[85], (uint32_t)rules[2 + offset].last_event_time.total_cycle);
3058  TF_copy_u8(&packet[89], (uint8_t)rules[3 + offset].settings.event.group);
3059  TF_copy_u32(&packet[90], rules[3 + offset].settings.event.local);
3060  TF_copy_u8(&packet[94], (uint8_t)((((uint8_t)rules[3 + offset].settings.event.err_level) << 5 & 0xe0) | (rules[3 + offset].settings.should_match_err_level << 4 & 0x10) | (rules[3 + offset].settings.is_active << 3 & 0x08) | (((uint8_t)rules[3 + offset].settings.condition.type) & 0x07)));
3061  TF_copy_u16(&packet[95], rules[3 + offset].settings.condition.count_threshold);
3062  TF_copy_u32(&packet[97], rules[3 + offset].settings.condition.time_threshold_ms);
3063  TF_copy_u16(&packet[101], (uint16_t)rules[3 + offset].settings.deploy_bct_id);
3064  TF_copy_u16(&packet[103], rules[3 + offset].counter);
3065  TF_copy_u32(&packet[105], (uint32_t)rules[3 + offset].last_event_time.total_cycle);
3066  TF_copy_u8(&packet[109], (uint8_t)rules[4 + offset].settings.event.group);
3067  TF_copy_u32(&packet[110], rules[4 + offset].settings.event.local);
3068  TF_copy_u8(&packet[114], (uint8_t)((((uint8_t)rules[4 + offset].settings.event.err_level) << 5 & 0xe0) | (rules[4 + offset].settings.should_match_err_level << 4 & 0x10) | (rules[4 + offset].settings.is_active << 3 & 0x08) | (((uint8_t)rules[4 + offset].settings.condition.type) & 0x07)));
3069  TF_copy_u16(&packet[115], rules[4 + offset].settings.condition.count_threshold);
3070  TF_copy_u32(&packet[117], rules[4 + offset].settings.condition.time_threshold_ms);
3071  TF_copy_u16(&packet[121], (uint16_t)rules[4 + offset].settings.deploy_bct_id);
3072  TF_copy_u16(&packet[123], rules[4 + offset].counter);
3073  TF_copy_u32(&packet[125], (uint32_t)rules[4 + offset].last_event_time.total_cycle);
3074  TF_copy_u8(&packet[129], (uint8_t)rules[5 + offset].settings.event.group);
3075  TF_copy_u32(&packet[130], rules[5 + offset].settings.event.local);
3076  TF_copy_u8(&packet[134], (uint8_t)((((uint8_t)rules[5 + offset].settings.event.err_level) << 5 & 0xe0) | (rules[5 + offset].settings.should_match_err_level << 4 & 0x10) | (rules[5 + offset].settings.is_active << 3 & 0x08) | (((uint8_t)rules[5 + offset].settings.condition.type) & 0x07)));
3077  TF_copy_u16(&packet[135], rules[5 + offset].settings.condition.count_threshold);
3078  TF_copy_u32(&packet[137], rules[5 + offset].settings.condition.time_threshold_ms);
3079  TF_copy_u16(&packet[141], (uint16_t)rules[5 + offset].settings.deploy_bct_id);
3080  TF_copy_u16(&packet[143], rules[5 + offset].counter);
3081  TF_copy_u32(&packet[145], (uint32_t)rules[5 + offset].last_event_time.total_cycle);
3082  TF_copy_u8(&packet[149], (uint8_t)rules[6 + offset].settings.event.group);
3083  TF_copy_u32(&packet[150], rules[6 + offset].settings.event.local);
3084  TF_copy_u8(&packet[154], (uint8_t)((((uint8_t)rules[6 + offset].settings.event.err_level) << 5 & 0xe0) | (rules[6 + offset].settings.should_match_err_level << 4 & 0x10) | (rules[6 + offset].settings.is_active << 3 & 0x08) | (((uint8_t)rules[6 + offset].settings.condition.type) & 0x07)));
3085  TF_copy_u16(&packet[155], rules[6 + offset].settings.condition.count_threshold);
3086  TF_copy_u32(&packet[157], rules[6 + offset].settings.condition.time_threshold_ms);
3087  TF_copy_u16(&packet[161], (uint16_t)rules[6 + offset].settings.deploy_bct_id);
3088  TF_copy_u16(&packet[163], rules[6 + offset].counter);
3089  TF_copy_u32(&packet[165], (uint32_t)rules[6 + offset].last_event_time.total_cycle);
3090  TF_copy_u8(&packet[169], (uint8_t)rules[7 + offset].settings.event.group);
3091  TF_copy_u32(&packet[170], rules[7 + offset].settings.event.local);
3092  TF_copy_u8(&packet[174], (uint8_t)((((uint8_t)rules[7 + offset].settings.event.err_level) << 5 & 0xe0) | (rules[7 + offset].settings.should_match_err_level << 4 & 0x10) | (rules[7 + offset].settings.is_active << 3 & 0x08) | (((uint8_t)rules[7 + offset].settings.condition.type) & 0x07)));
3093  TF_copy_u16(&packet[175], rules[7 + offset].settings.condition.count_threshold);
3094  TF_copy_u32(&packet[177], rules[7 + offset].settings.condition.time_threshold_ms);
3095  TF_copy_u16(&packet[181], (uint16_t)rules[7 + offset].settings.deploy_bct_id);
3096  TF_copy_u16(&packet[183], rules[7 + offset].counter);
3097  TF_copy_u32(&packet[185], (uint32_t)rules[7 + offset].last_event_time.total_cycle);
3098  TF_copy_u8(&packet[189], (uint8_t)rules[8 + offset].settings.event.group);
3099  TF_copy_u32(&packet[190], rules[8 + offset].settings.event.local);
3100  TF_copy_u8(&packet[194], (uint8_t)((((uint8_t)rules[8 + offset].settings.event.err_level) << 5 & 0xe0) | (rules[8 + offset].settings.should_match_err_level << 4 & 0x10) | (rules[8 + offset].settings.is_active << 3 & 0x08) | (((uint8_t)rules[8 + offset].settings.condition.type) & 0x07)));
3101  TF_copy_u16(&packet[195], rules[8 + offset].settings.condition.count_threshold);
3102  TF_copy_u32(&packet[197], rules[8 + offset].settings.condition.time_threshold_ms);
3103  TF_copy_u16(&packet[201], (uint16_t)rules[8 + offset].settings.deploy_bct_id);
3104  TF_copy_u16(&packet[203], rules[8 + offset].counter);
3105  TF_copy_u32(&packet[205], (uint32_t)rules[8 + offset].last_event_time.total_cycle);
3106  TF_copy_u8(&packet[209], (uint8_t)rules[9 + offset].settings.event.group);
3107  TF_copy_u32(&packet[210], rules[9 + offset].settings.event.local);
3108  TF_copy_u8(&packet[214], (uint8_t)((((uint8_t)rules[9 + offset].settings.event.err_level) << 5 & 0xe0) | (rules[9 + offset].settings.should_match_err_level << 4 & 0x10) | (rules[9 + offset].settings.is_active << 3 & 0x08) | (((uint8_t)rules[9 + offset].settings.condition.type) & 0x07)));
3109  TF_copy_u16(&packet[215], rules[9 + offset].settings.condition.count_threshold);
3110  TF_copy_u32(&packet[217], rules[9 + offset].settings.condition.time_threshold_ms);
3111  TF_copy_u16(&packet[221], (uint16_t)rules[9 + offset].settings.deploy_bct_id);
3112  TF_copy_u16(&packet[223], rules[9 + offset].counter);
3113  TF_copy_u32(&packet[225], (uint32_t)rules[9 + offset].last_event_time.total_cycle);
3114  TF_copy_u8(&packet[229], (uint8_t)rules[10 + offset].settings.event.group);
3115  TF_copy_u32(&packet[230], rules[10 + offset].settings.event.local);
3116  TF_copy_u8(&packet[234], (uint8_t)((((uint8_t)rules[10 + offset].settings.event.err_level) << 5 & 0xe0) | (rules[10 + offset].settings.should_match_err_level << 4 & 0x10) | (rules[10 + offset].settings.is_active << 3 & 0x08) | (((uint8_t)rules[10 + offset].settings.condition.type) & 0x07)));
3117  TF_copy_u16(&packet[235], rules[10 + offset].settings.condition.count_threshold);
3118  TF_copy_u32(&packet[237], rules[10 + offset].settings.condition.time_threshold_ms);
3119  TF_copy_u16(&packet[241], (uint16_t)rules[10 + offset].settings.deploy_bct_id);
3120  TF_copy_u16(&packet[243], rules[10 + offset].counter);
3121  TF_copy_u32(&packet[245], (uint32_t)rules[10 + offset].last_event_time.total_cycle);
3122  TF_copy_u8(&packet[249], (uint8_t)rules[11 + offset].settings.event.group);
3123  TF_copy_u32(&packet[250], rules[11 + offset].settings.event.local);
3124  TF_copy_u8(&packet[254], (uint8_t)((((uint8_t)rules[11 + offset].settings.event.err_level) << 5 & 0xe0) | (rules[11 + offset].settings.should_match_err_level << 4 & 0x10) | (rules[11 + offset].settings.is_active << 3 & 0x08) | (((uint8_t)rules[11 + offset].settings.condition.type) & 0x07)));
3125  TF_copy_u16(&packet[255], rules[11 + offset].settings.condition.count_threshold);
3126  TF_copy_u32(&packet[257], rules[11 + offset].settings.condition.time_threshold_ms);
3127  TF_copy_u16(&packet[261], (uint16_t)rules[11 + offset].settings.deploy_bct_id);
3128  TF_copy_u16(&packet[263], rules[11 + offset].counter);
3129  TF_copy_u32(&packet[265], (uint32_t)rules[11 + offset].last_event_time.total_cycle);
3130  TF_copy_u8(&packet[269], (uint8_t)rules[12 + offset].settings.event.group);
3131  TF_copy_u32(&packet[270], rules[12 + offset].settings.event.local);
3132  TF_copy_u8(&packet[274], (uint8_t)((((uint8_t)rules[12 + offset].settings.event.err_level) << 5 & 0xe0) | (rules[12 + offset].settings.should_match_err_level << 4 & 0x10) | (rules[12 + offset].settings.is_active << 3 & 0x08) | (((uint8_t)rules[12 + offset].settings.condition.type) & 0x07)));
3133  TF_copy_u16(&packet[275], rules[12 + offset].settings.condition.count_threshold);
3134  TF_copy_u32(&packet[277], rules[12 + offset].settings.condition.time_threshold_ms);
3135  TF_copy_u16(&packet[281], (uint16_t)rules[12 + offset].settings.deploy_bct_id);
3136  TF_copy_u16(&packet[283], rules[12 + offset].counter);
3137  TF_copy_u32(&packet[285], (uint32_t)rules[12 + offset].last_event_time.total_cycle);
3138  TF_copy_u8(&packet[289], (uint8_t)rules[13 + offset].settings.event.group);
3139  TF_copy_u32(&packet[290], rules[13 + offset].settings.event.local);
3140  TF_copy_u8(&packet[294], (uint8_t)((((uint8_t)rules[13 + offset].settings.event.err_level) << 5 & 0xe0) | (rules[13 + offset].settings.should_match_err_level << 4 & 0x10) | (rules[13 + offset].settings.is_active << 3 & 0x08) | (((uint8_t)rules[13 + offset].settings.condition.type) & 0x07)));
3141  TF_copy_u16(&packet[295], rules[13 + offset].settings.condition.count_threshold);
3142  TF_copy_u32(&packet[297], rules[13 + offset].settings.condition.time_threshold_ms);
3143  TF_copy_u16(&packet[301], (uint16_t)rules[13 + offset].settings.deploy_bct_id);
3144  TF_copy_u16(&packet[303], rules[13 + offset].counter);
3145  TF_copy_u32(&packet[305], (uint32_t)rules[13 + offset].last_event_time.total_cycle);
3146  TF_copy_u8(&packet[309], (uint8_t)rules[14 + offset].settings.event.group);
3147  TF_copy_u32(&packet[310], rules[14 + offset].settings.event.local);
3148  TF_copy_u8(&packet[314], (uint8_t)((((uint8_t)rules[14 + offset].settings.event.err_level) << 5 & 0xe0) | (rules[14 + offset].settings.should_match_err_level << 4 & 0x10) | (rules[14 + offset].settings.is_active << 3 & 0x08) | (((uint8_t)rules[14 + offset].settings.condition.type) & 0x07)));
3149  TF_copy_u16(&packet[315], rules[14 + offset].settings.condition.count_threshold);
3150  TF_copy_u32(&packet[317], rules[14 + offset].settings.condition.time_threshold_ms);
3151  TF_copy_u16(&packet[321], (uint16_t)rules[14 + offset].settings.deploy_bct_id);
3152  TF_copy_u16(&packet[323], rules[14 + offset].counter);
3153  TF_copy_u32(&packet[325], (uint32_t)rules[14 + offset].last_event_time.total_cycle);
3154  TF_copy_u8(&packet[329], (uint8_t)rules[15 + offset].settings.event.group);
3155  TF_copy_u32(&packet[330], rules[15 + offset].settings.event.local);
3156  TF_copy_u8(&packet[334], (uint8_t)((((uint8_t)rules[15 + offset].settings.event.err_level) << 5 & 0xe0) | (rules[15 + offset].settings.should_match_err_level << 4 & 0x10) | (rules[15 + offset].settings.is_active << 3 & 0x08) | (((uint8_t)rules[15 + offset].settings.condition.type) & 0x07)));
3157  TF_copy_u16(&packet[335], rules[15 + offset].settings.condition.count_threshold);
3158  TF_copy_u32(&packet[337], rules[15 + offset].settings.condition.time_threshold_ms);
3159  TF_copy_u16(&packet[341], (uint16_t)rules[15 + offset].settings.deploy_bct_id);
3160  TF_copy_u16(&packet[343], rules[15 + offset].counter);
3161  TF_copy_u32(&packet[345], (uint32_t)rules[15 + offset].last_event_time.total_cycle);
3162  TF_copy_u8(&packet[349], (uint8_t)rules[16 + offset].settings.event.group);
3163  TF_copy_u32(&packet[350], rules[16 + offset].settings.event.local);
3164  TF_copy_u8(&packet[354], (uint8_t)((((uint8_t)rules[16 + offset].settings.event.err_level) << 5 & 0xe0) | (rules[16 + offset].settings.should_match_err_level << 4 & 0x10) | (rules[16 + offset].settings.is_active << 3 & 0x08) | (((uint8_t)rules[16 + offset].settings.condition.type) & 0x07)));
3165  TF_copy_u16(&packet[355], rules[16 + offset].settings.condition.count_threshold);
3166  TF_copy_u32(&packet[357], rules[16 + offset].settings.condition.time_threshold_ms);
3167  TF_copy_u16(&packet[361], (uint16_t)rules[16 + offset].settings.deploy_bct_id);
3168  TF_copy_u16(&packet[363], rules[16 + offset].counter);
3169  TF_copy_u32(&packet[365], (uint32_t)rules[16 + offset].last_event_time.total_cycle);
3170  TF_copy_u8(&packet[369], (uint8_t)rules[17 + offset].settings.event.group);
3171  TF_copy_u32(&packet[370], rules[17 + offset].settings.event.local);
3172  TF_copy_u8(&packet[374], (uint8_t)((((uint8_t)rules[17 + offset].settings.event.err_level) << 5 & 0xe0) | (rules[17 + offset].settings.should_match_err_level << 4 & 0x10) | (rules[17 + offset].settings.is_active << 3 & 0x08) | (((uint8_t)rules[17 + offset].settings.condition.type) & 0x07)));
3173  TF_copy_u16(&packet[375], rules[17 + offset].settings.condition.count_threshold);
3174  TF_copy_u32(&packet[377], rules[17 + offset].settings.condition.time_threshold_ms);
3175  TF_copy_u16(&packet[381], (uint16_t)rules[17 + offset].settings.deploy_bct_id);
3176  TF_copy_u16(&packet[383], rules[17 + offset].counter);
3177  TF_copy_u32(&packet[385], (uint32_t)rules[17 + offset].last_event_time.total_cycle);
3178  TF_copy_u8(&packet[389], (uint8_t)rules[18 + offset].settings.event.group);
3179  TF_copy_u32(&packet[390], rules[18 + offset].settings.event.local);
3180  TF_copy_u8(&packet[394], (uint8_t)((((uint8_t)rules[18 + offset].settings.event.err_level) << 5 & 0xe0) | (rules[18 + offset].settings.should_match_err_level << 4 & 0x10) | (rules[18 + offset].settings.is_active << 3 & 0x08) | (((uint8_t)rules[18 + offset].settings.condition.type) & 0x07)));
3181  TF_copy_u16(&packet[395], rules[18 + offset].settings.condition.count_threshold);
3182  TF_copy_u32(&packet[397], rules[18 + offset].settings.condition.time_threshold_ms);
3183  TF_copy_u16(&packet[401], (uint16_t)rules[18 + offset].settings.deploy_bct_id);
3184  TF_copy_u16(&packet[403], rules[18 + offset].counter);
3185  TF_copy_u32(&packet[405], (uint32_t)rules[18 + offset].last_event_time.total_cycle);
3186  TF_copy_u8(&packet[409], (uint8_t)rules[19 + offset].settings.event.group);
3187  TF_copy_u32(&packet[410], rules[19 + offset].settings.event.local);
3188  TF_copy_u8(&packet[414], (uint8_t)((((uint8_t)rules[19 + offset].settings.event.err_level) << 5 & 0xe0) | (rules[19 + offset].settings.should_match_err_level << 4 & 0x10) | (rules[19 + offset].settings.is_active << 3 & 0x08) | (((uint8_t)rules[19 + offset].settings.condition.type) & 0x07)));
3189  TF_copy_u16(&packet[415], rules[19 + offset].settings.condition.count_threshold);
3190  TF_copy_u32(&packet[417], rules[19 + offset].settings.condition.time_threshold_ms);
3191  TF_copy_u16(&packet[421], (uint16_t)rules[19 + offset].settings.deploy_bct_id);
3192  TF_copy_u16(&packet[423], rules[19 + offset].counter);
3193  TF_copy_u32(&packet[425], (uint32_t)rules[19 + offset].last_event_time.total_cycle);
3194 #endif
3195 
3196  *len = 429;
3197  return TF_TLM_FUNC_ACK_SUCCESS;
3198 }
3199 
3200 static TF_TLM_FUNC_ACK Tlm_EH_LOG_(uint8_t* packet, uint16_t* len, uint16_t max_len)
3201 {
3202  uint16_t offset = event_handler->tlm_info.log.page_no * EH_LOG_TLM_PAGE_SIZE;
3203 
3204  if (417 > max_len) return TF_TLM_FUNC_ACK_TOO_SHORT_LEN;
3205 
3206 #ifndef BUILD_SETTINGS_FAST_BUILD
3207  TF_copy_u8(&packet[26], event_handler->tlm_info.log.page_no);
3209  TF_copy_u16(&packet[31], event_handler->log_table.log_wp);
3210  TF_copy_u8(&packet[33], (uint8_t)EH_get_the_nth_log_from_the_latest((uint16_t)(0 + offset))->rule_id);
3211  TF_copy_u32(&packet[34], EH_get_the_nth_log_from_the_latest((uint16_t)(0 + offset))->respond_time_in_master_cycle);
3212  TF_copy_i8(&packet[38], (int8_t)EH_get_the_nth_log_from_the_latest((uint16_t)(0 + offset))->deploy_cmd_ack);
3213  TF_copy_u8(&packet[39], (uint8_t)EH_get_the_nth_log_from_the_latest((uint16_t)(1 + offset))->rule_id);
3214  TF_copy_u32(&packet[40], EH_get_the_nth_log_from_the_latest((uint16_t)(1 + offset))->respond_time_in_master_cycle);
3215  TF_copy_i8(&packet[44], (int8_t)EH_get_the_nth_log_from_the_latest((uint16_t)(1 + offset))->deploy_cmd_ack);
3216  TF_copy_u8(&packet[45], (uint8_t)EH_get_the_nth_log_from_the_latest((uint16_t)(2 + offset))->rule_id);
3217  TF_copy_u32(&packet[46], EH_get_the_nth_log_from_the_latest((uint16_t)(2 + offset))->respond_time_in_master_cycle);
3218  TF_copy_i8(&packet[50], (int8_t)EH_get_the_nth_log_from_the_latest((uint16_t)(2 + offset))->deploy_cmd_ack);
3219  TF_copy_u8(&packet[51], (uint8_t)EH_get_the_nth_log_from_the_latest((uint16_t)(3 + offset))->rule_id);
3220  TF_copy_u32(&packet[52], EH_get_the_nth_log_from_the_latest((uint16_t)(3 + offset))->respond_time_in_master_cycle);
3221  TF_copy_i8(&packet[56], (int8_t)EH_get_the_nth_log_from_the_latest((uint16_t)(3 + offset))->deploy_cmd_ack);
3222  TF_copy_u8(&packet[57], (uint8_t)EH_get_the_nth_log_from_the_latest((uint16_t)(4 + offset))->rule_id);
3223  TF_copy_u32(&packet[58], EH_get_the_nth_log_from_the_latest((uint16_t)(4 + offset))->respond_time_in_master_cycle);
3224  TF_copy_i8(&packet[62], (int8_t)EH_get_the_nth_log_from_the_latest((uint16_t)(4 + offset))->deploy_cmd_ack);
3225  TF_copy_u8(&packet[63], (uint8_t)EH_get_the_nth_log_from_the_latest((uint16_t)(5 + offset))->rule_id);
3226  TF_copy_u32(&packet[64], EH_get_the_nth_log_from_the_latest((uint16_t)(5 + offset))->respond_time_in_master_cycle);
3227  TF_copy_i8(&packet[68], (int8_t)EH_get_the_nth_log_from_the_latest((uint16_t)(5 + offset))->deploy_cmd_ack);
3228  TF_copy_u8(&packet[69], (uint8_t)EH_get_the_nth_log_from_the_latest((uint16_t)(6 + offset))->rule_id);
3229  TF_copy_u32(&packet[70], EH_get_the_nth_log_from_the_latest((uint16_t)(6 + offset))->respond_time_in_master_cycle);
3230  TF_copy_i8(&packet[74], (int8_t)EH_get_the_nth_log_from_the_latest((uint16_t)(6 + offset))->deploy_cmd_ack);
3231  TF_copy_u8(&packet[75], (uint8_t)EH_get_the_nth_log_from_the_latest((uint16_t)(7 + offset))->rule_id);
3232  TF_copy_u32(&packet[76], EH_get_the_nth_log_from_the_latest((uint16_t)(7 + offset))->respond_time_in_master_cycle);
3233  TF_copy_i8(&packet[80], (int8_t)EH_get_the_nth_log_from_the_latest((uint16_t)(7 + offset))->deploy_cmd_ack);
3234  TF_copy_u8(&packet[81], (uint8_t)EH_get_the_nth_log_from_the_latest((uint16_t)(8 + offset))->rule_id);
3235  TF_copy_u32(&packet[82], EH_get_the_nth_log_from_the_latest((uint16_t)(8 + offset))->respond_time_in_master_cycle);
3236  TF_copy_i8(&packet[86], (int8_t)EH_get_the_nth_log_from_the_latest((uint16_t)(8 + offset))->deploy_cmd_ack);
3237  TF_copy_u8(&packet[87], (uint8_t)EH_get_the_nth_log_from_the_latest((uint16_t)(9 + offset))->rule_id);
3238  TF_copy_u32(&packet[88], EH_get_the_nth_log_from_the_latest((uint16_t)(9 + offset))->respond_time_in_master_cycle);
3239  TF_copy_i8(&packet[92], (int8_t)EH_get_the_nth_log_from_the_latest((uint16_t)(9 + offset))->deploy_cmd_ack);
3240  TF_copy_u8(&packet[93], (uint8_t)EH_get_the_nth_log_from_the_latest((uint16_t)(10 + offset))->rule_id);
3241  TF_copy_u32(&packet[94], EH_get_the_nth_log_from_the_latest((uint16_t)(10 + offset))->respond_time_in_master_cycle);
3242  TF_copy_i8(&packet[98], (int8_t)EH_get_the_nth_log_from_the_latest((uint16_t)(10 + offset))->deploy_cmd_ack);
3243  TF_copy_u8(&packet[99], (uint8_t)EH_get_the_nth_log_from_the_latest((uint16_t)(11 + offset))->rule_id);
3244  TF_copy_u32(&packet[100], EH_get_the_nth_log_from_the_latest((uint16_t)(11 + offset))->respond_time_in_master_cycle);
3245  TF_copy_i8(&packet[104], (int8_t)EH_get_the_nth_log_from_the_latest((uint16_t)(11 + offset))->deploy_cmd_ack);
3246  TF_copy_u8(&packet[105], (uint8_t)EH_get_the_nth_log_from_the_latest((uint16_t)(12 + offset))->rule_id);
3247  TF_copy_u32(&packet[106], EH_get_the_nth_log_from_the_latest((uint16_t)(12 + offset))->respond_time_in_master_cycle);
3248  TF_copy_i8(&packet[110], (int8_t)EH_get_the_nth_log_from_the_latest((uint16_t)(12 + offset))->deploy_cmd_ack);
3249  TF_copy_u8(&packet[111], (uint8_t)EH_get_the_nth_log_from_the_latest((uint16_t)(13 + offset))->rule_id);
3250  TF_copy_u32(&packet[112], EH_get_the_nth_log_from_the_latest((uint16_t)(13 + offset))->respond_time_in_master_cycle);
3251  TF_copy_i8(&packet[116], (int8_t)EH_get_the_nth_log_from_the_latest((uint16_t)(13 + offset))->deploy_cmd_ack);
3252  TF_copy_u8(&packet[117], (uint8_t)EH_get_the_nth_log_from_the_latest((uint16_t)(14 + offset))->rule_id);
3253  TF_copy_u32(&packet[118], EH_get_the_nth_log_from_the_latest((uint16_t)(14 + offset))->respond_time_in_master_cycle);
3254  TF_copy_i8(&packet[122], (int8_t)EH_get_the_nth_log_from_the_latest((uint16_t)(14 + offset))->deploy_cmd_ack);
3255  TF_copy_u8(&packet[123], (uint8_t)EH_get_the_nth_log_from_the_latest((uint16_t)(15 + offset))->rule_id);
3256  TF_copy_u32(&packet[124], EH_get_the_nth_log_from_the_latest((uint16_t)(15 + offset))->respond_time_in_master_cycle);
3257  TF_copy_i8(&packet[128], (int8_t)EH_get_the_nth_log_from_the_latest((uint16_t)(15 + offset))->deploy_cmd_ack);
3258  TF_copy_u8(&packet[129], (uint8_t)EH_get_the_nth_log_from_the_latest((uint16_t)(16 + offset))->rule_id);
3259  TF_copy_u32(&packet[130], EH_get_the_nth_log_from_the_latest((uint16_t)(16 + offset))->respond_time_in_master_cycle);
3260  TF_copy_i8(&packet[134], (int8_t)EH_get_the_nth_log_from_the_latest((uint16_t)(16 + offset))->deploy_cmd_ack);
3261  TF_copy_u8(&packet[135], (uint8_t)EH_get_the_nth_log_from_the_latest((uint16_t)(17 + offset))->rule_id);
3262  TF_copy_u32(&packet[136], EH_get_the_nth_log_from_the_latest((uint16_t)(17 + offset))->respond_time_in_master_cycle);
3263  TF_copy_i8(&packet[140], (int8_t)EH_get_the_nth_log_from_the_latest((uint16_t)(17 + offset))->deploy_cmd_ack);
3264  TF_copy_u8(&packet[141], (uint8_t)EH_get_the_nth_log_from_the_latest((uint16_t)(18 + offset))->rule_id);
3265  TF_copy_u32(&packet[142], EH_get_the_nth_log_from_the_latest((uint16_t)(18 + offset))->respond_time_in_master_cycle);
3266  TF_copy_i8(&packet[146], (int8_t)EH_get_the_nth_log_from_the_latest((uint16_t)(18 + offset))->deploy_cmd_ack);
3267  TF_copy_u8(&packet[147], (uint8_t)EH_get_the_nth_log_from_the_latest((uint16_t)(19 + offset))->rule_id);
3268  TF_copy_u32(&packet[148], EH_get_the_nth_log_from_the_latest((uint16_t)(19 + offset))->respond_time_in_master_cycle);
3269  TF_copy_i8(&packet[152], (int8_t)EH_get_the_nth_log_from_the_latest((uint16_t)(19 + offset))->deploy_cmd_ack);
3270  TF_copy_u8(&packet[153], (uint8_t)EH_get_the_nth_log_from_the_latest((uint16_t)(20 + offset))->rule_id);
3271  TF_copy_u32(&packet[154], EH_get_the_nth_log_from_the_latest((uint16_t)(20 + offset))->respond_time_in_master_cycle);
3272  TF_copy_i8(&packet[158], (int8_t)EH_get_the_nth_log_from_the_latest((uint16_t)(20 + offset))->deploy_cmd_ack);
3273  TF_copy_u8(&packet[159], (uint8_t)EH_get_the_nth_log_from_the_latest((uint16_t)(21 + offset))->rule_id);
3274  TF_copy_u32(&packet[160], EH_get_the_nth_log_from_the_latest((uint16_t)(21 + offset))->respond_time_in_master_cycle);
3275  TF_copy_i8(&packet[164], (int8_t)EH_get_the_nth_log_from_the_latest((uint16_t)(21 + offset))->deploy_cmd_ack);
3276  TF_copy_u8(&packet[165], (uint8_t)EH_get_the_nth_log_from_the_latest((uint16_t)(22 + offset))->rule_id);
3277  TF_copy_u32(&packet[166], EH_get_the_nth_log_from_the_latest((uint16_t)(22 + offset))->respond_time_in_master_cycle);
3278  TF_copy_i8(&packet[170], (int8_t)EH_get_the_nth_log_from_the_latest((uint16_t)(22 + offset))->deploy_cmd_ack);
3279  TF_copy_u8(&packet[171], (uint8_t)EH_get_the_nth_log_from_the_latest((uint16_t)(23 + offset))->rule_id);
3280  TF_copy_u32(&packet[172], EH_get_the_nth_log_from_the_latest((uint16_t)(23 + offset))->respond_time_in_master_cycle);
3281  TF_copy_i8(&packet[176], (int8_t)EH_get_the_nth_log_from_the_latest((uint16_t)(23 + offset))->deploy_cmd_ack);
3282  TF_copy_u8(&packet[177], (uint8_t)EH_get_the_nth_log_from_the_latest((uint16_t)(24 + offset))->rule_id);
3283  TF_copy_u32(&packet[178], EH_get_the_nth_log_from_the_latest((uint16_t)(24 + offset))->respond_time_in_master_cycle);
3284  TF_copy_i8(&packet[182], (int8_t)EH_get_the_nth_log_from_the_latest((uint16_t)(24 + offset))->deploy_cmd_ack);
3285  TF_copy_u8(&packet[183], (uint8_t)EH_get_the_nth_log_from_the_latest((uint16_t)(25 + offset))->rule_id);
3286  TF_copy_u32(&packet[184], EH_get_the_nth_log_from_the_latest((uint16_t)(25 + offset))->respond_time_in_master_cycle);
3287  TF_copy_i8(&packet[188], (int8_t)EH_get_the_nth_log_from_the_latest((uint16_t)(25 + offset))->deploy_cmd_ack);
3288  TF_copy_u8(&packet[189], (uint8_t)EH_get_the_nth_log_from_the_latest((uint16_t)(26 + offset))->rule_id);
3289  TF_copy_u32(&packet[190], EH_get_the_nth_log_from_the_latest((uint16_t)(26 + offset))->respond_time_in_master_cycle);
3290  TF_copy_i8(&packet[194], (int8_t)EH_get_the_nth_log_from_the_latest((uint16_t)(26 + offset))->deploy_cmd_ack);
3291  TF_copy_u8(&packet[195], (uint8_t)EH_get_the_nth_log_from_the_latest((uint16_t)(27 + offset))->rule_id);
3292  TF_copy_u32(&packet[196], EH_get_the_nth_log_from_the_latest((uint16_t)(27 + offset))->respond_time_in_master_cycle);
3293  TF_copy_i8(&packet[200], (int8_t)EH_get_the_nth_log_from_the_latest((uint16_t)(27 + offset))->deploy_cmd_ack);
3294  TF_copy_u8(&packet[201], (uint8_t)EH_get_the_nth_log_from_the_latest((uint16_t)(28 + offset))->rule_id);
3295  TF_copy_u32(&packet[202], EH_get_the_nth_log_from_the_latest((uint16_t)(28 + offset))->respond_time_in_master_cycle);
3296  TF_copy_i8(&packet[206], (int8_t)EH_get_the_nth_log_from_the_latest((uint16_t)(28 + offset))->deploy_cmd_ack);
3297  TF_copy_u8(&packet[207], (uint8_t)EH_get_the_nth_log_from_the_latest((uint16_t)(29 + offset))->rule_id);
3298  TF_copy_u32(&packet[208], EH_get_the_nth_log_from_the_latest((uint16_t)(29 + offset))->respond_time_in_master_cycle);
3299  TF_copy_i8(&packet[212], (int8_t)EH_get_the_nth_log_from_the_latest((uint16_t)(29 + offset))->deploy_cmd_ack);
3300  TF_copy_u8(&packet[213], (uint8_t)EH_get_the_nth_log_from_the_latest((uint16_t)(30 + offset))->rule_id);
3301  TF_copy_u32(&packet[214], EH_get_the_nth_log_from_the_latest((uint16_t)(30 + offset))->respond_time_in_master_cycle);
3302  TF_copy_i8(&packet[218], (int8_t)EH_get_the_nth_log_from_the_latest((uint16_t)(30 + offset))->deploy_cmd_ack);
3303  TF_copy_u8(&packet[219], (uint8_t)EH_get_the_nth_log_from_the_latest((uint16_t)(31 + offset))->rule_id);
3304  TF_copy_u32(&packet[220], EH_get_the_nth_log_from_the_latest((uint16_t)(31 + offset))->respond_time_in_master_cycle);
3305  TF_copy_i8(&packet[224], (int8_t)EH_get_the_nth_log_from_the_latest((uint16_t)(31 + offset))->deploy_cmd_ack);
3306  TF_copy_u8(&packet[225], (uint8_t)EH_get_the_nth_log_from_the_latest((uint16_t)(32 + offset))->rule_id);
3307  TF_copy_u32(&packet[226], EH_get_the_nth_log_from_the_latest((uint16_t)(32 + offset))->respond_time_in_master_cycle);
3308  TF_copy_i8(&packet[230], (int8_t)EH_get_the_nth_log_from_the_latest((uint16_t)(32 + offset))->deploy_cmd_ack);
3309  TF_copy_u8(&packet[231], (uint8_t)EH_get_the_nth_log_from_the_latest((uint16_t)(33 + offset))->rule_id);
3310  TF_copy_u32(&packet[232], EH_get_the_nth_log_from_the_latest((uint16_t)(33 + offset))->respond_time_in_master_cycle);
3311  TF_copy_i8(&packet[236], (int8_t)EH_get_the_nth_log_from_the_latest((uint16_t)(33 + offset))->deploy_cmd_ack);
3312  TF_copy_u8(&packet[237], (uint8_t)EH_get_the_nth_log_from_the_latest((uint16_t)(34 + offset))->rule_id);
3313  TF_copy_u32(&packet[238], EH_get_the_nth_log_from_the_latest((uint16_t)(34 + offset))->respond_time_in_master_cycle);
3314  TF_copy_i8(&packet[242], (int8_t)EH_get_the_nth_log_from_the_latest((uint16_t)(34 + offset))->deploy_cmd_ack);
3315  TF_copy_u8(&packet[243], (uint8_t)EH_get_the_nth_log_from_the_latest((uint16_t)(35 + offset))->rule_id);
3316  TF_copy_u32(&packet[244], EH_get_the_nth_log_from_the_latest((uint16_t)(35 + offset))->respond_time_in_master_cycle);
3317  TF_copy_i8(&packet[248], (int8_t)EH_get_the_nth_log_from_the_latest((uint16_t)(35 + offset))->deploy_cmd_ack);
3318  TF_copy_u8(&packet[249], (uint8_t)EH_get_the_nth_log_from_the_latest((uint16_t)(36 + offset))->rule_id);
3319  TF_copy_u32(&packet[250], EH_get_the_nth_log_from_the_latest((uint16_t)(36 + offset))->respond_time_in_master_cycle);
3320  TF_copy_i8(&packet[254], (int8_t)EH_get_the_nth_log_from_the_latest((uint16_t)(36 + offset))->deploy_cmd_ack);
3321  TF_copy_u8(&packet[255], (uint8_t)EH_get_the_nth_log_from_the_latest((uint16_t)(37 + offset))->rule_id);
3322  TF_copy_u32(&packet[256], EH_get_the_nth_log_from_the_latest((uint16_t)(37 + offset))->respond_time_in_master_cycle);
3323  TF_copy_i8(&packet[260], (int8_t)EH_get_the_nth_log_from_the_latest((uint16_t)(37 + offset))->deploy_cmd_ack);
3324  TF_copy_u8(&packet[261], (uint8_t)EH_get_the_nth_log_from_the_latest((uint16_t)(38 + offset))->rule_id);
3325  TF_copy_u32(&packet[262], EH_get_the_nth_log_from_the_latest((uint16_t)(38 + offset))->respond_time_in_master_cycle);
3326  TF_copy_i8(&packet[266], (int8_t)EH_get_the_nth_log_from_the_latest((uint16_t)(38 + offset))->deploy_cmd_ack);
3327  TF_copy_u8(&packet[267], (uint8_t)EH_get_the_nth_log_from_the_latest((uint16_t)(39 + offset))->rule_id);
3328  TF_copy_u32(&packet[268], EH_get_the_nth_log_from_the_latest((uint16_t)(39 + offset))->respond_time_in_master_cycle);
3329  TF_copy_i8(&packet[272], (int8_t)EH_get_the_nth_log_from_the_latest((uint16_t)(39 + offset))->deploy_cmd_ack);
3330  TF_copy_u8(&packet[273], (uint8_t)EH_get_the_nth_log_from_the_latest((uint16_t)(40 + offset))->rule_id);
3331  TF_copy_u32(&packet[274], EH_get_the_nth_log_from_the_latest((uint16_t)(40 + offset))->respond_time_in_master_cycle);
3332  TF_copy_i8(&packet[278], (int8_t)EH_get_the_nth_log_from_the_latest((uint16_t)(40 + offset))->deploy_cmd_ack);
3333  TF_copy_u8(&packet[279], (uint8_t)EH_get_the_nth_log_from_the_latest((uint16_t)(41 + offset))->rule_id);
3334  TF_copy_u32(&packet[280], EH_get_the_nth_log_from_the_latest((uint16_t)(41 + offset))->respond_time_in_master_cycle);
3335  TF_copy_i8(&packet[284], (int8_t)EH_get_the_nth_log_from_the_latest((uint16_t)(41 + offset))->deploy_cmd_ack);
3336  TF_copy_u8(&packet[285], (uint8_t)EH_get_the_nth_log_from_the_latest((uint16_t)(42 + offset))->rule_id);
3337  TF_copy_u32(&packet[286], EH_get_the_nth_log_from_the_latest((uint16_t)(42 + offset))->respond_time_in_master_cycle);
3338  TF_copy_i8(&packet[290], (int8_t)EH_get_the_nth_log_from_the_latest((uint16_t)(42 + offset))->deploy_cmd_ack);
3339  TF_copy_u8(&packet[291], (uint8_t)EH_get_the_nth_log_from_the_latest((uint16_t)(43 + offset))->rule_id);
3340  TF_copy_u32(&packet[292], EH_get_the_nth_log_from_the_latest((uint16_t)(43 + offset))->respond_time_in_master_cycle);
3341  TF_copy_i8(&packet[296], (int8_t)EH_get_the_nth_log_from_the_latest((uint16_t)(43 + offset))->deploy_cmd_ack);
3342  TF_copy_u8(&packet[297], (uint8_t)EH_get_the_nth_log_from_the_latest((uint16_t)(44 + offset))->rule_id);
3343  TF_copy_u32(&packet[298], EH_get_the_nth_log_from_the_latest((uint16_t)(44 + offset))->respond_time_in_master_cycle);
3344  TF_copy_i8(&packet[302], (int8_t)EH_get_the_nth_log_from_the_latest((uint16_t)(44 + offset))->deploy_cmd_ack);
3345  TF_copy_u8(&packet[303], (uint8_t)EH_get_the_nth_log_from_the_latest((uint16_t)(45 + offset))->rule_id);
3346  TF_copy_u32(&packet[304], EH_get_the_nth_log_from_the_latest((uint16_t)(45 + offset))->respond_time_in_master_cycle);
3347  TF_copy_i8(&packet[308], (int8_t)EH_get_the_nth_log_from_the_latest((uint16_t)(45 + offset))->deploy_cmd_ack);
3348  TF_copy_u8(&packet[309], (uint8_t)EH_get_the_nth_log_from_the_latest((uint16_t)(46 + offset))->rule_id);
3349  TF_copy_u32(&packet[310], EH_get_the_nth_log_from_the_latest((uint16_t)(46 + offset))->respond_time_in_master_cycle);
3350  TF_copy_i8(&packet[314], (int8_t)EH_get_the_nth_log_from_the_latest((uint16_t)(46 + offset))->deploy_cmd_ack);
3351  TF_copy_u8(&packet[315], (uint8_t)EH_get_the_nth_log_from_the_latest((uint16_t)(47 + offset))->rule_id);
3352  TF_copy_u32(&packet[316], EH_get_the_nth_log_from_the_latest((uint16_t)(47 + offset))->respond_time_in_master_cycle);
3353  TF_copy_i8(&packet[320], (int8_t)EH_get_the_nth_log_from_the_latest((uint16_t)(47 + offset))->deploy_cmd_ack);
3354  TF_copy_u8(&packet[321], (uint8_t)EH_get_the_nth_log_from_the_latest((uint16_t)(48 + offset))->rule_id);
3355  TF_copy_u32(&packet[322], EH_get_the_nth_log_from_the_latest((uint16_t)(48 + offset))->respond_time_in_master_cycle);
3356  TF_copy_i8(&packet[326], (int8_t)EH_get_the_nth_log_from_the_latest((uint16_t)(48 + offset))->deploy_cmd_ack);
3357  TF_copy_u8(&packet[327], (uint8_t)EH_get_the_nth_log_from_the_latest((uint16_t)(49 + offset))->rule_id);
3358  TF_copy_u32(&packet[328], EH_get_the_nth_log_from_the_latest((uint16_t)(49 + offset))->respond_time_in_master_cycle);
3359  TF_copy_i8(&packet[332], (int8_t)EH_get_the_nth_log_from_the_latest((uint16_t)(49 + offset))->deploy_cmd_ack);
3360  TF_copy_u8(&packet[333], (uint8_t)EH_get_the_nth_log_from_the_latest((uint16_t)(50 + offset))->rule_id);
3361  TF_copy_u32(&packet[334], EH_get_the_nth_log_from_the_latest((uint16_t)(50 + offset))->respond_time_in_master_cycle);
3362  TF_copy_i8(&packet[338], (int8_t)EH_get_the_nth_log_from_the_latest((uint16_t)(50 + offset))->deploy_cmd_ack);
3363  TF_copy_u8(&packet[339], (uint8_t)EH_get_the_nth_log_from_the_latest((uint16_t)(51 + offset))->rule_id);
3364  TF_copy_u32(&packet[340], EH_get_the_nth_log_from_the_latest((uint16_t)(51 + offset))->respond_time_in_master_cycle);
3365  TF_copy_i8(&packet[344], (int8_t)EH_get_the_nth_log_from_the_latest((uint16_t)(51 + offset))->deploy_cmd_ack);
3366  TF_copy_u8(&packet[345], (uint8_t)EH_get_the_nth_log_from_the_latest((uint16_t)(52 + offset))->rule_id);
3367  TF_copy_u32(&packet[346], EH_get_the_nth_log_from_the_latest((uint16_t)(52 + offset))->respond_time_in_master_cycle);
3368  TF_copy_i8(&packet[350], (int8_t)EH_get_the_nth_log_from_the_latest((uint16_t)(52 + offset))->deploy_cmd_ack);
3369  TF_copy_u8(&packet[351], (uint8_t)EH_get_the_nth_log_from_the_latest((uint16_t)(53 + offset))->rule_id);
3370  TF_copy_u32(&packet[352], EH_get_the_nth_log_from_the_latest((uint16_t)(53 + offset))->respond_time_in_master_cycle);
3371  TF_copy_i8(&packet[356], (int8_t)EH_get_the_nth_log_from_the_latest((uint16_t)(53 + offset))->deploy_cmd_ack);
3372  TF_copy_u8(&packet[357], (uint8_t)EH_get_the_nth_log_from_the_latest((uint16_t)(54 + offset))->rule_id);
3373  TF_copy_u32(&packet[358], EH_get_the_nth_log_from_the_latest((uint16_t)(54 + offset))->respond_time_in_master_cycle);
3374  TF_copy_i8(&packet[362], (int8_t)EH_get_the_nth_log_from_the_latest((uint16_t)(54 + offset))->deploy_cmd_ack);
3375  TF_copy_u8(&packet[363], (uint8_t)EH_get_the_nth_log_from_the_latest((uint16_t)(55 + offset))->rule_id);
3376  TF_copy_u32(&packet[364], EH_get_the_nth_log_from_the_latest((uint16_t)(55 + offset))->respond_time_in_master_cycle);
3377  TF_copy_i8(&packet[368], (int8_t)EH_get_the_nth_log_from_the_latest((uint16_t)(55 + offset))->deploy_cmd_ack);
3378  TF_copy_u8(&packet[369], (uint8_t)EH_get_the_nth_log_from_the_latest((uint16_t)(56 + offset))->rule_id);
3379  TF_copy_u32(&packet[370], EH_get_the_nth_log_from_the_latest((uint16_t)(56 + offset))->respond_time_in_master_cycle);
3380  TF_copy_i8(&packet[374], (int8_t)EH_get_the_nth_log_from_the_latest((uint16_t)(56 + offset))->deploy_cmd_ack);
3381  TF_copy_u8(&packet[375], (uint8_t)EH_get_the_nth_log_from_the_latest((uint16_t)(57 + offset))->rule_id);
3382  TF_copy_u32(&packet[376], EH_get_the_nth_log_from_the_latest((uint16_t)(57 + offset))->respond_time_in_master_cycle);
3383  TF_copy_i8(&packet[380], (int8_t)EH_get_the_nth_log_from_the_latest((uint16_t)(57 + offset))->deploy_cmd_ack);
3384  TF_copy_u8(&packet[381], (uint8_t)EH_get_the_nth_log_from_the_latest((uint16_t)(58 + offset))->rule_id);
3385  TF_copy_u32(&packet[382], EH_get_the_nth_log_from_the_latest((uint16_t)(58 + offset))->respond_time_in_master_cycle);
3386  TF_copy_i8(&packet[386], (int8_t)EH_get_the_nth_log_from_the_latest((uint16_t)(58 + offset))->deploy_cmd_ack);
3387  TF_copy_u8(&packet[387], (uint8_t)EH_get_the_nth_log_from_the_latest((uint16_t)(59 + offset))->rule_id);
3388  TF_copy_u32(&packet[388], EH_get_the_nth_log_from_the_latest((uint16_t)(59 + offset))->respond_time_in_master_cycle);
3389  TF_copy_i8(&packet[392], (int8_t)EH_get_the_nth_log_from_the_latest((uint16_t)(59 + offset))->deploy_cmd_ack);
3390  TF_copy_u8(&packet[393], (uint8_t)EH_get_the_nth_log_from_the_latest((uint16_t)(60 + offset))->rule_id);
3391  TF_copy_u32(&packet[394], EH_get_the_nth_log_from_the_latest((uint16_t)(60 + offset))->respond_time_in_master_cycle);
3392  TF_copy_i8(&packet[398], (int8_t)EH_get_the_nth_log_from_the_latest((uint16_t)(60 + offset))->deploy_cmd_ack);
3393  TF_copy_u8(&packet[399], (uint8_t)EH_get_the_nth_log_from_the_latest((uint16_t)(61 + offset))->rule_id);
3394  TF_copy_u32(&packet[400], EH_get_the_nth_log_from_the_latest((uint16_t)(61 + offset))->respond_time_in_master_cycle);
3395  TF_copy_i8(&packet[404], (int8_t)EH_get_the_nth_log_from_the_latest((uint16_t)(61 + offset))->deploy_cmd_ack);
3396  TF_copy_u8(&packet[405], (uint8_t)EH_get_the_nth_log_from_the_latest((uint16_t)(62 + offset))->rule_id);
3397  TF_copy_u32(&packet[406], EH_get_the_nth_log_from_the_latest((uint16_t)(62 + offset))->respond_time_in_master_cycle);
3398  TF_copy_i8(&packet[410], (int8_t)EH_get_the_nth_log_from_the_latest((uint16_t)(62 + offset))->deploy_cmd_ack);
3399  TF_copy_u8(&packet[411], (uint8_t)EH_get_the_nth_log_from_the_latest((uint16_t)(63 + offset))->rule_id);
3400  TF_copy_u32(&packet[412], EH_get_the_nth_log_from_the_latest((uint16_t)(63 + offset))->respond_time_in_master_cycle);
3401  TF_copy_i8(&packet[416], (int8_t)EH_get_the_nth_log_from_the_latest((uint16_t)(63 + offset))->deploy_cmd_ack);
3402 #endif
3403 
3404  *len = 417;
3405  return TF_TLM_FUNC_ACK_SUCCESS;
3406 }
3407 
3408 static TF_TLM_FUNC_ACK Tlm_EH_INDEX_(uint8_t* packet, uint16_t* len, uint16_t max_len)
3409 {
3411 
3412  if (167 > max_len) return TF_TLM_FUNC_ACK_TOO_SHORT_LEN;
3413 
3414 #ifndef BUILD_SETTINGS_FAST_BUILD
3416  TF_copy_u8(&packet[27], (uint8_t)event_handler->sorted_idxes[0 + offset].group);
3417  TF_copy_u32(&packet[28], event_handler->sorted_idxes[0 + offset].local);
3418  TF_copy_u8(&packet[32], event_handler->sorted_idxes[0 + offset].duplicate_id);
3419  TF_copy_u8(&packet[33], (uint8_t)event_handler->sorted_idxes[0 + offset].rule_id);
3420  TF_copy_u8(&packet[34], (uint8_t)event_handler->sorted_idxes[1 + offset].group);
3421  TF_copy_u32(&packet[35], event_handler->sorted_idxes[1 + offset].local);
3422  TF_copy_u8(&packet[39], event_handler->sorted_idxes[1 + offset].duplicate_id);
3423  TF_copy_u8(&packet[40], (uint8_t)event_handler->sorted_idxes[1 + offset].rule_id);
3424  TF_copy_u8(&packet[41], (uint8_t)event_handler->sorted_idxes[2 + offset].group);
3425  TF_copy_u32(&packet[42], event_handler->sorted_idxes[2 + offset].local);
3426  TF_copy_u8(&packet[46], event_handler->sorted_idxes[2 + offset].duplicate_id);
3427  TF_copy_u8(&packet[47], (uint8_t)event_handler->sorted_idxes[2 + offset].rule_id);
3428  TF_copy_u8(&packet[48], (uint8_t)event_handler->sorted_idxes[3 + offset].group);
3429  TF_copy_u32(&packet[49], event_handler->sorted_idxes[3 + offset].local);
3430  TF_copy_u8(&packet[53], event_handler->sorted_idxes[3 + offset].duplicate_id);
3431  TF_copy_u8(&packet[54], (uint8_t)event_handler->sorted_idxes[3 + offset].rule_id);
3432  TF_copy_u8(&packet[55], (uint8_t)event_handler->sorted_idxes[4 + offset].group);
3433  TF_copy_u32(&packet[56], event_handler->sorted_idxes[4 + offset].local);
3434  TF_copy_u8(&packet[60], event_handler->sorted_idxes[4 + offset].duplicate_id);
3435  TF_copy_u8(&packet[61], (uint8_t)event_handler->sorted_idxes[4 + offset].rule_id);
3436  TF_copy_u8(&packet[62], (uint8_t)event_handler->sorted_idxes[5 + offset].group);
3437  TF_copy_u32(&packet[63], event_handler->sorted_idxes[5 + offset].local);
3438  TF_copy_u8(&packet[67], event_handler->sorted_idxes[5 + offset].duplicate_id);
3439  TF_copy_u8(&packet[68], (uint8_t)event_handler->sorted_idxes[5 + offset].rule_id);
3440  TF_copy_u8(&packet[69], (uint8_t)event_handler->sorted_idxes[6 + offset].group);
3441  TF_copy_u32(&packet[70], event_handler->sorted_idxes[6 + offset].local);
3442  TF_copy_u8(&packet[74], event_handler->sorted_idxes[6 + offset].duplicate_id);
3443  TF_copy_u8(&packet[75], (uint8_t)event_handler->sorted_idxes[6 + offset].rule_id);
3444  TF_copy_u8(&packet[76], (uint8_t)event_handler->sorted_idxes[7 + offset].group);
3445  TF_copy_u32(&packet[77], event_handler->sorted_idxes[7 + offset].local);
3446  TF_copy_u8(&packet[81], event_handler->sorted_idxes[7 + offset].duplicate_id);
3447  TF_copy_u8(&packet[82], (uint8_t)event_handler->sorted_idxes[7 + offset].rule_id);
3448  TF_copy_u8(&packet[83], (uint8_t)event_handler->sorted_idxes[8 + offset].group);
3449  TF_copy_u32(&packet[84], event_handler->sorted_idxes[8 + offset].local);
3450  TF_copy_u8(&packet[88], event_handler->sorted_idxes[8 + offset].duplicate_id);
3451  TF_copy_u8(&packet[89], (uint8_t)event_handler->sorted_idxes[8 + offset].rule_id);
3452  TF_copy_u8(&packet[90], (uint8_t)event_handler->sorted_idxes[9 + offset].group);
3453  TF_copy_u32(&packet[91], event_handler->sorted_idxes[9 + offset].local);
3454  TF_copy_u8(&packet[95], event_handler->sorted_idxes[9 + offset].duplicate_id);
3455  TF_copy_u8(&packet[96], (uint8_t)event_handler->sorted_idxes[9 + offset].rule_id);
3456  TF_copy_u8(&packet[97], (uint8_t)event_handler->sorted_idxes[10 + offset].group);
3457  TF_copy_u32(&packet[98], event_handler->sorted_idxes[10 + offset].local);
3458  TF_copy_u8(&packet[102], event_handler->sorted_idxes[10 + offset].duplicate_id);
3459  TF_copy_u8(&packet[103], (uint8_t)event_handler->sorted_idxes[10 + offset].rule_id);
3460  TF_copy_u8(&packet[104], (uint8_t)event_handler->sorted_idxes[11 + offset].group);
3461  TF_copy_u32(&packet[105], event_handler->sorted_idxes[11 + offset].local);
3462  TF_copy_u8(&packet[109], event_handler->sorted_idxes[11 + offset].duplicate_id);
3463  TF_copy_u8(&packet[110], (uint8_t)event_handler->sorted_idxes[11 + offset].rule_id);
3464  TF_copy_u8(&packet[111], (uint8_t)event_handler->sorted_idxes[12 + offset].group);
3465  TF_copy_u32(&packet[112], event_handler->sorted_idxes[12 + offset].local);
3466  TF_copy_u8(&packet[116], event_handler->sorted_idxes[12 + offset].duplicate_id);
3467  TF_copy_u8(&packet[117], (uint8_t)event_handler->sorted_idxes[12 + offset].rule_id);
3468  TF_copy_u8(&packet[118], (uint8_t)event_handler->sorted_idxes[13 + offset].group);
3469  TF_copy_u32(&packet[119], event_handler->sorted_idxes[13 + offset].local);
3470  TF_copy_u8(&packet[123], event_handler->sorted_idxes[13 + offset].duplicate_id);
3471  TF_copy_u8(&packet[124], (uint8_t)event_handler->sorted_idxes[13 + offset].rule_id);
3472  TF_copy_u8(&packet[125], (uint8_t)event_handler->sorted_idxes[14 + offset].group);
3473  TF_copy_u32(&packet[126], event_handler->sorted_idxes[14 + offset].local);
3474  TF_copy_u8(&packet[130], event_handler->sorted_idxes[14 + offset].duplicate_id);
3475  TF_copy_u8(&packet[131], (uint8_t)event_handler->sorted_idxes[14 + offset].rule_id);
3476  TF_copy_u8(&packet[132], (uint8_t)event_handler->sorted_idxes[15 + offset].group);
3477  TF_copy_u32(&packet[133], event_handler->sorted_idxes[15 + offset].local);
3478  TF_copy_u8(&packet[137], event_handler->sorted_idxes[15 + offset].duplicate_id);
3479  TF_copy_u8(&packet[138], (uint8_t)event_handler->sorted_idxes[15 + offset].rule_id);
3480  TF_copy_u8(&packet[139], (uint8_t)event_handler->sorted_idxes[16 + offset].group);
3481  TF_copy_u32(&packet[140], event_handler->sorted_idxes[16 + offset].local);
3482  TF_copy_u8(&packet[144], event_handler->sorted_idxes[16 + offset].duplicate_id);
3483  TF_copy_u8(&packet[145], (uint8_t)event_handler->sorted_idxes[16 + offset].rule_id);
3484  TF_copy_u8(&packet[146], (uint8_t)event_handler->sorted_idxes[17 + offset].group);
3485  TF_copy_u32(&packet[147], event_handler->sorted_idxes[17 + offset].local);
3486  TF_copy_u8(&packet[151], event_handler->sorted_idxes[17 + offset].duplicate_id);
3487  TF_copy_u8(&packet[152], (uint8_t)event_handler->sorted_idxes[17 + offset].rule_id);
3488  TF_copy_u8(&packet[153], (uint8_t)event_handler->sorted_idxes[18 + offset].group);
3489  TF_copy_u32(&packet[154], event_handler->sorted_idxes[18 + offset].local);
3490  TF_copy_u8(&packet[158], event_handler->sorted_idxes[18 + offset].duplicate_id);
3491  TF_copy_u8(&packet[159], (uint8_t)event_handler->sorted_idxes[18 + offset].rule_id);
3492  TF_copy_u8(&packet[160], (uint8_t)event_handler->sorted_idxes[19 + offset].group);
3493  TF_copy_u32(&packet[161], event_handler->sorted_idxes[19 + offset].local);
3494  TF_copy_u8(&packet[165], event_handler->sorted_idxes[19 + offset].duplicate_id);
3495  TF_copy_u8(&packet[166], (uint8_t)event_handler->sorted_idxes[19 + offset].rule_id);
3496 #endif
3497 
3498  *len = 167;
3499  return TF_TLM_FUNC_ACK_SUCCESS;
3500 }
3501 
3502 static TF_TLM_FUNC_ACK Tlm_GS_(uint8_t* packet, uint16_t* len, uint16_t max_len)
3503 {
3504  if (113 > max_len) return TF_TLM_FUNC_ACK_TOO_SHORT_LEN;
3505 
3506 #ifndef BUILD_SETTINGS_FAST_BUILD
3507  TF_copy_u8(&packet[26], (uint8_t)gs_driver->info[0].rx.rec_status);
3508  TF_copy_i32(&packet[27], (int32_t)gs_driver->info[0].rx.ret_from_if_rx);
3509  TF_copy_u8(&packet[31], (uint8_t)gs_driver->info[0].rx.last_dest_type);
3510  TF_copy_u32(&packet[32], (uint32_t)gs_driver->info[0].rx.last_rec_time);
3511  TF_copy_u8(&packet[36], (uint8_t)gs_driver->info[0].rx.cmd_ack);
3512  TF_copy_u8(&packet[37], (uint8_t)gs_driver->info[0].rx.tctf.last_rec_tctf_type);
3513  TF_copy_u8(&packet[38], (uint8_t)gs_driver->info[0].rx.tctf.ad_rec_status);
3514  TF_copy_u8(&packet[39], (uint8_t)gs_driver->info[0].rx.tctf.bc_rec_status);
3515  TF_copy_u8(&packet[40], (uint8_t)gs_driver->info[0].rx.tctf.bd_rec_status);
3516  TF_copy_u32(&packet[41], (uint32_t)gs_driver->info[0].tx.send_cycle);
3517  TF_copy_u8(&packet[45], (uint8_t)gs_driver->info[0].tx.vcid);
3518  TF_copy_u32(&packet[46], gs_driver->info[0].tx.vcdu_counter);
3519  TF_copy_u8(&packet[50], gs_driver->ccsds_info.buffer_num);
3523  TF_copy_u8(&packet[57], (uint8_t)gs_driver->driver_uart.uart_config.data_length);
3524  TF_copy_u8(&packet[58], (uint8_t)gs_driver->driver_uart.uart_config.stop_bit);
3525  TF_copy_u8(&packet[59], (uint8_t)gs_driver->info[1].rx.rec_status);
3526  TF_copy_i32(&packet[60], (int32_t)gs_driver->info[1].rx.ret_from_if_rx);
3527  TF_copy_u8(&packet[64], (uint8_t)gs_driver->info[1].rx.last_dest_type);
3528  TF_copy_u32(&packet[65], (uint32_t)gs_driver->info[1].rx.last_rec_time);
3529  TF_copy_u8(&packet[69], (uint8_t)gs_driver->info[1].rx.cmd_ack);
3530  TF_copy_u8(&packet[70], (uint8_t)gs_driver->info[1].rx.tctf.last_rec_tctf_type);
3531  TF_copy_u8(&packet[71], (uint8_t)gs_driver->info[1].rx.tctf.ad_rec_status);
3532  TF_copy_u8(&packet[72], (uint8_t)gs_driver->info[1].rx.tctf.bc_rec_status);
3533  TF_copy_u8(&packet[73], (uint8_t)gs_driver->info[1].rx.tctf.bd_rec_status);
3534  TF_copy_u32(&packet[74], (uint32_t)gs_driver->info[1].tx.send_cycle);
3535  TF_copy_u8(&packet[78], (uint8_t)gs_driver->info[1].tx.vcid);
3536  TF_copy_u32(&packet[79], gs_driver->info[1].tx.vcdu_counter);
3537  TF_copy_u8(&packet[83], gs_driver->driver_uart.is_tlm_on);
3540  TF_copy_u8(&packet[86], gs_validate_info->lockout_flag);
3545  TF_copy_u32(&packet[97], (uint32_t)DI_GS_rt_tlm_packet_handler->vcdu_counter);
3548  TF_copy_u32(&packet[109], (uint32_t)DI_GS_rp_tlm_packet_handler->vcdu_counter);
3549 #endif
3550 
3551  *len = 113;
3552  return TF_TLM_FUNC_ACK_SUCCESS;
3553 }
3554 
3555 static TF_TLM_FUNC_ACK Tlm_HK_(uint8_t* packet, uint16_t* len, uint16_t max_len)
3556 {
3557  if (428 > max_len) return TF_TLM_FUNC_ACK_TOO_SHORT_LEN;
3558 
3559 #ifndef BUILD_SETTINGS_FAST_BUILD
3560  TF_copy_u32(&packet[26], TMGR_get_master_clock().mode_cycle);
3561  TF_copy_double(&packet[30], TMGR_get_unixtime_at_ti0());
3562  TF_copy_u8(&packet[38], (uint8_t)(mode_manager->current_id));
3563  TF_copy_u8(&packet[39], (uint8_t)( ((uint8_t)(mode_manager->stat) << 7 & 0x80) | ((uint8_t)(mode_manager->previous_id) & 0x7F) ));
3564  TF_copy_u16(&packet[40], task_dispatcher->task_list_id);
3565  TF_copy_u8(&packet[42], (uint8_t)gs_driver->latest_info->rx.rec_status);
3566  TF_copy_u32(&packet[43], (uint32_t)gs_driver->latest_info->rx.last_rec_time);
3567  TF_copy_u8(&packet[47], (uint8_t)(gs_driver->latest_info->rx.cmd_ack));
3569  TF_copy_u32(&packet[52], (uint32_t)(gs_command_dispatcher->prev.time.total_cycle));
3570  TF_copy_u16(&packet[56], (uint16_t)(gs_command_dispatcher->prev.code));
3571  TF_copy_u8(&packet[58], (uint8_t)(gs_command_dispatcher->prev.cmd_ret.exec_sts));
3573  TF_copy_u32(&packet[63], (uint32_t)(gs_command_dispatcher->prev_err.time.total_cycle));
3574  TF_copy_u16(&packet[67], (uint16_t)(gs_command_dispatcher->prev_err.code));
3575  TF_copy_u8(&packet[69], (uint8_t)(gs_command_dispatcher->prev_err.cmd_ret.exec_sts));
3577  TF_copy_u32(&packet[74], (uint32_t)(gs_command_dispatcher->error_counter));
3579  TF_copy_u8(&packet[82], (uint8_t)(PL_count_active_nodes(&PH_tl_cmd_list[TLCD_ID_FROM_GS])));
3589  TF_copy_u32(&packet[106], (PL_is_empty(&(PH_tl_cmd_list[TLCD_ID_FROM_GS])) ? 0 : (uint32_t)CCP_get_ti((const CommonCmdPacket*)(PL_get_head(&(PH_tl_cmd_list[TLCD_ID_FROM_GS]))->packet))));
3590  TF_copy_u16(&packet[110], (uint16_t)(PL_is_empty(&(PH_tl_cmd_list[TLCD_ID_FROM_GS])) ? 0 : CCP_get_id((const CommonCmdPacket*)(PL_get_head(&(PH_tl_cmd_list[TLCD_ID_FROM_GS]))->packet))));
3595  TF_copy_u32(&packet[122], PL_count_executed_nodes(&PH_tl_cmd_list[TLCD_ID_FROM_GS_FOR_MISSION]));
3596  TF_copy_u8(&packet[126], (uint8_t)(PL_count_active_nodes(&PH_tl_cmd_list[TLCD_ID_FROM_GS_FOR_MISSION])));
3597  TF_copy_u32(&packet[127], (uint32_t)(timeline_command_dispatcher->dispatcher[TLCD_ID_FROM_GS_FOR_MISSION].prev.time.total_cycle));
3598  TF_copy_u16(&packet[131], (uint16_t)(timeline_command_dispatcher->dispatcher[TLCD_ID_FROM_GS_FOR_MISSION].prev.code));
3599  TF_copy_u8(&packet[133], (uint8_t)(timeline_command_dispatcher->dispatcher[TLCD_ID_FROM_GS_FOR_MISSION].prev.cmd_ret.exec_sts));
3600  TF_copy_u32(&packet[134], timeline_command_dispatcher->dispatcher[TLCD_ID_FROM_GS_FOR_MISSION].prev.cmd_ret.err_code);
3601  TF_copy_u32(&packet[138], (uint32_t)(timeline_command_dispatcher->dispatcher[TLCD_ID_FROM_GS_FOR_MISSION].prev_err.time.total_cycle));
3602  TF_copy_u16(&packet[142], (uint16_t)(timeline_command_dispatcher->dispatcher[TLCD_ID_FROM_GS_FOR_MISSION].prev_err.code));
3603  TF_copy_u8(&packet[144], (uint8_t)(timeline_command_dispatcher->dispatcher[TLCD_ID_FROM_GS_FOR_MISSION].prev_err.cmd_ret.exec_sts));
3604  TF_copy_u32(&packet[145], timeline_command_dispatcher->dispatcher[TLCD_ID_FROM_GS_FOR_MISSION].prev_err.cmd_ret.err_code);
3605  TF_copy_u8(&packet[149], (uint8_t)(timeline_command_dispatcher->dispatcher[TLCD_ID_FROM_GS_FOR_MISSION].error_counter));
3606  TF_copy_u32(&packet[150], (PL_is_empty(&(PH_tl_cmd_list[TLCD_ID_FROM_GS_FOR_MISSION])) ? 0 : (uint32_t)CCP_get_ti((const CommonCmdPacket*)(PL_get_head(&(PH_tl_cmd_list[TLCD_ID_FROM_GS_FOR_MISSION]))->packet))));
3607  TF_copy_u16(&packet[154], (uint16_t)(PL_is_empty(&(PH_tl_cmd_list[TLCD_ID_FROM_GS_FOR_MISSION])) ? 0 : CCP_get_id((const CommonCmdPacket*)(PL_get_head(&(PH_tl_cmd_list[TLCD_ID_FROM_GS_FOR_MISSION]))->packet))));
3608  TF_copy_u8(&packet[156], (uint8_t)(((uint8_t)timeline_command_dispatcher->dispatcher[TLCD_ID_FROM_GS].stop_on_error << 7 & 0x80) | ((uint8_t)timeline_command_dispatcher->dispatcher[TLCD_ID_FROM_GS].lockout << 6 & 0x40) | ((uint8_t)timeline_command_dispatcher->dispatcher[TLCD_ID_DEPLOY_BC].stop_on_error << 5 & 0x20) | ((uint8_t)timeline_command_dispatcher->dispatcher[TLCD_ID_DEPLOY_BC].lockout << 4 & 0x10) | ((uint8_t)timeline_command_dispatcher->dispatcher[TLCD_ID_DEPLOY_TLM].stop_on_error << 3 & 0x08) | ((uint8_t)timeline_command_dispatcher->dispatcher[TLCD_ID_DEPLOY_TLM].lockout << 2 & 0x04) | ((uint8_t)timeline_command_dispatcher->dispatcher[TLCD_ID_FROM_GS_FOR_MISSION].stop_on_error << 1 & 0x02) | ((uint8_t)timeline_command_dispatcher->dispatcher[TLCD_ID_FROM_GS_FOR_MISSION].lockout & 0x01) ));
3609  TF_copy_u8(&packet[157], (uint8_t)((wdt_config->is_wdt_enable << 7 & 0x80) | (wdt_config->is_clear_enable << 6 & 0x40) | 0x00));
3610  TF_copy_u16(&packet[158], block_command_table->pos.block);
3611  TF_copy_u8(&packet[160], (uint8_t)(block_command_table->pos.cmd));
3612  TF_copy_u32(&packet[161], ((block_command_table->pos.cmd == 0) ? 0 : (uint32_t)BCT_get_ti(block_command_table->pos.block, (uint8_t)(block_command_table->pos.cmd-1))));
3613  TF_copy_u16(&packet[165], (uint16_t)((block_command_table->pos.cmd == 0) ? 0 : BCT_get_id(block_command_table->pos.block, (uint8_t)(block_command_table->pos.cmd-1))));
3620  TF_copy_u8(&packet[181], (uint8_t)event_logger->latest_event.group);
3621  TF_copy_u32(&packet[182], event_logger->latest_event.local);
3622  TF_copy_u8(&packet[186], (uint8_t)event_logger->latest_event.err_level);
3624  TF_copy_u8(&packet[191], (uint8_t)event_logger->latest_event.time.step);
3625  TF_copy_u32(&packet[192], event_logger->latest_event.note);
3626  TF_copy_u8(&packet[196], (uint8_t)EL_get_the_nth_tlog_from_the_latest(EL_ERROR_LEVEL_HIGH, 0)->group);
3628  TF_copy_u32(&packet[201], EL_get_the_nth_tlog_from_the_latest(EL_ERROR_LEVEL_HIGH, 0)->time.total_cycle);
3629  TF_copy_u8(&packet[205], (uint8_t)EL_get_the_nth_tlog_from_the_latest(EL_ERROR_LEVEL_HIGH, 0)->time.step);
3630  TF_copy_u16(&packet[206], (uint16_t)EL_get_the_nth_tlog_from_the_latest(EL_ERROR_LEVEL_HIGH, 0)->note);
3642  TF_copy_u32(&packet[232], GIT_REV_CORE_SHORT);
3643  TF_copy_u32(&packet[236], GIT_REV_USER_SHORT);
3644  TF_copy_u32(&packet[240], 0);
3645  TF_copy_u32(&packet[244], 0);
3646  TF_copy_u32(&packet[248], 0);
3647  TF_copy_u32(&packet[252], 0);
3648  TF_copy_u32(&packet[256], 0);
3649  TF_copy_u32(&packet[260], 0);
3650  TF_copy_u32(&packet[264], 0);
3651  TF_copy_u32(&packet[268], 0);
3652  TF_copy_u32(&packet[272], 0);
3653  TF_copy_u32(&packet[276], 0);
3654  TF_copy_u32(&packet[280], 0);
3655  TF_copy_u32(&packet[284], 0);
3656  TF_copy_u32(&packet[288], 0);
3657  TF_copy_u32(&packet[292], 0);
3658  TF_copy_u32(&packet[296], 0);
3659  TF_copy_u32(&packet[300], 0);
3660  TF_copy_u32(&packet[304], 0);
3661  TF_copy_u32(&packet[308], 0);
3662  TF_copy_u32(&packet[312], 0);
3663  TF_copy_u32(&packet[316], 0);
3664  TF_copy_u32(&packet[320], 0);
3665  TF_copy_u32(&packet[324], 0);
3666  TF_copy_u32(&packet[328], 0);
3667  TF_copy_u32(&packet[332], 0);
3668  TF_copy_u32(&packet[336], 0);
3669  TF_copy_u32(&packet[340], 0);
3670  TF_copy_u32(&packet[344], 0);
3671  TF_copy_u32(&packet[348], 0);
3672  TF_copy_u32(&packet[352], 0);
3673  TF_copy_u32(&packet[356], 0);
3674  TF_copy_u32(&packet[360], 0);
3675  TF_copy_u32(&packet[364], 0);
3676  TF_copy_u32(&packet[368], 0);
3677  TF_copy_u32(&packet[372], 0);
3678  TF_copy_u32(&packet[376], 0);
3679  TF_copy_u32(&packet[380], 0);
3680  TF_copy_u32(&packet[384], 0);
3681  TF_copy_u32(&packet[388], 0);
3682  TF_copy_u32(&packet[392], 0);
3683  TF_copy_u32(&packet[396], 0);
3684  TF_copy_u32(&packet[400], 0);
3685  TF_copy_u32(&packet[404], 0);
3686  TF_copy_u32(&packet[408], 0);
3687  TF_copy_u32(&packet[412], 0);
3688  TF_copy_u32(&packet[416], 0);
3689  TF_copy_u32(&packet[420], 0);
3690  TF_copy_u32(&packet[424], 0);
3691 #endif
3692 
3693  *len = 428;
3694  return TF_TLM_FUNC_ACK_SUCCESS;
3695 }
3696 
3697 static TF_TLM_FUNC_ACK Tlm_GIT_REV_(uint8_t* packet, uint16_t* len, uint16_t max_len)
3698 {
3699  if (108 > max_len) return TF_TLM_FUNC_ACK_TOO_SHORT_LEN;
3700 
3701 #ifndef BUILD_SETTINGS_FAST_BUILD
3702  TF_copy_u8(&packet[26], (uint8_t)GIT_REV_CORE[0]);
3703  TF_copy_u8(&packet[27], (uint8_t)GIT_REV_CORE[1]);
3704  TF_copy_u8(&packet[28], (uint8_t)GIT_REV_CORE[2]);
3705  TF_copy_u8(&packet[29], (uint8_t)GIT_REV_CORE[3]);
3706  TF_copy_u8(&packet[30], (uint8_t)GIT_REV_CORE[4]);
3707  TF_copy_u8(&packet[31], (uint8_t)GIT_REV_CORE[5]);
3708  TF_copy_u8(&packet[32], (uint8_t)GIT_REV_CORE[6]);
3709  TF_copy_u8(&packet[33], (uint8_t)GIT_REV_CORE[7]);
3710  TF_copy_u8(&packet[34], (uint8_t)GIT_REV_CORE[8]);
3711  TF_copy_u8(&packet[35], (uint8_t)GIT_REV_CORE[9]);
3712  TF_copy_u8(&packet[36], (uint8_t)GIT_REV_CORE[10]);
3713  TF_copy_u8(&packet[37], (uint8_t)GIT_REV_CORE[11]);
3714  TF_copy_u8(&packet[38], (uint8_t)GIT_REV_CORE[12]);
3715  TF_copy_u8(&packet[39], (uint8_t)GIT_REV_CORE[13]);
3716  TF_copy_u8(&packet[40], (uint8_t)GIT_REV_CORE[14]);
3717  TF_copy_u8(&packet[41], (uint8_t)GIT_REV_CORE[15]);
3718  TF_copy_u8(&packet[42], (uint8_t)GIT_REV_CORE[16]);
3719  TF_copy_u8(&packet[43], (uint8_t)GIT_REV_CORE[17]);
3720  TF_copy_u8(&packet[44], (uint8_t)GIT_REV_CORE[18]);
3721  TF_copy_u8(&packet[45], (uint8_t)GIT_REV_CORE[19]);
3722  TF_copy_u8(&packet[46], (uint8_t)GIT_REV_CORE[20]);
3723  TF_copy_u8(&packet[47], (uint8_t)GIT_REV_CORE[21]);
3724  TF_copy_u8(&packet[48], (uint8_t)GIT_REV_CORE[22]);
3725  TF_copy_u8(&packet[49], (uint8_t)GIT_REV_CORE[23]);
3726  TF_copy_u8(&packet[50], (uint8_t)GIT_REV_CORE[24]);
3727  TF_copy_u8(&packet[51], (uint8_t)GIT_REV_CORE[25]);
3728  TF_copy_u8(&packet[52], (uint8_t)GIT_REV_CORE[26]);
3729  TF_copy_u8(&packet[53], (uint8_t)GIT_REV_CORE[27]);
3730  TF_copy_u8(&packet[54], (uint8_t)GIT_REV_CORE[28]);
3731  TF_copy_u8(&packet[55], (uint8_t)GIT_REV_CORE[29]);
3732  TF_copy_u8(&packet[56], (uint8_t)GIT_REV_CORE[30]);
3733  TF_copy_u8(&packet[57], (uint8_t)GIT_REV_CORE[31]);
3734  TF_copy_u8(&packet[58], (uint8_t)GIT_REV_CORE[32]);
3735  TF_copy_u8(&packet[59], (uint8_t)GIT_REV_CORE[33]);
3736  TF_copy_u8(&packet[60], (uint8_t)GIT_REV_CORE[34]);
3737  TF_copy_u8(&packet[61], (uint8_t)GIT_REV_CORE[35]);
3738  TF_copy_u8(&packet[62], (uint8_t)GIT_REV_CORE[36]);
3739  TF_copy_u8(&packet[63], (uint8_t)GIT_REV_CORE[37]);
3740  TF_copy_u8(&packet[64], (uint8_t)GIT_REV_CORE[38]);
3741  TF_copy_u8(&packet[65], (uint8_t)GIT_REV_CORE[39]);
3742  TF_copy_u8(&packet[66], (uint8_t)GIT_REV_CORE[40]);
3743  TF_copy_u8(&packet[67], (uint8_t)GIT_REV_USER[0]);
3744  TF_copy_u8(&packet[68], (uint8_t)GIT_REV_USER[1]);
3745  TF_copy_u8(&packet[69], (uint8_t)GIT_REV_USER[2]);
3746  TF_copy_u8(&packet[70], (uint8_t)GIT_REV_USER[3]);
3747  TF_copy_u8(&packet[71], (uint8_t)GIT_REV_USER[4]);
3748  TF_copy_u8(&packet[72], (uint8_t)GIT_REV_USER[5]);
3749  TF_copy_u8(&packet[73], (uint8_t)GIT_REV_USER[6]);
3750  TF_copy_u8(&packet[74], (uint8_t)GIT_REV_USER[7]);
3751  TF_copy_u8(&packet[75], (uint8_t)GIT_REV_USER[8]);
3752  TF_copy_u8(&packet[76], (uint8_t)GIT_REV_USER[9]);
3753  TF_copy_u8(&packet[77], (uint8_t)GIT_REV_USER[10]);
3754  TF_copy_u8(&packet[78], (uint8_t)GIT_REV_USER[11]);
3755  TF_copy_u8(&packet[79], (uint8_t)GIT_REV_USER[12]);
3756  TF_copy_u8(&packet[80], (uint8_t)GIT_REV_USER[13]);
3757  TF_copy_u8(&packet[81], (uint8_t)GIT_REV_USER[14]);
3758  TF_copy_u8(&packet[82], (uint8_t)GIT_REV_USER[15]);
3759  TF_copy_u8(&packet[83], (uint8_t)GIT_REV_USER[16]);
3760  TF_copy_u8(&packet[84], (uint8_t)GIT_REV_USER[17]);
3761  TF_copy_u8(&packet[85], (uint8_t)GIT_REV_USER[18]);
3762  TF_copy_u8(&packet[86], (uint8_t)GIT_REV_USER[19]);
3763  TF_copy_u8(&packet[87], (uint8_t)GIT_REV_USER[20]);
3764  TF_copy_u8(&packet[88], (uint8_t)GIT_REV_USER[21]);
3765  TF_copy_u8(&packet[89], (uint8_t)GIT_REV_USER[22]);
3766  TF_copy_u8(&packet[90], (uint8_t)GIT_REV_USER[23]);
3767  TF_copy_u8(&packet[91], (uint8_t)GIT_REV_USER[24]);
3768  TF_copy_u8(&packet[92], (uint8_t)GIT_REV_USER[25]);
3769  TF_copy_u8(&packet[93], (uint8_t)GIT_REV_USER[26]);
3770  TF_copy_u8(&packet[94], (uint8_t)GIT_REV_USER[27]);
3771  TF_copy_u8(&packet[95], (uint8_t)GIT_REV_USER[28]);
3772  TF_copy_u8(&packet[96], (uint8_t)GIT_REV_USER[29]);
3773  TF_copy_u8(&packet[97], (uint8_t)GIT_REV_USER[30]);
3774  TF_copy_u8(&packet[98], (uint8_t)GIT_REV_USER[31]);
3775  TF_copy_u8(&packet[99], (uint8_t)GIT_REV_USER[32]);
3776  TF_copy_u8(&packet[100], (uint8_t)GIT_REV_USER[33]);
3777  TF_copy_u8(&packet[101], (uint8_t)GIT_REV_USER[34]);
3778  TF_copy_u8(&packet[102], (uint8_t)GIT_REV_USER[35]);
3779  TF_copy_u8(&packet[103], (uint8_t)GIT_REV_USER[36]);
3780  TF_copy_u8(&packet[104], (uint8_t)GIT_REV_USER[37]);
3781  TF_copy_u8(&packet[105], (uint8_t)GIT_REV_USER[38]);
3782  TF_copy_u8(&packet[106], (uint8_t)GIT_REV_USER[39]);
3783  TF_copy_u8(&packet[107], (uint8_t)GIT_REV_USER[40]);
3784 #endif
3785 
3786  *len = 108;
3787  return TF_TLM_FUNC_ACK_SUCCESS;
3788 }
3789 
3790 static TF_TLM_FUNC_ACK Tlm_UART_TEST_(uint8_t* packet, uint16_t* len, uint16_t max_len)
3791 {
3792  if (55 > max_len) return TF_TLM_FUNC_ACK_TOO_SHORT_LEN;
3793 
3794 #ifndef BUILD_SETTINGS_FAST_BUILD
3809 #endif
3810 
3811  *len = 55;
3812  return TF_TLM_FUNC_ACK_SUCCESS;
3813 }
3814 
3815 #pragma section
const AppManager *const app_manager
Definition: app_manager.c:20
#define AM_TLM_PAGE_SIZE
AMのAppInfoテーブルの1テレメトリパケット(=1ページ)に格納されるAppInfo数(ページネーション用)
Definition: app_manager.h:9
const BCE_Params * BCE_get_bc_exe_params(const bct_id_t block)
BCE_Params の const getter
const uint8_t * BCT_get_param_head(const bct_id_t block, const uint8_t cmd)
BCT 内の Cmd の param_head の getter
cycle_t BCT_get_ti(const bct_id_t block, const uint8_t cmd)
BCT 内の Cmd の TI の getter
const BlockCommandTable *const block_command_table
CMD_CODE BCT_get_id(const bct_id_t block, const uint8_t cmd)
BCT 内の Cmd の CMD_CODE の getter
uint8_t BCT_get_bc_length(const bct_id_t block)
BCT の length の getter
uint16_t bct_id_t
const uint32_t GIT_REV_USER_SHORT
Definition: c2a_core_main.c:23
const char GIT_REV_CORE[41]
< 設定ないしcommit hashを読み込む
Definition: c2a_core_main.c:20
const uint32_t GIT_REV_CORE_SHORT
Definition: c2a_core_main.c:21
const char GIT_REV_USER[41]
Definition: c2a_core_main.c:22
const CommandAnalyze *const command_analyze
#define CA_TLM_PAGE_SIZE
コマンドテーブルの1テレメトリパケット(=1ページ)に格納されるコマンド数(ページネーション用)
CMD_CODE CCP_get_id(const CommonCmdPacket *packet)
CMD ID を取得
const uint8_t * CCP_get_param_head(const CommonCmdPacket *packet)
先頭のパラメタのポインタを取得
cycle_t CCP_get_ti(const CommonCmdPacket *packet)
TI を取得
const DI_GS_TlmPacketHandler *const DI_GS_rp_tlm_packet_handler
Definition: di_gs.c:34
const GS_Driver *const gs_driver
Definition: di_gs.c:29
const DI_GS_TlmPacketHandler *const DI_GS_rt_tlm_packet_handler
Definition: di_gs.c:32
const UART_TEST_Driver *const uart_test_driver
Definition: di_uart_test.c:24
const DividedCmdUtility *const divided_cmd_utility
const EventHandler *const event_handler
const EH_Log * EH_get_the_nth_log_from_the_latest(uint16_t n)
EH_LogTable の最新からn番目の対応ログを取得
#define EH_LOG_TLM_PAGE_SIZE
EH対応のログテーブルの1テレメトリパケット(=1ページ)に格納されるログ数(ページネーション用)
#define EH_RULE_TLM_PAGE_SIZE
event_handler のルールテーブルの1テレメトリパケット(=1ページ)に格納されるルール数(ページネーション用)
const EL_Event * EL_get_the_nth_tlog_from_the_latest(EL_ERROR_LEVEL err_level, uint16_t n)
TLog のイベントテーブルの最新からn番目のイベントを取得
Definition: event_logger.c:721
const EventLogger *const event_logger
Definition: event_logger.c:155
#define EL_TLOG_TLM_PAGE_SIZE
TLogにて,テレメ1ページにおろせるlog数
Definition: event_logger.h:51
#define EL_CLOG_TLM_PAGE_SIZE
CLogにて,テレメ1ページにおろせるlog数
Definition: event_logger.h:55
EL_ERROR_LEVEL
event_logger の エラーレベル
Definition: event_logger.h:261
@ EL_ERROR_LEVEL_MIDDLE
Definition: event_logger.h:264
@ EL_ERROR_LEVEL_EH
Definition: event_logger.h:270
@ EL_ERROR_LEVEL_HIGH
Definition: event_logger.h:262
@ EL_ERROR_LEVEL_LOW
Definition: event_logger.h:266
@ EL_ERROR_LEVEL_EL
Definition: event_logger.h:268
const EventUtility *const event_utility
Definition: event_utility.c:17
const CommandDispatcher *const gs_command_dispatcher
const GS_ValiateInfo *const gs_validate_info
Definition: gs_validate.c:40
const MemoryDump *const memory_dump
Definition: memory_dump.c:12
const ModeManager *const mode_manager
Definition: mode_manager.c:48
uint16_t MM_update_transition_table_for_tlm(void)
TLM 用情報の生成
Definition: mode_manager.c:307
PacketList PH_rt_cmd_list
PacketList PH_tl_cmd_list[TLCD_ID_MAX]
PacketList PH_rt_tlm_list
PacketList PH_gs_cmd_list
#define TL_TLM_PAGE_SIZE
const PL_Node * PL_get_head(const PacketList *pl)
PacketList の active な先頭 Node を取得
Definition: packet_list.c:150
uint16_t PL_count_active_nodes(const PacketList *pl)
PacketList で有効な(実行待ち) Node 数を返す
Definition: packet_list.c:104
uint32_t PL_count_executed_nodes(const PacketList *pl)
PacketList で実行された Node 数を返す
Definition: packet_list.c:97
int PL_is_empty(const PacketList *pl)
PacketList が空かどうか
Definition: packet_list.c:138
const CommandDispatcher *const realtime_command_dispatcher
step_t prev
アプリ実行処理時間(直近)
Definition: app_info.h:14
step_t min
アプリ実行処理時間(最小値)
Definition: app_info.h:15
void(* entry_point)(void)
アプリ実行関数(エントリーポイント)
Definition: app_info.h:18
step_t max
アプリ実行処理時間(最大値)
Definition: app_info.h:16
step_t init_duration
アプリ初期化処理時間
Definition: app_info.h:13
void(* initializer)(void)
アプリ初期化関数
Definition: app_info.h:17
AppInfo ais[AM_MAX_APPS]
Definition: app_manager.h:17
uint16_t call_num
Cmd_BCE_TIMELIMIT_COMBINE_BLOCKが呼ばれるたびにインクリメント
uint8_t worst_cmd_pos
最悪ケースのcmd pos
uint16_t interval
interval[cycle] ごとに実行される (大抵1)
uint8_t next_cmd
次に実行される cmd
uint8_t last_timeover_cmd_pos
前回時間制限に引っかかったときのcmd pos
uint16_t counter
interval の計算のための counter[cycle]
uint16_t timeover_num
時間制限に引っかかったらインクリメント
uint8_t cmd
そのブロック内でどのコマンドを指すか
bct_id_t block
ブロックの位置情報
BCT_Pos pos
登録などの作業中の位置情報
CCP_CmdRet(* cmd_func)(const CommonCmdPacket *)
コマンドとなる関数
CA_PackedParamSizeInfo param_size_infos[(CA_MAX_CMD_PARAM_NUM+1)/2]
パラメタサイズ情報
union CA_PackedParamSizeInfo::@19 packed_info
struct CA_PackedParamSizeInfo::@19::@20 bit
uint32_t err_code
各 Cmd ユニークなエラーコード.各 App で定義する enum などを入れることを想定.
CCP_EXEC_STS exec_sts
CCP_EXEC_STS.Cmd の統一的なエラーコード
uint32_t bitrate
継承先の機器のビットレート値 (bps)
Definition: ccsds.h:24
uint8_t buffer_num
送信バッファの残り数. 最大 CCSDS_FIFO_SIZE
Definition: ccsds_user.h:34
CMD_CODE code
実行コマンドID
CCP_CmdRet cmd_ret
実行結果
ObcTime time
実行時刻
Space Packet (コマンド用)
uint8_t tlm_page_no
テレメで使うページ数
CA_CmdInfo cmd_table[CA_MAX_CMDS]
コマンドテーブル
int stop_on_error
異常時実行中断フラグ
CDIS_ExecInfo prev_err
最後にエラーが出たコマンド実行情報
int lockout
実行中断フラグ
uint32_t error_counter
エラーカウンタ
CDIS_ExecInfo prev
前回のコマンド実行情報
CMD_CODE cmd_code
実行コマンド
ObcTime last_exec_time
最終実行時刻
CCP_EXEC_STS last_exec_sts
最終実行結果
uint16_t exec_counter
実行カウンタ.何度目の実行か?
DCU_STATUS status
実行状況
uint32_t vcdu_counter
VCDU counter
Definition: di_gs.h:23
TcpToMPdu tc_packet_to_m_pdu
PL から取り出した tc_packet を M_PDU に変換する
Definition: di_gs.h:21
DS_RecStatus rec_status_
IF受信状況
Definition: driver_super.h:258
uint32_t rx_count_
なにかしらのデータの受信回数
Definition: driver_super.h:260
struct DS_Config::@3 info
取得値(メトリクス)
int ret_from_if_rx
IF_RX の返り値
Definition: driver_super.h:138
struct DS_StreamConfig::@6 info
取得値(メトリクス)
DS_StreamRecBuffer * rx_buffer_
Definition: driver_super.h:312
DS_StreamRecStatus rec_status_
フレーム受信状況
Definition: driver_super.h:378
struct DS_StreamConfig::@5 settings
設定値
uint32_t rx_frame_fix_count_
フレーム受信確定回数
Definition: driver_super.h:384
uint16_t confirmed_frame_len
受信フレームとして受理された pos_of_frame_head_candidate からの長さ(フレーム確定後,これがフレーム長になる)
Definition: driver_super.h:227
uint8_t is_frame_fixed
このバッファ上でフレームが確定してるか?
Definition: driver_super.h:228
uint16_t size
現在使われているサイズ
Definition: driver_super.h:225
DS_STREAM_REC_STATUS_CODE status_code
status
Definition: driver_super.h:207
uint16_t fixed_frame_len
フレーム確定したときのフレーム長さ
Definition: driver_super.h:208
DCU_ExecStatus exec_logs[DCU_LOG_MAX]
実行ログ.[exec_log_order[0]] が最も新しい.古いものは捨てられていく.
uint8_t exec_log_order[DCU_LOG_MAX]
実行ログのソートキー. exec_logs を最新順に並べ替えるために使う.
DS_StreamConfig stream_config[DS_STREAM_MAX]
Definition: driver_super.h:414
DS_Config config
DriverSuper の設定
Definition: driver_super.h:412
uint32_t counter_total
前回 EH_execute 実行時の EL でのイベント記録数
uint32_t counters[EL_ERROR_LEVEL_MAX]
エラーレベルごとの記録数
uint8_t max_multi_level_num
uint8_t max_response_num
uint16_t max_check_event_num
uint16_t log_wp
uint32_t respond_counter
EH_RuleSettings settings
登録する EH_RuleSettings
EH_REGISTER_ACK register_ack
EH_register_rule の返り値
EH_RULE_ID rule_id
登録先 EH_RULE_ID
EL_Event に対して対応する EH_Rule
EH_RuleSettings settings
設定値
ObcTime last_event_time
最後に発生した EL_Event の時刻
uint16_t counter
EH 対応までのカウンタ
struct EH_RuleSettings::@8 event
EH に対応する EL_Event
EL_GROUP group
引っ掛ける EL_Event.group
uint32_t time_threshold_ms
uint8_t should_match_err_level
EL_Event の一致に,エラーレベル一致を含めるか?
uint8_t is_active
対応が有効か? 対応後,自動的に無効になる
struct EH_RuleSettings::@9 condition
EH 対応条件
EH_RESPONSE_CONDITION_TYPE type
EH 対応の条件種類
bct_id_t deploy_bct_id
EH 対応に展開する BCT id
uint16_t count_threshold
uint32_t local
引っ掛ける EL_Event.local
EL_ERROR_LEVEL err_level
EL_GROUP group
EH_Rule.event.group
uint8_t duplicate_id
同じ {group. local} の rule がある場合の,重複ID
uint32_t local
EH_Rule.event.local
EH_RULE_ID rule_id
EventHandler.rules の idx
uint16_t registered_rule_num
登録済み rule 数
EH_Rule rules[EH_RULE_MAX]
idx は EH_RULE_ID
struct EH_TlmInfo::@11 rule_sorted_index
struct EH_TlmInfo::@10 rule
struct EH_TlmInfo::@12 log
uint8_t page_no
EH_RULE_ID target_rule_id
累積ログ (CLog) の1要素 note group, local が同じイベントを同一とみなす
Definition: event_logger.h:346
uint16_t * log_orders
logs を時系列順に並び替える sort_key(サイズ可変のためポインタ)
Definition: event_logger.h:360
uint16_t log_capacity
イベントテーブルのキャパシティ(サイズ)
Definition: event_logger.h:361
EL_CLogElement * logs
累積カウンタを保持するイベントテーブル.[log_order[0]] が最新.(サイズ可変のためポインタ)
Definition: event_logger.h:359
イベント
Definition: event_logger.h:297
EL_GROUP group
イベントを特定する group id
Definition: event_logger.h:298
uint32_t note
Definition: event_logger.h:305
uint32_t local
Definition: event_logger.h:299
ObcTime time
発生時刻
Definition: event_logger.h:303
EL_ERROR_LEVEL err_level
エラーレベル
Definition: event_logger.h:302
uint32_t record_counters[EL_ERROR_LEVEL_MAX]
エラーレベルごとの記録数
Definition: event_logger.h:319
uint32_t record_counter_total
イベント記録数
Definition: event_logger.h:318
uint16_t log_wp
イベントテーブルの write pointer.次回書き込み場所
Definition: event_logger.h:332
uint8_t is_enable_overwrite
TLogの上書きを許可するか?(デフォルトでは許可)
Definition: event_logger.h:333
uint8_t is_table_overflow
上書きが無効の場合,溢れて追記できなかったか?
Definition: event_logger.h:334
uint16_t log_capacity
イベントテーブルのキャパシティ(サイズ)
Definition: event_logger.h:331
EL_Event * events
記録するイベントテーブル(サイズ可変のためポインタ)
Definition: event_logger.h:330
struct EL_TlmInfo::@13 tlog
struct EL_TlmInfo::@14 clog
uint8_t page_no
tlm で下ろすログページ
Definition: event_logger.h:371
EL_ERROR_LEVEL err_level
tlm で下ろす情報のエラーレベル
Definition: event_logger.h:372
EH_ExecSettings exec_settings
実行時設定
EH_ElEventCounter el_event_counter
EH_ElEventCounter
EH_RegisterFromCmd reg_from_cmd
コマンド経由で EH_Rule を登録するときに使う内部状態変数
EH_RuleTable rule_table
EH_Rule のテーブル
EH_LogTable log_table
EH 対応ログテーブル
EH_RuleSortedIndex sorted_idxes[EH_RULE_MAX]
rules の二分探索用 idx
EH_TlmInfo tlm_info
tlmのための情報
EL_EventStatistics statistics
統計情報
Definition: event_logger.h:394
EL_TlmInfo tlm_info
tlmのための情報
Definition: event_logger.h:395
uint8_t is_logging_enable[EL_GROUP_MAX/8+1]
有効かフラグ.メモリ削減のため, bit 単位で保存
Definition: event_logger.h:397
EL_TimeSeriesLog tlogs[EL_ERROR_LEVEL_MAX]
Definition: event_logger.h:388
EL_Event latest_event
Definition: event_logger.h:399
EL_CumulativeLog clogs[EL_ERROR_LEVEL_MAX]
Definition: event_logger.h:391
uint8_t is_enabled_eh_execution
EH の実行が有効か?
Definition: event_utility.h:20
struct GS_Driver::@72 driver_ccsds
CCSDS_Config ccsds_config
Definition: gs.h:71
const GS_Info * latest_info
Definition: gs.h:83
GS_Info info[GS_PORT_TYPE_NUM]
CCSDS 用と UART 用 2 つ
Definition: gs.h:82
uint8_t is_tlm_on
UART に TLM を流すかどうか, CCSDS では許容でも UART に TLM を送りすぎると詰まってしまうため
Definition: gs.h:79
CCSDS_Info ccsds_info
Definition: gs.h:84
GS_PORT_TYPE tlm_tx_port_type
Definition: gs.h:85
struct GS_Driver::@73 driver_uart
UART_Config uart_config
Definition: gs.h:78
VCDU_VCID vcid
送信した TLM のタイプ
Definition: gs.h:56
cycle_t last_rec_time
最後に受信した時刻
Definition: gs.h:41
struct GS_Info::@69::@71 tctf
struct GS_Info::@69 rx
struct GS_Info::@70 tx
uint32_t vcdu_counter
VCDU counter
Definition: gs.h:57
CCP_DEST_TYPE last_dest_type
最後に受信したパケットの dest type
Definition: gs.h:40
PH_ACK cmd_ack
受信した CMD の実行結果
Definition: gs.h:42
int ret_from_if_rx
UART or CCSDS からの返り値
Definition: gs.h:39
cycle_t send_cycle
最後に送信したときの時刻
Definition: gs.h:55
DS_ERR_CODE rec_status
DriverSuper からの受信結果
Definition: gs.h:38
uint8_t retransmit_flag
Definition: gs_validate.h:57
uint8_t type_b_counter
Definition: gs_validate.h:54
uint8_t type_a_counter
Definition: gs_validate.h:53
uint8_t positive_window_width
Definition: gs_validate.h:58
uint8_t lockout_flag
Definition: gs_validate.h:56
uint8_t to
モード遷移先
Definition: mode_manager.h:53
uint8_t from
モード遷移元
Definition: mode_manager.h:52
bct_id_t bc_index
モード遷移に該当する bc id
Definition: mode_manager.h:54
uint32_t rp
Definition: memory_dump.h:25
uint8_t adu_counter
Definition: memory_dump.h:23
uint16_t adu_seq
Definition: memory_dump.h:22
uint32_t end
Definition: memory_dump.h:20
uint32_t begin
Definition: memory_dump.h:19
uint32_t adu_size
Definition: memory_dump.h:21
uint32_t dest
Definition: memory_dump.h:24
MM_TransitionEdge transition_table_for_tlm[MD_MODEID_MODE_MAX *MD_MODEID_MODE_MAX]
テレメ用のテーブル
Definition: mode_manager.h:70
MD_MODEID current_id
現在のモードID
Definition: mode_manager.h:67
bct_id_t mode_list[MD_MODEID_MODE_MAX]
各モードIDに対応するブロックコマンドIDを保存する
Definition: mode_manager.h:63
MD_MODEID previous_id
ひとつ前のモードID
Definition: mode_manager.h:66
MM_STATUS stat
モード遷移状態
Definition: mode_manager.h:65
MM_ACK mm_ack
エラー情報保存用
Definition: mode_manager.h:68
cycle_t total_cycle
TI のこと. OBC が起動してから(正確には,構造体が初期化されてから)の経過時間
Definition: obc_time.h:19
step_t step
内部 step. TimeLine での処理時間分割に使われる
Definition: obc_time.h:21
tlm の情報
TF_TLM_FUNC_ACK(* tlm_func)(uint8_t *, uint16_t *, uint16_t)
tlm packet の中身を生成する関数
TLM_MGR_CmdElem cmds[TLM_MGR_MAX_CMD_NUM_PER_BC]
bct_id_t bc_id
使う BC ID
TLM_MGR_BC_ROLE bc_role
その BC の役割
TLM_MGR_CMD_TYPE cmd_type
BC に登録された(テレメ生成などの)コマンドのタイプ (未登録は TLM_MGR_CMD_TYPE_UNREGISTERED (0))
uint8_t dr_partition
登録された tlm 生成コマンドの dr_partition (未登録は 0)
APID apid
登録された tlm 生成コマンドの APID (未登録は 0)
TLM_CODE tlm_id
登録された tlm 生成コマンドの生成 tlm id (未登録は 0)
TLM_MGR_CmdBlock cmd_blocks[TLM_MGR_USE_BC_NUM]
BC の各 Block ごとの情報
uint8_t cmd_table_idxes_size
cmd_table_idxes の配列数
uint8_t cmd_table_idxes[TLM_MGR_USE_BC_NUM]
TLM_MGR_CmdTable.cmd_blocks のどの idx を使うか.static 確保のため,最大数 TLM_MGR_USE_BC_NUM の配列を確保
bct_id_t task_list_id
タスクリストに展開するブロックコマンドのID
CommandDispatcher tskd
タスクリストへのポインタと、その他実行情報を保存する構造体
cycle_t last_updated
Definition: tcp_to_m_pdu.h:38
cycle_t flush_interval
Definition: tcp_to_m_pdu.h:37
TF_TlmInfo tlm_table[TF_MAX_TLMS]
テレメトリテーブル
uint8_t tlm_page_no
テレメで使うページ数
TLM_MGR_CmdTable cmd_table
現在 BC に登録された(テレメ生成などの)コマンド
uint8_t is_inited
初期化されているか?
TLM_MGR_RegisterInfo low_freq
TLM_MGR_BC_ROLE_LOW_FREQ_TLM; User テレメ (1/10 Hz)
TLM_MGR_RegisterInfo hk
TLM_MGR_RegisterInfo high_freq
TLM_MGR_BC_ROLE_HIGH_FREQ_TLM; User テレメ (1 Hz)
bct_id_t deploy_bc_id
master BC を deploy する BC の ID
bct_id_t master_bc_id
TLM_MGR_USE_BC_NUM 個の tlm bc を順次実行していく master BC の ID
struct TelemetryManager::@0 register_info
struct TimeManager::@15 unixtime_info_
double cycle_correction
Definition: time_manager.h:39
CommandDispatcher dispatcher[TLCD_ID_MAX]
struct TimelineCommandDispatcher::@1 tlm_info_
const CommonCmdPacket * tl_list[PH_TLC_GS_LIST_MAX]
PARITY_SETTINGS parity_settings
パリティ設定
Definition: uart.h:85
UART_DATA_LENGTH data_length
データ長
Definition: uart.h:86
uint32_t baudrate
継承先の機器のボーレート値
Definition: uart.h:84
uint8_t ch
継承先の機器がつながっているポート番号
Definition: uart.h:82
UART_STOP_BIT stop_bit
ストップビット
Definition: uart.h:87
struct UART_TEST_Driver::@74 driver
DriverSuper super
DriverSuper class
Definition: uart_test.h:28
uint8_t is_clear_enable
Definition: wdt.h:14
uint8_t is_wdt_enable
Definition: wdt.h:13
const TaskDsipatcher *const task_dispatcher
static TF_TLM_FUNC_ACK Tlm_TF_(uint8_t *packet, uint16_t *len, uint16_t max_len)
static TF_TLM_FUNC_ACK Tlm_EL_CLOG_(uint8_t *packet, uint16_t *len, uint16_t max_len)
static TF_TLM_FUNC_ACK Tlm_UART_TEST_(uint8_t *packet, uint16_t *len, uint16_t max_len)
static TF_TLM_FUNC_ACK Tlm_EH_LOG_(uint8_t *packet, uint16_t *len, uint16_t max_len)
static TF_TLM_FUNC_ACK Tlm_GS_(uint8_t *packet, uint16_t *len, uint16_t max_len)
static TF_TLM_FUNC_ACK Tlm_AM_(uint8_t *packet, uint16_t *len, uint16_t max_len)
static TF_TLM_FUNC_ACK Tlm_TLM_MGR2_(uint8_t *packet, uint16_t *len, uint16_t max_len)
static TF_TLM_FUNC_ACK Tlm_EL_(uint8_t *packet, uint16_t *len, uint16_t max_len)
static TF_TLM_FUNC_ACK Tlm_TL_(uint8_t *packet, uint16_t *len, uint16_t max_len)
static TF_TLM_FUNC_ACK Tlm_MEM_(uint8_t *packet, uint16_t *len, uint16_t max_len)
static TF_TLM_FUNC_ACK Tlm_APP_TIME_(uint8_t *packet, uint16_t *len, uint16_t max_len)
void TF_load_tlm_table(TF_TlmInfo tlm_table[TF_MAX_TLMS])
Tlm Tableのロード
static TF_TLM_FUNC_ACK Tlm_GIT_REV_(uint8_t *packet, uint16_t *len, uint16_t max_len)
static TF_TLM_FUNC_ACK Tlm_CA_(uint8_t *packet, uint16_t *len, uint16_t max_len)
static TF_TLM_FUNC_ACK Tlm_EH_INDEX_(uint8_t *packet, uint16_t *len, uint16_t max_len)
static TF_TLM_FUNC_ACK Tlm_TLM_MGR1_(uint8_t *packet, uint16_t *len, uint16_t max_len)
static TF_TLM_FUNC_ACK Tlm_BL_(uint8_t *packet, uint16_t *len, uint16_t max_len)
static TF_TLM_FUNC_ACK Tlm_MOBC_(uint8_t *packet, uint16_t *len, uint16_t max_len)
static TF_TLM_FUNC_ACK Tlm_MM_(uint8_t *packet, uint16_t *len, uint16_t max_len)
static TF_TLM_FUNC_ACK Tlm_EL_TLOG_(uint8_t *packet, uint16_t *len, uint16_t max_len)
static TF_TLM_FUNC_ACK Tlm_DCU_(uint8_t *packet, uint16_t *len, uint16_t max_len)
static TF_TLM_FUNC_ACK Tlm_EH_RULE_(uint8_t *packet, uint16_t *len, uint16_t max_len)
static TF_TLM_FUNC_ACK Tlm_EH_(uint8_t *packet, uint16_t *len, uint16_t max_len)
static TF_TLM_FUNC_ACK Tlm_HK_(uint8_t *packet, uint16_t *len, uint16_t max_len)
テレメトリ定義
@ Tlm_CODE_BL
@ Tlm_CODE_UART_TEST
@ Tlm_CODE_APP_TIME
@ Tlm_CODE_EH_LOG
@ Tlm_CODE_GS
@ Tlm_CODE_HK
@ Tlm_CODE_AM
@ Tlm_CODE_DCU
@ Tlm_CODE_EL_TLOG
@ Tlm_CODE_CA
@ Tlm_CODE_TLM_MGR1
@ Tlm_CODE_EL_CLOG
@ Tlm_CODE_EH_INDEX
@ Tlm_CODE_EH_RULE
@ Tlm_CODE_EL
@ Tlm_CODE_MM
@ Tlm_CODE_TL
@ Tlm_CODE_TLM_MGR2
@ Tlm_CODE_EH
@ Tlm_CODE_MOBC
@ Tlm_CODE_TF
@ Tlm_CODE_MEM
@ Tlm_CODE_GIT_REV
void TF_copy_u8(uint8_t *ptr, uint8_t data)
void TF_copy_u32(uint8_t *ptr, uint32_t data)
void TF_copy_double(uint8_t *ptr, double data)
void TF_copy_u16(uint8_t *ptr, uint16_t data)
void TF_copy_i8(uint8_t *ptr, int8_t data)
const TelemetryFrame *const telemetry_frame
void TF_copy_i32(uint8_t *ptr, int32_t data)
テレメトリの登録,テレメトリ関連処理
#define TF_MAX_TLMS
テレメテーブルサイズ.すなわち登録できる最大テレメ数
#define TF_TLM_PAGE_SIZE
テレメテーブルの1テレメトリパケット(=1ページ)に格納されるテレメ数
TF_TLM_FUNC_ACK
tlm_func の返り値につかう
@ TF_TLM_FUNC_ACK_TOO_SHORT_LEN
CommonTlmPacket が,生成されるテレメに比べて小さすぎる(定義されたテレメが大きすぎる)
@ TF_TLM_FUNC_ACK_SUCCESS
成功
const TelemetryManager *const telemetry_manager
テレメトリ定義に必要なヘッダー
double TMGR_get_utl_unixtime_epoch(void)
utl_unixtime_epoch を取得する
Definition: time_manager.c:153
double TMGR_get_unixtime_at_ti0(void)
unixtime_at_ti0 を取得する
Definition: time_manager.c:148
const TimeManager *const time_manager
Definition: time_manager.c:14
ObcTime TMGR_get_master_clock(void)
現在の master_clock_ を取得する
Definition: time_manager.c:80
TLCD_ID TLCD_update_tl_list_for_tlm(TLCD_ID id)
テレメの内容を自動更新する.
const TimelineCommandDispatcher *const timeline_command_dispatcher
const WDT_Config *const wdt_config