tdl-xoa-driver 1.3.0__py3-none-any.whl → 1.4.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (235) hide show
  1. {tdl_xoa_driver-1.3.0.dist-info → tdl_xoa_driver-1.4.0.dist-info}/METADATA +5 -5
  2. tdl_xoa_driver-1.4.0.dist-info/RECORD +218 -0
  3. xoa_driver/__init__.py +2 -2
  4. xoa_driver/functions/anlt.py +2 -2
  5. xoa_driver/functions/mgmt.py +11 -20
  6. xoa_driver/hlfuncs.py +1 -1
  7. xoa_driver/internals/commands/p_commands.py +12 -10
  8. xoa_driver/internals/commands/pt_commands.py +21 -1
  9. xoa_driver/internals/commands/px_commands.py +1686 -6
  10. xoa_driver/internals/core/transporter/_request_id_counter.py +1 -1
  11. xoa_driver/internals/core/transporter/protocol/payload/__init__.py +3 -1
  12. xoa_driver/internals/core/transporter/protocol/payload/field.py +41 -0
  13. xoa_driver/internals/core/transporter/protocol/payload/types.py +19 -0
  14. xoa_driver/internals/{hli_v1 → hli}/indices/filter/base_filter.py +1 -1
  15. xoa_driver/internals/{hli_v1 → hli}/indices/length_term.py +1 -1
  16. xoa_driver/internals/{hli_v1 → hli}/indices/macsecscs/base_macsecsc.py +2 -2
  17. xoa_driver/internals/{hli_v1 → hli}/indices/match_term.py +1 -1
  18. xoa_driver/internals/{hli_v1 → hli}/indices/port_dataset.py +1 -1
  19. xoa_driver/internals/{hli_v1 → hli}/indices/streams/base_stream.py +1 -1
  20. xoa_driver/internals/{hli_v1 → hli}/modules/module_chimera.py +3 -3
  21. xoa_driver/internals/{hli_v1 → hli}/modules/module_l47.py +1 -1
  22. xoa_driver/internals/{hli_v1 → hli}/modules/modules_l23/family_combi.py +1 -1
  23. xoa_driver/internals/{hli_v1 → hli}/modules/modules_l23/family_d.py +1 -1
  24. xoa_driver/internals/{hli_v1 → hli}/modules/modules_l23/family_e.py +1 -1
  25. xoa_driver/internals/{hli_v1 → hli}/modules/modules_l23/family_f.py +1 -1
  26. xoa_driver/internals/{hli_v1 → hli}/modules/modules_l23/family_g.py +17 -2
  27. xoa_driver/internals/{hli_v1 → hli}/modules/modules_l23/family_h.py +1 -1
  28. xoa_driver/internals/{hli_v1 → hli}/modules/modules_l23/family_i.py +1 -1
  29. xoa_driver/internals/{hli_v1 → hli}/modules/modules_l23/family_j.py +1 -1
  30. xoa_driver/internals/{hli_v1 → hli}/modules/modules_l23/family_k.py +1 -1
  31. xoa_driver/internals/{hli_v1 → hli}/modules/modules_l23/family_l.py +1 -1
  32. xoa_driver/internals/{hli_v1 → hli}/modules/modules_l23/family_l1.py +1 -1
  33. xoa_driver/internals/{hli_v1 → hli}/modules/modules_l23/family_m.py +1 -1
  34. xoa_driver/internals/{hli_v1 → hli}/modules/modules_l23/family_n.py +1 -1
  35. xoa_driver/internals/{hli_v1 → hli}/modules/modules_l23/module_l23_base.py +1 -1
  36. xoa_driver/internals/{hli_v1 → hli}/ports/port_l23/bases/port_l23.py +3 -3
  37. xoa_driver/internals/{hli_v1 → hli}/ports/port_l23/bases/port_l23_genuine.py +4 -4
  38. xoa_driver/internals/hli/ports/port_l23/bases/port_transceiver.py +247 -0
  39. xoa_driver/internals/{hli_v1 → hli}/ports/port_l23/bases/port_transmission_statistics.py +1 -1
  40. xoa_driver/internals/{hli_v1 → hli}/ports/port_l23/chimera/port_chimera.py +1 -1
  41. xoa_driver/internals/{hli_v2 → hli}/ports/port_l23/family_g.py +5 -0
  42. xoa_driver/internals/{hli_v1 → hli}/ports/port_l23/port_l23ve.py +2 -2
  43. xoa_driver/internals/{hli_v1 → hli}/ports/port_l47/main.py +2 -2
  44. xoa_driver/internals/{hli_v1 → hli}/testers/l23_tester.py +1 -1
  45. xoa_driver/internals/{hli_v1 → hli}/testers/l47_tester.py +2 -2
  46. xoa_driver/misc.py +12 -17
  47. xoa_driver/modules.py +18 -22
  48. xoa_driver/ports.py +20 -20
  49. xoa_driver/testers.py +4 -8
  50. tdl_xoa_driver-1.3.0.dist-info/RECORD +0 -325
  51. xoa_driver/internals/hli_v1/ports/port_l23/bases/port_transceiver.py +0 -117
  52. xoa_driver/internals/hli_v1/ports/port_l23/family_g.py +0 -77
  53. xoa_driver/internals/hli_v2/__init__.py +0 -0
  54. xoa_driver/internals/hli_v2/indices/__init__.py +0 -0
  55. xoa_driver/internals/hli_v2/indices/base_index.py +0 -39
  56. xoa_driver/internals/hli_v2/indices/connection_group/__init__.py +0 -0
  57. xoa_driver/internals/hli_v2/indices/connection_group/cg.py +0 -115
  58. xoa_driver/internals/hli_v2/indices/connection_group/histogram.py +0 -59
  59. xoa_driver/internals/hli_v2/indices/connection_group/l2.py +0 -71
  60. xoa_driver/internals/hli_v2/indices/connection_group/l3.py +0 -96
  61. xoa_driver/internals/hli_v2/indices/connection_group/raw.py +0 -148
  62. xoa_driver/internals/hli_v2/indices/connection_group/replay.py +0 -89
  63. xoa_driver/internals/hli_v2/indices/connection_group/tcp.py +0 -261
  64. xoa_driver/internals/hli_v2/indices/connection_group/tls.py +0 -166
  65. xoa_driver/internals/hli_v2/indices/connection_group/udp.py +0 -112
  66. xoa_driver/internals/hli_v2/indices/connection_group/user_state.py +0 -25
  67. xoa_driver/internals/hli_v2/indices/filter/__init__.py +0 -0
  68. xoa_driver/internals/hli_v2/indices/filter/base_filter.py +0 -50
  69. xoa_driver/internals/hli_v2/indices/filter/genuine_filter.py +0 -17
  70. xoa_driver/internals/hli_v2/indices/length_term.py +0 -44
  71. xoa_driver/internals/hli_v2/indices/match_term.py +0 -49
  72. xoa_driver/internals/hli_v2/indices/port_dataset.py +0 -53
  73. xoa_driver/internals/hli_v2/indices/streams/__init__.py +0 -0
  74. xoa_driver/internals/hli_v2/indices/streams/base_stream.py +0 -234
  75. xoa_driver/internals/hli_v2/indices/streams/genuine_stream.py +0 -32
  76. xoa_driver/internals/hli_v2/modules/__init__.py +0 -0
  77. xoa_driver/internals/hli_v2/modules/__interfaces.py +0 -21
  78. xoa_driver/internals/hli_v2/modules/base_module.py +0 -125
  79. xoa_driver/internals/hli_v2/modules/module_chimera.py +0 -358
  80. xoa_driver/internals/hli_v2/modules/module_l23ve.py +0 -58
  81. xoa_driver/internals/hli_v2/modules/module_l47.py +0 -230
  82. xoa_driver/internals/hli_v2/modules/module_l47ve.py +0 -8
  83. xoa_driver/internals/hli_v2/modules/modules_l23/__init__.py +0 -0
  84. xoa_driver/internals/hli_v2/modules/modules_l23/family_combi.py +0 -73
  85. xoa_driver/internals/hli_v2/modules/modules_l23/family_d.py +0 -75
  86. xoa_driver/internals/hli_v2/modules/modules_l23/family_e.py +0 -85
  87. xoa_driver/internals/hli_v2/modules/modules_l23/family_f.py +0 -144
  88. xoa_driver/internals/hli_v2/modules/modules_l23/family_g.py +0 -84
  89. xoa_driver/internals/hli_v2/modules/modules_l23/family_h.py +0 -40
  90. xoa_driver/internals/hli_v2/modules/modules_l23/family_i.py +0 -25
  91. xoa_driver/internals/hli_v2/modules/modules_l23/family_j.py +0 -25
  92. xoa_driver/internals/hli_v2/modules/modules_l23/family_k.py +0 -39
  93. xoa_driver/internals/hli_v2/modules/modules_l23/family_l.py +0 -55
  94. xoa_driver/internals/hli_v2/modules/modules_l23/family_l1.py +0 -797
  95. xoa_driver/internals/hli_v2/modules/modules_l23/family_m.py +0 -25
  96. xoa_driver/internals/hli_v2/modules/modules_l23/family_n.py +0 -40
  97. xoa_driver/internals/hli_v2/modules/modules_l23/module_l23_base.py +0 -339
  98. xoa_driver/internals/hli_v2/ports/__init__.py +0 -0
  99. xoa_driver/internals/hli_v2/ports/base_port.py +0 -105
  100. xoa_driver/internals/hli_v2/ports/port_l23/__init__.py +0 -0
  101. xoa_driver/internals/hli_v2/ports/port_l23/bases/__init__.py +0 -0
  102. xoa_driver/internals/hli_v2/ports/port_l23/bases/port_capture.py +0 -64
  103. xoa_driver/internals/hli_v2/ports/port_l23/bases/port_l23.py +0 -441
  104. xoa_driver/internals/hli_v2/ports/port_l23/bases/port_l23_genuine.py +0 -172
  105. xoa_driver/internals/hli_v2/ports/port_l23/bases/port_reception_statistics.py +0 -156
  106. xoa_driver/internals/hli_v2/ports/port_l23/bases/port_transceiver.py +0 -117
  107. xoa_driver/internals/hli_v2/ports/port_l23/bases/port_transmission_statistics.py +0 -59
  108. xoa_driver/internals/hli_v2/ports/port_l23/chimera/__init__.py +0 -0
  109. xoa_driver/internals/hli_v2/ports/port_l23/chimera/filter_definition/__init__.py +0 -0
  110. xoa_driver/internals/hli_v2/ports/port_l23/chimera/filter_definition/_utils.py +0 -15
  111. xoa_driver/internals/hli_v2/ports/port_l23/chimera/filter_definition/general.py +0 -340
  112. xoa_driver/internals/hli_v2/ports/port_l23/chimera/filter_definition/shadow.py +0 -99
  113. xoa_driver/internals/hli_v2/ports/port_l23/chimera/filter_definition/working.py +0 -36
  114. xoa_driver/internals/hli_v2/ports/port_l23/chimera/pe_custom_distribution.py +0 -116
  115. xoa_driver/internals/hli_v2/ports/port_l23/chimera/pe_distribution.py +0 -102
  116. xoa_driver/internals/hli_v2/ports/port_l23/chimera/port_chimera.py +0 -113
  117. xoa_driver/internals/hli_v2/ports/port_l23/chimera/port_emulation.py +0 -420
  118. xoa_driver/internals/hli_v2/ports/port_l23/chimera/reception_statistics.py +0 -22
  119. xoa_driver/internals/hli_v2/ports/port_l23/chimera/transmission_statistics.py +0 -22
  120. xoa_driver/internals/hli_v2/ports/port_l23/family_combi.py +0 -36
  121. xoa_driver/internals/hli_v2/ports/port_l23/family_d.py +0 -49
  122. xoa_driver/internals/hli_v2/ports/port_l23/family_e.py +0 -96
  123. xoa_driver/internals/hli_v2/ports/port_l23/family_f.py +0 -144
  124. xoa_driver/internals/hli_v2/ports/port_l23/family_h.py +0 -60
  125. xoa_driver/internals/hli_v2/ports/port_l23/family_i.py +0 -66
  126. xoa_driver/internals/hli_v2/ports/port_l23/family_j.py +0 -53
  127. xoa_driver/internals/hli_v2/ports/port_l23/family_k.py +0 -58
  128. xoa_driver/internals/hli_v2/ports/port_l23/family_l.py +0 -67
  129. xoa_driver/internals/hli_v2/ports/port_l23/family_l1.py +0 -149
  130. xoa_driver/internals/hli_v2/ports/port_l23/family_m.py +0 -28
  131. xoa_driver/internals/hli_v2/ports/port_l23/fault_jkl.py +0 -22
  132. xoa_driver/internals/hli_v2/ports/port_l23/pcs_pma_ghijkl.py +0 -342
  133. xoa_driver/internals/hli_v2/ports/port_l23/pcs_pma_ijkl_chimera.py +0 -50
  134. xoa_driver/internals/hli_v2/ports/port_l23/pcs_pma_l.py +0 -65
  135. xoa_driver/internals/hli_v2/ports/port_l23/port_l23ve.py +0 -81
  136. xoa_driver/internals/hli_v2/ports/port_l47/__init__.py +0 -0
  137. xoa_driver/internals/hli_v2/ports/port_l47/counters.py +0 -146
  138. xoa_driver/internals/hli_v2/ports/port_l47/main.py +0 -137
  139. xoa_driver/internals/hli_v2/ports/port_l47/packet_engine.py +0 -20
  140. xoa_driver/internals/hli_v2/revisions.py +0 -11
  141. xoa_driver/internals/hli_v2/testers/__init__.py +0 -0
  142. xoa_driver/internals/hli_v2/testers/_base_tester.py +0 -207
  143. xoa_driver/internals/hli_v2/testers/genuine/__init__.py +0 -0
  144. xoa_driver/internals/hli_v2/testers/genuine/l_23/__init__.py +0 -0
  145. xoa_driver/internals/hli_v2/testers/genuine/l_23/health.py +0 -16
  146. xoa_driver/internals/hli_v2/testers/genuine/l_23/rest_api.py +0 -34
  147. xoa_driver/internals/hli_v2/testers/genuine/l_23/time_keeper.py +0 -50
  148. xoa_driver/internals/hli_v2/testers/genuine/l_23/upload_file.py +0 -26
  149. xoa_driver/internals/hli_v2/testers/genuine/management_interface.py +0 -38
  150. xoa_driver/internals/hli_v2/testers/l23_tester.py +0 -159
  151. xoa_driver/internals/hli_v2/testers/l23ve_tester.py +0 -98
  152. xoa_driver/internals/hli_v2/testers/l47_tester.py +0 -95
  153. xoa_driver/internals/hli_v2/testers/l47ve_tester.py +0 -50
  154. xoa_driver/v2/__init__.py +0 -11
  155. xoa_driver/v2/misc.py +0 -77
  156. xoa_driver/v2/modules.py +0 -308
  157. xoa_driver/v2/ports.py +0 -232
  158. xoa_driver/v2/testers.py +0 -24
  159. {tdl_xoa_driver-1.3.0.dist-info → tdl_xoa_driver-1.4.0.dist-info}/WHEEL +0 -0
  160. {tdl_xoa_driver-1.3.0.dist-info → tdl_xoa_driver-1.4.0.dist-info}/licenses/LICENSE +0 -0
  161. {tdl_xoa_driver-1.3.0.dist-info → tdl_xoa_driver-1.4.0.dist-info}/top_level.txt +0 -0
  162. /xoa_driver/internals/{hli_v1 → hli}/__init__.py +0 -0
  163. /xoa_driver/internals/{hli_v1 → hli}/indices/__init__.py +0 -0
  164. /xoa_driver/internals/{hli_v1 → hli}/indices/base_index.py +0 -0
  165. /xoa_driver/internals/{hli_v1 → hli}/indices/connection_group/__init__.py +0 -0
  166. /xoa_driver/internals/{hli_v1 → hli}/indices/connection_group/cg.py +0 -0
  167. /xoa_driver/internals/{hli_v1 → hli}/indices/connection_group/histogram.py +0 -0
  168. /xoa_driver/internals/{hli_v1 → hli}/indices/connection_group/l2.py +0 -0
  169. /xoa_driver/internals/{hli_v1 → hli}/indices/connection_group/l3.py +0 -0
  170. /xoa_driver/internals/{hli_v1 → hli}/indices/connection_group/raw.py +0 -0
  171. /xoa_driver/internals/{hli_v1 → hli}/indices/connection_group/replay.py +0 -0
  172. /xoa_driver/internals/{hli_v1 → hli}/indices/connection_group/tcp.py +0 -0
  173. /xoa_driver/internals/{hli_v1 → hli}/indices/connection_group/tls.py +0 -0
  174. /xoa_driver/internals/{hli_v1 → hli}/indices/connection_group/udp.py +0 -0
  175. /xoa_driver/internals/{hli_v1 → hli}/indices/connection_group/user_state.py +0 -0
  176. /xoa_driver/internals/{hli_v1 → hli}/indices/filter/__init__.py +0 -0
  177. /xoa_driver/internals/{hli_v1 → hli}/indices/filter/genuine_filter.py +0 -0
  178. /xoa_driver/internals/{hli_v1 → hli}/indices/macsecscs/__init__.py +0 -0
  179. /xoa_driver/internals/{hli_v1 → hli}/indices/macsecscs/genuine_macsecsc.py +0 -0
  180. /xoa_driver/internals/{hli_v1 → hli}/indices/streams/__init__.py +0 -0
  181. /xoa_driver/internals/{hli_v1 → hli}/indices/streams/genuine_stream.py +0 -0
  182. /xoa_driver/internals/{hli_v1 → hli}/modules/__init__.py +0 -0
  183. /xoa_driver/internals/{hli_v1 → hli}/modules/__interfaces.py +0 -0
  184. /xoa_driver/internals/{hli_v1 → hli}/modules/base_module.py +0 -0
  185. /xoa_driver/internals/{hli_v1 → hli}/modules/module_l23ve.py +0 -0
  186. /xoa_driver/internals/{hli_v1 → hli}/modules/module_l47ve.py +0 -0
  187. /xoa_driver/internals/{hli_v1 → hli}/modules/modules_l23/__init__.py +0 -0
  188. /xoa_driver/internals/{hli_v1 → hli}/ports/__init__.py +0 -0
  189. /xoa_driver/internals/{hli_v1 → hli}/ports/base_port.py +0 -0
  190. /xoa_driver/internals/{hli_v1 → hli}/ports/port_l23/__init__.py +0 -0
  191. /xoa_driver/internals/{hli_v1 → hli}/ports/port_l23/bases/__init__.py +0 -0
  192. /xoa_driver/internals/{hli_v1 → hli}/ports/port_l23/bases/port_capture.py +0 -0
  193. /xoa_driver/internals/{hli_v1 → hli}/ports/port_l23/bases/port_reception_statistics.py +0 -0
  194. /xoa_driver/internals/{hli_v1 → hli}/ports/port_l23/chimera/__init__.py +0 -0
  195. /xoa_driver/internals/{hli_v1 → hli}/ports/port_l23/chimera/filter_definition/__init__.py +0 -0
  196. /xoa_driver/internals/{hli_v1 → hli}/ports/port_l23/chimera/filter_definition/_utils.py +0 -0
  197. /xoa_driver/internals/{hli_v1 → hli}/ports/port_l23/chimera/filter_definition/general.py +0 -0
  198. /xoa_driver/internals/{hli_v1 → hli}/ports/port_l23/chimera/filter_definition/shadow.py +0 -0
  199. /xoa_driver/internals/{hli_v1 → hli}/ports/port_l23/chimera/filter_definition/working.py +0 -0
  200. /xoa_driver/internals/{hli_v1 → hli}/ports/port_l23/chimera/pe_custom_distribution.py +0 -0
  201. /xoa_driver/internals/{hli_v1 → hli}/ports/port_l23/chimera/pe_distribution.py +0 -0
  202. /xoa_driver/internals/{hli_v1 → hli}/ports/port_l23/chimera/port_emulation.py +0 -0
  203. /xoa_driver/internals/{hli_v1 → hli}/ports/port_l23/chimera/reception_statistics.py +0 -0
  204. /xoa_driver/internals/{hli_v1 → hli}/ports/port_l23/chimera/transmission_statistics.py +0 -0
  205. /xoa_driver/internals/{hli_v1 → hli}/ports/port_l23/family_combi.py +0 -0
  206. /xoa_driver/internals/{hli_v1 → hli}/ports/port_l23/family_d.py +0 -0
  207. /xoa_driver/internals/{hli_v1 → hli}/ports/port_l23/family_e.py +0 -0
  208. /xoa_driver/internals/{hli_v1 → hli}/ports/port_l23/family_f.py +0 -0
  209. /xoa_driver/internals/{hli_v1 → hli}/ports/port_l23/family_h.py +0 -0
  210. /xoa_driver/internals/{hli_v1 → hli}/ports/port_l23/family_i.py +0 -0
  211. /xoa_driver/internals/{hli_v1 → hli}/ports/port_l23/family_j.py +0 -0
  212. /xoa_driver/internals/{hli_v1 → hli}/ports/port_l23/family_k.py +0 -0
  213. /xoa_driver/internals/{hli_v1 → hli}/ports/port_l23/family_l.py +0 -0
  214. /xoa_driver/internals/{hli_v1 → hli}/ports/port_l23/family_l1.py +0 -0
  215. /xoa_driver/internals/{hli_v1 → hli}/ports/port_l23/family_m.py +0 -0
  216. /xoa_driver/internals/{hli_v1 → hli}/ports/port_l23/fault_jkl.py +0 -0
  217. /xoa_driver/internals/{hli_v1 → hli}/ports/port_l23/freya_l1.py +0 -0
  218. /xoa_driver/internals/{hli_v1 → hli}/ports/port_l23/pcs_pma_ghijkl.py +0 -0
  219. /xoa_driver/internals/{hli_v1 → hli}/ports/port_l23/pcs_pma_ijkl_chimera.py +0 -0
  220. /xoa_driver/internals/{hli_v1 → hli}/ports/port_l23/pcs_pma_l.py +0 -0
  221. /xoa_driver/internals/{hli_v1 → hli}/ports/port_l47/__init__.py +0 -0
  222. /xoa_driver/internals/{hli_v1 → hli}/ports/port_l47/counters.py +0 -0
  223. /xoa_driver/internals/{hli_v1 → hli}/ports/port_l47/packet_engine.py +0 -0
  224. /xoa_driver/internals/{hli_v1 → hli}/revisions.py +0 -0
  225. /xoa_driver/internals/{hli_v1 → hli}/testers/__init__.py +0 -0
  226. /xoa_driver/internals/{hli_v1 → hli}/testers/_base_tester.py +0 -0
  227. /xoa_driver/internals/{hli_v1 → hli}/testers/genuine/__init__.py +0 -0
  228. /xoa_driver/internals/{hli_v1 → hli}/testers/genuine/l_23/__init__.py +0 -0
  229. /xoa_driver/internals/{hli_v1 → hli}/testers/genuine/l_23/health.py +0 -0
  230. /xoa_driver/internals/{hli_v1 → hli}/testers/genuine/l_23/rest_api.py +0 -0
  231. /xoa_driver/internals/{hli_v1 → hli}/testers/genuine/l_23/time_keeper.py +0 -0
  232. /xoa_driver/internals/{hli_v1 → hli}/testers/genuine/l_23/upload_file.py +0 -0
  233. /xoa_driver/internals/{hli_v1 → hli}/testers/genuine/management_interface.py +0 -0
  234. /xoa_driver/internals/{hli_v1 → hli}/testers/l23ve_tester.py +0 -0
  235. /xoa_driver/internals/{hli_v1 → hli}/testers/l47ve_tester.py +0 -0
@@ -18,6 +18,8 @@ from xoa_driver.internals.core.transporter.protocol.payload import (
18
18
  XmpSequence,
19
19
  XmpInt,
20
20
  Hex,
21
+ XmpStr,
22
+ XmpJson,
21
23
  )
22
24
 
23
25
 
@@ -93,11 +95,11 @@ class PX_RW_SEQ:
93
95
 
94
96
  class GetDataAttr(ResponseBodyStruct):
95
97
  value: Hex = field(XmpHex())
96
- """the bytes to be read or written in one I2C transaction. The number of bytes in the ``<value>`` equals ``<byte_count>``."""
98
+ """the bytes to be read or written in one I2C transaction. The number of bytes in the <value> equals <byte_count>."""
97
99
 
98
100
  class SetDataAttr(RequestBodyStruct):
99
101
  value: Hex = field(XmpHex())
100
- """the bytes to be read or written in one I2C transaction. The number of bytes in the ``<value>`` equals ``<byte_count>``."""
102
+ """the bytes to be read or written in one I2C transaction. The number of bytes in the <value> equals <byte_count>."""
101
103
 
102
104
  def get(self) -> Token[GetDataAttr]:
103
105
  """Get the register value of a transceiver in one I2C transaction.
@@ -159,11 +161,11 @@ class PX_RW_SEQ_BANK:
159
161
 
160
162
  class GetDataAttr(ResponseBodyStruct):
161
163
  value: Hex = field(XmpHex())
162
- """the bytes to be read or written in one I2C transaction. The number of bytes in the ``<value>`` equals ``<byte_count>``."""
164
+ """the bytes to be read or written in one I2C transaction. The number of bytes in the <value> equals <byte_count>."""
163
165
 
164
166
  class SetDataAttr(RequestBodyStruct):
165
167
  value: Hex = field(XmpHex())
166
- """the bytes to be read or written in one I2C transaction. The number of bytes in the ``<value>`` equals ``<byte_count>``."""
168
+ """the bytes to be read or written in one I2C transaction. The number of bytes in the <value> equals <byte_count>."""
167
169
 
168
170
  def get(self) -> Token[GetDataAttr]:
169
171
  """Get the register value of a transceiver in one I2C transaction.
@@ -266,7 +268,7 @@ class PX_TEMPERATURE:
266
268
  @dataclass
267
269
  class PX_I2C_CONFIG:
268
270
  """
269
- Set the get the access speed on a transceiver I2C access in the unit of KHz. Default to 100. When the transceiver is plugged out and in again, the speed will be reset to the default value 100. The speed has a minimum and a maximum, which can be obtained from P_CAPABILITIES. The I2C speed configuration will not be included in the port configuration file (.xpc). When you load a port configuration to a port, the transceiver I2C access speed will be reset to default 100.
271
+ Access speed on a transceiver I2C access in the unit of KHz. Default to 100. When the transceiver is plugged out and in again, the speed will be reset to the default value 100. The speed has a minimum and a maximum, which can be obtained from P_CAPABILITIES. The I2C speed configuration will not be included in the port configuration file (.xpc). When you load a port configuration to a port, the transceiver I2C access speed will be reset to default 100.
270
272
  """
271
273
 
272
274
  code: typing.ClassVar[int] = 539
@@ -300,4 +302,1682 @@ class PX_I2C_CONFIG:
300
302
  :type frequency: int
301
303
  """
302
304
 
303
- return Token(self._connection, build_set_request(self, module=self._module, port=self._port, frequency=frequency))
305
+ return Token(self._connection, build_set_request(self, module=self._module, port=self._port, frequency=frequency))
306
+
307
+ # region CDB
308
+ @register_command
309
+ @dataclass
310
+ class PX_CDB_SUPPORT:
311
+ """Return the supported CDB instances.
312
+ """
313
+ code: typing.ClassVar[int] = 485
314
+ pushed: typing.ClassVar[bool] = False
315
+
316
+ _connection: 'interfaces.IConnection'
317
+ _module: int
318
+ _port: int
319
+
320
+ class GetDataAttr(ResponseBodyStruct):
321
+ reply: dict = field(XmpJson(min_len=2))
322
+ """
323
+ dict, json.
324
+
325
+ .. code-block:: json
326
+
327
+ {
328
+ "cdb_instances_supported": 2
329
+ }
330
+
331
+ * ``cdb_instances_supported``: CDP instnaces supported
332
+
333
+ * 0 = CDB functionality not supported
334
+ * 1 = One CDB instance supported
335
+ * 2 = Two CDB instances supported
336
+
337
+ """
338
+
339
+ def get(self) -> Token[GetDataAttr]:
340
+ """Get REPLY
341
+
342
+ :return: CDB REPLY
343
+ :rtype: PX_CDB_SUPPORT.GetDataAttr
344
+ """
345
+
346
+ return Token(self._connection, build_get_request(self, module=self._module, port=self._port))
347
+
348
+ @register_command
349
+ @dataclass
350
+ class PX_CDB_ABORT_PROCESSING:
351
+ """This is CMD 0004h: Abort Processing
352
+ """
353
+ code: typing.ClassVar[int] = 464
354
+ pushed: typing.ClassVar[bool] = False
355
+
356
+ _connection: 'interfaces.IConnection'
357
+ _module: int
358
+ _port: int
359
+ _cdb_instance_xindex: int
360
+
361
+ class GetDataAttr(ResponseBodyStruct):
362
+ reply: dict = field(XmpJson(min_len=2))
363
+ """dict, json
364
+
365
+ .. code-block:: json
366
+
367
+ {
368
+ "cdb_status": "0x00"
369
+ }
370
+
371
+ * ``cdb_status``: hex string, provides the status of the most recently triggered CDB command.
372
+
373
+ """
374
+ class SetDataAttr(RequestBodyStruct):
375
+ cmd_data: dict = field(XmpJson(min_len=2))
376
+ """dict, json
377
+ """
378
+
379
+ def get(self) -> Token[GetDataAttr]:
380
+ """Get REPLY
381
+
382
+ :return: CDB REPLY
383
+ :rtype: PX_CDB_ABORT_PROCESSING.GetDataAttr
384
+ """
385
+
386
+ return Token(self._connection, build_get_request(self, module=self._module, port=self._port, indices=[self._cdb_instance_xindex]))
387
+
388
+ def set(self) -> Token[None]:
389
+ """
390
+ Set CMD Data
391
+ """
392
+
393
+ return Token(self._connection, build_set_request(self, module=self._module, port=self._port, indices=[self._cdb_instance_xindex], cmd_data='{}'))
394
+
395
+
396
+ @register_command
397
+ @dataclass
398
+ class PX_CDB_CHANGE_PASSWORD:
399
+ """This is CMD 0002h: Change Password
400
+ """
401
+ code: typing.ClassVar[int] = 463
402
+ pushed: typing.ClassVar[bool] = False
403
+
404
+ _connection: 'interfaces.IConnection'
405
+ _module: int
406
+ _port: int
407
+ _cdb_instance_xindex: int
408
+
409
+ class GetDataAttr(ResponseBodyStruct):
410
+ reply: dict = field(XmpJson(min_len=2))
411
+ """dict, json
412
+
413
+ .. code-block:: json
414
+
415
+ {
416
+ "cdb_status": "0x00"
417
+ }
418
+
419
+ * ``cdb_status``: hex string, provides the status of the most recently triggered CDB command.
420
+
421
+ """
422
+ class SetDataAttr(RequestBodyStruct):
423
+ cmd_data: dict = field(XmpJson(min_len=2))
424
+ """dict, json
425
+ """
426
+
427
+ def get(self) -> Token[GetDataAttr]:
428
+ """Get REPLY
429
+
430
+ :return: REPLY
431
+ :rtype: PX_CDB_CHANGE_PASSWORD.GetDataAttr
432
+ """
433
+
434
+ return Token(self._connection, build_get_request(self, module=self._module, port=self._port, indices=[self._cdb_instance_xindex]))
435
+
436
+ def set(self, cmd_data: dict) -> Token[None]:
437
+ """
438
+ Set CMD Data
439
+
440
+ :param cmd_data: CMD DATA
441
+ :type cmd_data: dict
442
+
443
+ .. code-block:: json
444
+
445
+ {
446
+ "new_password": "0x54555657"
447
+ }
448
+
449
+ * ``new_password``: hex string, new password to be entered.
450
+
451
+ """
452
+
453
+ return Token(self._connection, build_set_request(self, module=self._module, port=self._port, indices=[self._cdb_instance_xindex], cmd_data=cmd_data))
454
+
455
+
456
+ @register_command
457
+ @dataclass
458
+ class PX_CDB_ENTER_PASSWORD:
459
+ """This is CMD 0001h: Enter Password
460
+ """
461
+ code: typing.ClassVar[int] = 462
462
+ pushed: typing.ClassVar[bool] = False
463
+
464
+ _connection: 'interfaces.IConnection'
465
+ _module: int
466
+ _port: int
467
+ _cdb_instance_xindex: int
468
+
469
+ class GetDataAttr(ResponseBodyStruct):
470
+ reply: dict = field(XmpJson(min_len=2))
471
+ """dict, json
472
+
473
+ .. code-block:: json
474
+
475
+ {
476
+ "cdb_status": "0x00"
477
+ }
478
+
479
+ * ``cdb_status``: hex string, provides the status of the most recently triggered CDB command.
480
+
481
+ """
482
+ class SetDataAttr(RequestBodyStruct):
483
+ cmd_data: dict = field(XmpJson(min_len=2))
484
+ """dict, json
485
+
486
+ .. code-block:: json
487
+
488
+ {
489
+ "password": "0x54555657"
490
+ }
491
+
492
+ * ``password``: hex string, password to be entered.
493
+
494
+ """
495
+
496
+ def get(self) -> Token[GetDataAttr]:
497
+ """Get REPLY
498
+
499
+ :return: REPLY
500
+ :rtype: PX_CDB_ENTER_PASSWORD.GetDataAttr
501
+ """
502
+
503
+ return Token(self._connection, build_get_request(self, module=self._module, port=self._port, indices=[self._cdb_instance_xindex]))
504
+
505
+ def set(self, cmd_data: dict) -> Token[None]:
506
+ """
507
+ Set CMD Data
508
+
509
+ :param cmd_data: CMD DATA
510
+ :type cmd_data: dict
511
+
512
+ .. code-block:: json
513
+
514
+ {
515
+ "password": "0x54555657"
516
+ }
517
+
518
+ * ``password``: hex string, password to be entered.
519
+
520
+ """
521
+
522
+ return Token(self._connection, build_set_request(self, module=self._module, port=self._port, indices=[self._cdb_instance_xindex], cmd_data=cmd_data))
523
+
524
+
525
+ @register_command
526
+ @dataclass
527
+ class PX_CDB_QUERY_STATUS:
528
+ """This is CMD 0000h: Query Status
529
+ """
530
+ code: typing.ClassVar[int] = 461
531
+ pushed: typing.ClassVar[bool] = False
532
+
533
+ _connection: 'interfaces.IConnection'
534
+ _module: int
535
+ _port: int
536
+ _cdb_instance_xindex: int
537
+
538
+ class GetDataAttr(ResponseBodyStruct):
539
+ reply: dict = field(XmpJson(min_len=2))
540
+ """dict, json
541
+
542
+ .. code-block:: json
543
+
544
+ {
545
+ "cdb_status": "0x00",
546
+ "status": "0x00"
547
+ }
548
+
549
+ * ``cdb_status``: hex string, provides the status of the most recently triggered CDB command.
550
+ * ``status``: hex string
551
+
552
+ * 0000 0000b: Module Boot Up.
553
+ * 0000 0001b: Host Password Accepted.
554
+ * 1xxx xxxxb: Module Password accepted.
555
+ * Bits ‘x’ may contain custom information.
556
+
557
+ """
558
+ class SetDataAttr(RequestBodyStruct):
559
+ cmd_data: dict = field(XmpJson(min_len=2))
560
+ """dict, json
561
+
562
+ .. code-block:: json
563
+
564
+ {
565
+ "response_delay": 0
566
+ }
567
+
568
+ * ``response_delay``: Programmable delay in ms for module responding to this command. A value of 0 asks for module response as fast as possible.
569
+
570
+ """
571
+
572
+ def get(self) -> Token[GetDataAttr]:
573
+ """Get REPLY
574
+
575
+ :return: REPLY
576
+ :rtype: PX_CDB_QUERY_STATUS.GetDataAttr
577
+ """
578
+
579
+ return Token(self._connection, build_get_request(self, module=self._module, port=self._port, indices=[self._cdb_instance_xindex]))
580
+
581
+ def set(self, cmd_data: dict) -> Token[None]:
582
+ """
583
+ Set CMD Data
584
+ :param cmd_data: CMD DATA
585
+ :type cmd_data: dict
586
+
587
+ .. code-block:: json
588
+
589
+ {
590
+ "response_delay": 0
591
+ }
592
+
593
+ * ``response_delay``: Programmable delay in ms for module responding to this command. A value of 0 asks for module response as fast as possible.
594
+
595
+ """
596
+
597
+ return Token(self._connection, build_set_request(self, module=self._module, port=self._port, indices=[self._cdb_instance_xindex], cmd_data=cmd_data))
598
+
599
+
600
+
601
+ @register_command
602
+ @dataclass
603
+ class PX_CDB_EXTERNAL_FEATURES:
604
+ """This is CMD 0045h: Externally Defined Features
605
+ """
606
+ code: typing.ClassVar[int] = 468
607
+ pushed: typing.ClassVar[bool] = False
608
+
609
+ _connection: 'interfaces.IConnection'
610
+ _module: int
611
+ _port: int
612
+ _cdb_instance_xindex: int
613
+
614
+ class GetDataAttr(ResponseBodyStruct):
615
+ reply: dict = field(XmpJson(min_len=2))
616
+ """dict, json
617
+
618
+ .. code-block:: json
619
+
620
+ {
621
+ "cdb_status": "0x00",
622
+ "supplement_support": "0x00"
623
+ }
624
+
625
+ * ``cdb_status``: hex string, provides the status of the most recently triggered CDB command.
626
+ * ``supplement_support``: hex string, Bit 0 = 0/1: CMIS-VCS not supported/supported
627
+
628
+ """
629
+
630
+ class SetDataAttr(RequestBodyStruct):
631
+ cmd_data: dict = field(XmpJson(min_len=2))
632
+ """dict, json
633
+ """
634
+
635
+ def get(self) -> Token[GetDataAttr]:
636
+ """Get REPLY
637
+
638
+ :return: REPLY
639
+ :rtype: PX_CDB_EXTERNAL_FEATURES.GetDataAttr
640
+ """
641
+
642
+ return Token(self._connection, build_get_request(self, module=self._module, port=self._port, indices=[self._cdb_instance_xindex]))
643
+
644
+ def set(self) -> Token[None]:
645
+ """
646
+ Set CMD Data
647
+ """
648
+
649
+ return Token(self._connection, build_set_request(self, module=self._module, port=self._port, indices=[self._cdb_instance_xindex], cmd_data='{}'))
650
+
651
+
652
+ @register_command
653
+ @dataclass
654
+ class PX_CDB_FW_MGMT_FEATURES:
655
+ """This is CMD 0041h: Firmware Management Features
656
+ """
657
+ code: typing.ClassVar[int] = 466
658
+ pushed: typing.ClassVar[bool] = False
659
+
660
+ _connection: 'interfaces.IConnection'
661
+ _module: int
662
+ _port: int
663
+ _cdb_instance_xindex: int
664
+
665
+ class GetDataAttr(ResponseBodyStruct):
666
+ reply: dict = field(XmpJson(min_len=2))
667
+ """dict, json
668
+
669
+ .. code-block:: json
670
+
671
+ {
672
+ "cdb_status": "0x00",
673
+ "feature_support_mask": "0x00",
674
+ "start_cmd_payload_size": 2,
675
+ "erased_byte": "0x00",
676
+ "read_write_length_ext": 2,
677
+ "write_mechanism": "0x00",
678
+ "read_mechanism": "0x00",
679
+ "hitless_restart": 0,
680
+ "max_duration_start": 123,
681
+ "max_duration_abort": 123,
682
+ "max_duration_write": 123,
683
+ "max_duration_complete": 123,
684
+ "max_duration_copy": 123
685
+ }
686
+
687
+ * ``cdb_status``: hex string, provides the status of the most recently triggered CDB command.
688
+ * ``feature_support_mask``: hex string, indicates support of Firmware Management features.
689
+ * ``start_cmd_payload_size``: integer, This defines the number of bytes that the host must extract from the beginning of the vendor-delivered binary firmware image file and send to the module in CMD 0101h (Start).
690
+ * ``erased_byte``: hex string, This is the value representing an erased byte. The purpose of advertising this byte is to optionally reduce download time by allowing the host to skip sending blocks of the image containing ErasedByte values only.
691
+ * ``read_write_length_ext``: integer, specifies the allowable additional number of byte octets in a READ or a WRITE, specifically for Firmware Management Commands (IDs 0100h-01FFh).
692
+ * ``write_mechanism``: hex string, Firmware update supported mechanism
693
+ * ``read_mechanism`` : hex string, Firmware read / readback support mechanism.
694
+ * ``hitless_restart``: integer, 0: CMD Run Image causes a reset. Traffic is affected. 1: CMD Run Image may reset but module will do its best to maintain traffic and management states. Data path functions are not reset.
695
+ * ``max_duration_start``: integer, U16 Maximum time in M ms for a CDB Start command to complete execution
696
+ * ``max_duration_abort``: integer, U16 Maximum time in M ms for a CDB Abort command to complete execution
697
+ * ``max_duration_write``: integer, U16 Maximum time in M ms for a CDB Write command to complete execution
698
+ * ``max_duration_complete``: integer, U16 Maximum time in M ms for a CDB Complete command to complete execution
699
+ * ``max_duration_copy``: integer, U16 Maximum time in M ms for a CDB Copy command to complete execution
700
+
701
+ """
702
+
703
+ class SetDataAttr(RequestBodyStruct):
704
+ cmd_data: dict = field(XmpJson(min_len=2))
705
+ """dict, json
706
+ """
707
+
708
+ def get(self) -> Token[GetDataAttr]:
709
+ """Get REPLY
710
+
711
+ :return: REPLY
712
+ :rtype: PX_CDB_FW_MGMT_FEATURES.GetDataAttr
713
+ """
714
+
715
+ return Token(self._connection, build_get_request(self, module=self._module, port=self._port, indices=[self._cdb_instance_xindex]))
716
+
717
+ def set(self) -> Token[None]:
718
+ """
719
+ Set CMD Data
720
+ """
721
+
722
+ return Token(self._connection, build_set_request(self, module=self._module, port=self._port, indices=[self._cdb_instance_xindex], cmd_data='{}'))
723
+
724
+
725
+ @register_command
726
+ @dataclass
727
+ class PX_CDB_GET_APP_ATTRIBUTES:
728
+ """This is CMD 0050h: Get Application Attributes
729
+ """
730
+ code: typing.ClassVar[int] = 469
731
+ pushed: typing.ClassVar[bool] = False
732
+
733
+ _connection: 'interfaces.IConnection'
734
+ _module: int
735
+ _port: int
736
+ _cdb_instance_xindex: int
737
+
738
+ class GetDataAttr(ResponseBodyStruct):
739
+ reply: dict = field(XmpJson(min_len=2))
740
+ """dict, json
741
+
742
+ .. code-block:: json
743
+
744
+ {
745
+ "cdb_status": "0x00",
746
+ "application_number": 123,
747
+ "max_module_power": 123,
748
+ "prog_output_power_min": 123,
749
+ "prog_output_power_max": 123,
750
+ "pre_fec_ber_threshold": 123.123,
751
+ "rx_los_optical_power_threshold": 123,
752
+ "rx_power_high_alarm_threshold": 123,
753
+ "rx_power_low_alarm_threshold": 123,
754
+ "rx_power_high_warning_threshold": 123,
755
+ "rx_power_low_warning_threshold": 123
756
+ }
757
+
758
+ * ``cdb_status``: hex string, provides the status of the most recently triggered CDB command.
759
+ * ``application_number``: integer, U16 Application number. 15-8: reserved (0). 7-4: NADBlockIndex (0-15) or 0. 3-0: AppSelCode (1-15).
760
+ * ``max_module_power``: integer, U16: Worst case module power dissipation when this Application is instantiated homogeneously as often as possible in parallel (when applicable) with worst case configuration options. Unit: 0.25 W.
761
+ * ``prog_output_power_min``: integer, S16: Minimum Programmable Output Power, Unit: 0.01 dBm.
762
+ * ``prog_output_power_max``: integer, S16: Maximum Programmable Output Power, Unit: 0.01 dBm.
763
+ * ``pre_fec_ber_threshold``: float, F16: Pre FEC BER VDM high alarm threshold.
764
+ * ``rx_los_optical_power_threshold``: integer, S16: Optical power threshold for RxLOS alarm. Unit: 0.01dBm.
765
+ * ``rx_power_high_alarm_threshold``: integer, U16: OpticalPowerRxHighAlarmThreshold. Unit: 0.1uW.
766
+ * ``rx_power_low_alarm_threshold``: integer, U16: OpticalPowerRxLowAlarmThreshold. Unit: 0.1uW.
767
+ * ``rx_power_high_warning_threshold``: integer, U16: OpticalPowerRxHighWarningThreshold.Unit: 0.1uW.
768
+ * ``rx_power_low_warning_threshold``: integer, U16: OpticalPowerRxLowWarningThreshold. Unit: 0.1uW.
769
+
770
+ """
771
+ class SetDataAttr(RequestBodyStruct):
772
+ cmd_data: dict = field(XmpJson(min_len=2))
773
+ """dict, json
774
+
775
+ .. code-block:: json
776
+
777
+ {
778
+ "application_number": 1
779
+ }
780
+
781
+ * ``application_number``: integer, U16 Application number. 15-8: reserved (0). 7-4: NADBlockIndex (0-15) or 0. 3-0: AppSelCode (1-15)
782
+
783
+ """
784
+
785
+ def get(self) -> Token[GetDataAttr]:
786
+ """Get REPLY
787
+
788
+ :return: REPLY
789
+ :rtype: PX_CDB_GET_APP_ATTRIBUTES.GetDataAttr
790
+ """
791
+
792
+ return Token(self._connection, build_get_request(self, module=self._module, port=self._port, indices=[self._cdb_instance_xindex]))
793
+
794
+ def set(self, cmd_data: dict) -> Token[None]:
795
+ """
796
+ Set CMD Data
797
+ :param cmd_data: CMD DATA
798
+ :type cmd_data: dict
799
+
800
+ .. code-block:: json
801
+
802
+ {
803
+ "application_number": 1
804
+ }
805
+
806
+ * ``application_number``: integer, U16 Application number. 15-8: reserved (0). 7-4: NADBlockIndex (0-15) or 0. 3-0: AppSelCode (1-15)
807
+
808
+ """
809
+
810
+ return Token(self._connection, build_set_request(self, module=self._module, port=self._port, indices=[self._cdb_instance_xindex], cmd_data=cmd_data))
811
+
812
+
813
+ @register_command
814
+ @dataclass
815
+ class PX_CDB_GET_IF_CODE_DESCR:
816
+ """This is CMD 0051h: Get Interface Code Description
817
+ """
818
+ code: typing.ClassVar[int] = 470
819
+ pushed: typing.ClassVar[bool] = False
820
+
821
+ _connection: 'interfaces.IConnection'
822
+ _module: int
823
+ _port: int
824
+ _cdb_instance_xindex: int
825
+
826
+ class GetDataAttr(ResponseBodyStruct):
827
+ reply: dict = field(XmpJson(min_len=2))
828
+ """dict, json
829
+
830
+ .. code-block:: json
831
+
832
+ {
833
+ "cdb_status": "0x00",
834
+ "interface_id": "0x01",
835
+ "interface_location": "0x00",
836
+ "interfacre_name": "10G Ethernet",
837
+ "interfacre_description": "10G Ethernet",
838
+ "interfacre_data_rate": 10.3125,
839
+ "interfacre_lane_count": 1,
840
+ "lane_signaling_rate": 10.3125,
841
+ "modulation": "PAM4",
842
+ "bits_per_symbol": 2
843
+ }
844
+
845
+ * ``cdb_status``: hex string, provides the status of the most recently triggered CDB command.
846
+ * ``interface_id``: hex string, U16: HostInterfaceID or MediaInterfaceID. 15-8: reserved (0). 7-0: InterfaceID
847
+ * ``interface_location``: integer, 0: media side. 1: host side.
848
+ * ``interfacre_name``: string, 16-byte long ACII string. Name of the interface.
849
+ * ``interfacre_description``: string, 48-byte long ACII string. Description of the interface.
850
+ * ``interfacre_data_rate``: float, F16: Application Bit Rate in Gb/s
851
+ * ``interfacre_lane_count``: integer, U16: Number of parallel lanes.
852
+ * ``lane_signaling_rate``: float, F16: Lane Signaling Rate in GBd.
853
+ * ``modulation``: string, 16-byte long ACII string. Lane Modulation Format.
854
+ * ``bits_per_symbol``: integer, U16: Bits per Symbol.
855
+
856
+ """
857
+ class SetDataAttr(RequestBodyStruct):
858
+ cmd_data: dict = field(XmpJson(min_len=2))
859
+ """dict, json
860
+
861
+ .. code-block:: json
862
+
863
+ {
864
+ "interface_id": "0x01",
865
+ "interface_location": "0x00"
866
+ }
867
+
868
+ * ``interface_id``: hex string, U16: HostInterfaceID or MediaInterfaceID. 15-8: reserved (0). 7-0: InterfaceID
869
+ * ``interface_location``: integer, 0: media side. 1: host side.
870
+
871
+ """
872
+
873
+ def get(self) -> Token[GetDataAttr]:
874
+ """Get REPLY
875
+
876
+ :return: REPLY
877
+ :rtype: PX_CDB_GET_IF_CODE_DESCR.GetDataAttr
878
+ """
879
+
880
+ return Token(self._connection, build_get_request(self, module=self._module, port=self._port, indices=[self._cdb_instance_xindex]))
881
+
882
+ def set(self, cmd_data: dict) -> Token[None]:
883
+ """
884
+ Set CMD Data
885
+ :param cmd_data: CMD DATA
886
+ :type cmd_data: dict
887
+
888
+ .. code-block:: json
889
+
890
+ {
891
+ "interface_id": "0x01",
892
+ "interface_location": "0x00"
893
+ }
894
+
895
+ * ``interface_id``: hex string, U16: HostInterfaceID or MediaInterfaceID. 15-8: reserved (0). 7-0: InterfaceID
896
+ * ``interface_location``: integer, 0: media side. 1: host side.
897
+
898
+ """
899
+
900
+ return Token(self._connection, build_set_request(self, module=self._module, port=self._port, indices=[self._cdb_instance_xindex], cmd_data=cmd_data))
901
+
902
+
903
+ @register_command
904
+ @dataclass
905
+ class PX_CDB_MODULE_FEATURES:
906
+ """This is CMD 0040h: Module Features
907
+ """
908
+ code: typing.ClassVar[int] = 465
909
+ pushed: typing.ClassVar[bool] = False
910
+
911
+ _connection: 'interfaces.IConnection'
912
+ _module: int
913
+ _port: int
914
+ _cdb_instance_xindex: int
915
+
916
+ class GetDataAttr(ResponseBodyStruct):
917
+ reply: dict = field(XmpJson(min_len=2))
918
+ """dict, json
919
+
920
+ .. code-block:: json
921
+
922
+ {
923
+ "cdb_status": "0x00",
924
+ "cmd_support_mask": "0x0000000000000000000000000000000000000000000000000000000000000000",
925
+ "max_completion_time": 1000
926
+ }
927
+
928
+ * ``cdb_status``: hex string, provides the status of the most recently triggered CDB command.
929
+ * ``cmd_support_mask``: :hex string, indicates support of CDB commands 0000h-00FFh. This array of 32 bytes indicates support of CDB commands CMD <i>, with identifiers 0 ≤ <i> ≤ 255, as follows: CMD <i> is supported when bit<j>=<i>mod 8 of byte<k> = 138+floor(<i>/8) is set.
930
+ * ``max_completion_time``: integer, U16 Maximum CDB command execution time in ms, of all supported CDB commands.
931
+
932
+ """
933
+
934
+ class SetDataAttr(RequestBodyStruct):
935
+ cmd_data: dict = field(XmpJson(min_len=2))
936
+ """dict, json
937
+ """
938
+
939
+ def get(self) -> Token[GetDataAttr]:
940
+ """Get REPLY
941
+
942
+ :return: REPLY
943
+ :rtype: PX_CDB_MODULE_FEATURES.GetDataAttr
944
+ """
945
+
946
+ return Token(self._connection, build_get_request(self, module=self._module, port=self._port, indices=[self._cdb_instance_xindex]))
947
+
948
+ def set(self) -> Token[None]:
949
+ """
950
+ Set CMD Data
951
+ """
952
+
953
+ return Token(self._connection, build_set_request(self, module=self._module, port=self._port, indices=[self._cdb_instance_xindex], cmd_data='{}'))
954
+
955
+ @register_command
956
+ @dataclass
957
+ class PX_CDB_SEC_FEAT_CAPABILITIES:
958
+ """This is CMD 0044h: Security Features and Capabilities
959
+ """
960
+ code: typing.ClassVar[int] = 467
961
+ pushed: typing.ClassVar[bool] = False
962
+
963
+ _connection: 'interfaces.IConnection'
964
+ _module: int
965
+ _port: int
966
+ _cdb_instance_xindex: int
967
+
968
+ class GetDataAttr(ResponseBodyStruct):
969
+ reply: dict = field(XmpJson(min_len=2))
970
+ """dict, json
971
+
972
+ .. code-block:: json
973
+
974
+ {
975
+ "cdb_status": "0x00",
976
+ "cmd_support_mask": "0xFF",
977
+ "num_certificates": 0,
978
+ "cert_chain_supported": 0,
979
+ "certificate_format": 0,
980
+ "certificate_length_1": 0,
981
+ "certificate_length_2": 0,
982
+ "certificate_length_3": 0,
983
+ "certificate_length_4": 0,
984
+ "digest_length": 0,
985
+ "signature_time": 0,
986
+ "signature_length": 0,
987
+ "signature_format": 0,
988
+ "signature_pad_scheme": 0
989
+ }
990
+
991
+ * ``cdb_status``: hex string, provides the status of the most recently triggered CDB command.
992
+ * ``cmd_support_mask``: hex string, indicates support of CDB commands 0400-04FFh.
993
+ * ``num_certificates``: integer, number of public certificates the host may obtain from the module. The device must contain a single leaf certificate and it may optionally contain one or more intermediate certificates optionally followed by a root certificate. For X.509 certificates, intermediate certificates are not self-signed, and the root cert is self-signed. ``num_certificates <= 4``.
994
+ * ``cert_chain_supported``: integer, 0: Certificate chain is not supported. Module contains leaf certificate instance i = 0 only. 1: Module supports certificate chain and host must specify the instance when downloading a certificate. Instance i = 0 is the start of the chain, i.e. the leaf certificate, and any instance i+1 is another certificate used to sign the certificate instance i, where ``i < num_certificates <= 4``
995
+ * ``certificate_format``: integer, 0: Not supported. 1: **Custom**. 2: X509v3 DER encoding. 3-255: Reserved.
996
+ * ``certificate_length_1``: integer, Length of leaf certificate i = 0.
997
+ * ``certificate_length_2``: integer, Length of certificate i = 1 or 0 when not supported.
998
+ * ``certificate_length_3``: integer, Length of certificate i = 2 or 0 when not supported.
999
+ * ``certificate_length_4``: integer, Length of certificate i = 3 or 0 when not supported.
1000
+ * ``digest_length``: integer, Required message hash digest length (in bytes) 0: Not supported. 1: 28 bytes (SHA224). 2: 32 bytes (SHA256). 3: 48 bytes (SHA384). 4: 64 bytes (SHA512). 5-255: **Reserved**.
1001
+ * ``signature_time``: integer, Maximum time (in milliseconds) for signature generation.
1002
+ * ``signature_length``: integer, Length (in bytes) of the encoded/padded (if applicable) digest signature
1003
+ * ``signature_format``: integer, 0: Not supported. 1: **Custom, vendor specific encoding**. 2: Raw binary byte stream. 3: DER encoding. 4: ECDSA (R,S) integer pair, integers prefixed with length. 5-255: Reserved.
1004
+ * ``signature_pad_scheme``: integer, 0: None. 1: **Custom**. 2: PKCS#1 v1.5. 3: OAEP. 4: PSS. 5-255: Reserved
1005
+
1006
+ """
1007
+
1008
+ class SetDataAttr(RequestBodyStruct):
1009
+ cmd_data: dict = field(XmpJson(min_len=2))
1010
+ """dict, json
1011
+ """
1012
+
1013
+ def get(self) -> Token[GetDataAttr]:
1014
+ """Get REPLY
1015
+
1016
+ :return: REPLY
1017
+ :rtype: PX_CDB_SEC_FEAT_CAPABILITIES.GetDataAttr
1018
+ """
1019
+
1020
+ return Token(self._connection, build_get_request(self, module=self._module, port=self._port, indices=[self._cdb_instance_xindex]))
1021
+
1022
+ def set(self) -> Token[None]:
1023
+ """
1024
+ Set CMD Data
1025
+ """
1026
+
1027
+ return Token(self._connection, build_set_request(self, module=self._module, port=self._port, indices=[self._cdb_instance_xindex], cmd_data='{}'))
1028
+
1029
+
1030
+ @register_command
1031
+ @dataclass
1032
+ class PX_CDB_ABORT_FW_DOWNLOAD:
1033
+ """This is CMD 0102h: Abort Firmware Download
1034
+ """
1035
+ code: typing.ClassVar[int] = 473
1036
+ pushed: typing.ClassVar[bool] = False
1037
+
1038
+ _connection: 'interfaces.IConnection'
1039
+ _module: int
1040
+ _port: int
1041
+ _cdb_instance_xindex: int
1042
+
1043
+ class GetDataAttr(ResponseBodyStruct):
1044
+ reply: dict = field(XmpJson(min_len=2))
1045
+ """dict, json
1046
+
1047
+ .. code-block:: json
1048
+
1049
+ {
1050
+ "cdb_status": "0x00"
1051
+ }
1052
+
1053
+ * ``cdb_status``: hex string, provides the status of the most recently triggered CDB command.
1054
+
1055
+ """
1056
+ class SetDataAttr(RequestBodyStruct):
1057
+ cmd_data: dict = field(XmpJson(min_len=2))
1058
+ """dict, json
1059
+ """
1060
+
1061
+ def get(self) -> Token[GetDataAttr]:
1062
+ """Get REPLY
1063
+
1064
+ :return: REPLY
1065
+ :rtype: PX_CDB_ABORT_FIRMWARE_DOWNLOAD.GetDataAttr
1066
+ """
1067
+
1068
+ return Token(self._connection, build_get_request(self, module=self._module, port=self._port, indices=[self._cdb_instance_xindex]))
1069
+
1070
+ def set(self) -> Token[None]:
1071
+ """
1072
+ Set CMD Data
1073
+ """
1074
+
1075
+ return Token(self._connection, build_set_request(self, module=self._module, port=self._port, indices=[self._cdb_instance_xindex], cmd_data='{}'))
1076
+
1077
+
1078
+ @register_command
1079
+ @dataclass
1080
+ class PX_CDB_COMMIT_FW_IMAGE:
1081
+ """This is CMD 010Ah: Commit Firmware Image
1082
+ """
1083
+ code: typing.ClassVar[int] = 483
1084
+ pushed: typing.ClassVar[bool] = False
1085
+
1086
+ _connection: 'interfaces.IConnection'
1087
+ _module: int
1088
+ _port: int
1089
+ _cdb_instance_xindex: int
1090
+
1091
+ class GetDataAttr(ResponseBodyStruct):
1092
+ reply: dict = field(XmpJson(min_len=2))
1093
+ """dict, json
1094
+
1095
+ .. code-block:: json
1096
+
1097
+ {
1098
+ "cdb_status": "0x00"
1099
+ }
1100
+
1101
+ * ``cdb_status``: hex string, provides the status of the most recently triggered CDB command.
1102
+
1103
+ """
1104
+ class SetDataAttr(RequestBodyStruct):
1105
+ cmd_data: dict = field(XmpJson(min_len=2))
1106
+ """dict, json
1107
+ """
1108
+
1109
+ def get(self) -> Token[GetDataAttr]:
1110
+ """Get REPLY
1111
+
1112
+ :return: REPLY
1113
+ :rtype: PX_CDB_COMMIT_FIRMWARE_IMAGE.GetDataAttr
1114
+ """
1115
+
1116
+ return Token(self._connection, build_get_request(self, module=self._module, port=self._port, indices=[self._cdb_instance_xindex]))
1117
+
1118
+ def set(self) -> Token[None]:
1119
+ """
1120
+ Set CMD Data
1121
+ """
1122
+
1123
+ return Token(self._connection, build_set_request(self, module=self._module, port=self._port, indices=[self._cdb_instance_xindex], cmd_data='{}'))
1124
+
1125
+
1126
+ @register_command
1127
+ @dataclass
1128
+ class PX_CDB_COMPLETE_FW_DOWNLOAD:
1129
+ """This is CMD 0107h: Complete Firmware Download
1130
+ """
1131
+ code: typing.ClassVar[int] = 478
1132
+ pushed: typing.ClassVar[bool] = False
1133
+
1134
+ _connection: 'interfaces.IConnection'
1135
+ _module: int
1136
+ _port: int
1137
+ _cdb_instance_xindex: int
1138
+
1139
+ class GetDataAttr(ResponseBodyStruct):
1140
+ reply: dict = field(XmpJson(min_len=2))
1141
+ """dict, json
1142
+
1143
+ .. code-block:: json
1144
+
1145
+ {
1146
+ "cdb_status": "0x00"
1147
+ }
1148
+
1149
+ * ``cdb_status``: hex string, provides the status of the most recently triggered CDB command.
1150
+
1151
+ """
1152
+ class SetDataAttr(RequestBodyStruct):
1153
+ cmd_data: dict = field(XmpJson(min_len=2))
1154
+ """dict, json
1155
+ """
1156
+
1157
+ def get(self) -> Token[GetDataAttr]:
1158
+ """Get REPLY
1159
+
1160
+ :return: REPLY
1161
+ :rtype: PX_CDB_COMPLETE_FIRMWARE_DOWNLOAD.GetDataAttr
1162
+ """
1163
+
1164
+ return Token(self._connection, build_get_request(self, module=self._module, port=self._port, indices=[self._cdb_instance_xindex]))
1165
+
1166
+ def set(self) -> Token[None]:
1167
+ """
1168
+ Set CMD Data
1169
+ """
1170
+
1171
+ return Token(self._connection, build_set_request(self, module=self._module, port=self._port, indices=[self._cdb_instance_xindex], cmd_data='{}'))
1172
+
1173
+
1174
+ @register_command
1175
+ @dataclass
1176
+ class PX_CDB_COPY_FW_IMAGE:
1177
+ """This is CMD 0108h: Copy Firmware Image
1178
+ """
1179
+ code: typing.ClassVar[int] = 479
1180
+ pushed: typing.ClassVar[bool] = False
1181
+
1182
+ _connection: 'interfaces.IConnection'
1183
+ _module: int
1184
+ _port: int
1185
+ _cdb_instance_xindex: int
1186
+
1187
+ class GetDataAttr(ResponseBodyStruct):
1188
+ reply: dict = field(XmpJson(min_len=2))
1189
+ """dict, json
1190
+
1191
+ .. code-block:: json
1192
+
1193
+ {
1194
+ "cdb_status": "0x00",
1195
+ "copy_direction": "0xAB",
1196
+ "copy_status": "0x00"
1197
+ }
1198
+
1199
+ * ``cdb_status``: hex string, provides the status of the most recently triggered CDB command.
1200
+ * ``copy_direction``: hex string, copy direction.
1201
+
1202
+ * ``0xAB``, Copy Image A into Image B
1203
+ * ``0xBA``,Copy Image B into Image A
1204
+
1205
+ * ``copy_status``: hex string, copy status.
1206
+
1207
+ * ``0x00``, Copy Successful
1208
+ * ``0x01``, Copy Failed
1209
+
1210
+ """
1211
+ class SetDataAttr(RequestBodyStruct):
1212
+ cmd_data: dict = field(XmpJson(min_len=2))
1213
+ """dict, json
1214
+ """
1215
+
1216
+ def get(self) -> Token[GetDataAttr]:
1217
+ """Get REPLY
1218
+
1219
+ :return: REPLY
1220
+ :rtype: PX_CDB_COPY_FIRMWARE_IMAGE.GetDataAttr
1221
+ """
1222
+
1223
+ return Token(self._connection, build_get_request(self, module=self._module, port=self._port, indices=[self._cdb_instance_xindex]))
1224
+
1225
+ def set(self, cmd_data: dict) -> Token[None]:
1226
+ """
1227
+ Set CMD Data
1228
+ :param cmd_data: CMD DATA
1229
+ :type cmd_data: dict
1230
+
1231
+ .. code-block:: json
1232
+
1233
+ {
1234
+ "copy_direction": "0xAB"
1235
+ }
1236
+
1237
+ * ``copy_direction``: hex string, copy direction.
1238
+
1239
+ * ``0xAB``, Copy Image A into Image B
1240
+ * ``0xBA``, Copy Image B into Image A
1241
+
1242
+ """
1243
+
1244
+ return Token(self._connection, build_set_request(self, module=self._module, port=self._port, indices=[self._cdb_instance_xindex], cmd_data=cmd_data))
1245
+
1246
+
1247
+ @register_command
1248
+ @dataclass
1249
+ class PX_CDB_GET_FW_INFO:
1250
+ """This is CMD 0100h: Get Firmware Info
1251
+ """
1252
+ code: typing.ClassVar[int] = 471
1253
+ pushed: typing.ClassVar[bool] = False
1254
+
1255
+ _connection: 'interfaces.IConnection'
1256
+ _module: int
1257
+ _port: int
1258
+ _cdb_instance_xindex: int
1259
+
1260
+ class GetDataAttr(ResponseBodyStruct):
1261
+ reply: dict = field(XmpJson(min_len=2))
1262
+ """dict, json
1263
+
1264
+ .. code-block:: json
1265
+
1266
+ {
1267
+ "cdb_status": "0x00",
1268
+ "firmware_status": 0,
1269
+ "image_information": 0,
1270
+ "image_a_major": 0,
1271
+ "image_a_minor": 0,
1272
+ "image_a_build": 0,
1273
+ "image_a_extra_string": "abcdef",
1274
+ "image_b_major": 0,
1275
+ "image_b_minor": 0,
1276
+ "image_b_build": 0,
1277
+ "image_b_extra_string": "abcdef",
1278
+ "factory_boot_major": 0,
1279
+ "factory_boot_minor": 0,
1280
+ "factory_boot_build": 0,
1281
+ "factory_boot_extra_string": "abcdef"
1282
+ }
1283
+
1284
+ * ``cdb_status``: hex string, provides the status of the most recently triggered CDB command.
1285
+ * ``firmware_status``: integer, Firmware Status.
1286
+
1287
+ Bitmask to indicate FW Status.
1288
+
1289
+ * Image in Bank A:
1290
+
1291
+ * Bit 0: Operational Status
1292
+ * Bit 1: Administrative Status
1293
+ * Bit 2: Validity Status
1294
+ * Bit 3: Reserved
1295
+
1296
+ * Image in Bank B:
1297
+
1298
+ * Bit 4: Operational Status
1299
+ * Bit 5: Administrative Status
1300
+ * Bit 6: Validity Status
1301
+ * Bit 7: Reserved
1302
+
1303
+ * Encoding as follows:
1304
+
1305
+ * Operational Status: 1 = running, 0 = not running
1306
+ * Administrative Status: 1=committed, 0=uncommitted
1307
+ * Validity Status: 1 = invalid, 0 = valid
1308
+
1309
+ * ``image_information``: integer, Image Information.
1310
+
1311
+ * Bit 0: Firmware image A information
1312
+ * Bit 1: Firmware image B information
1313
+ * Bit 2: Factory or Boot image information
1314
+
1315
+ * ``image_a_major``: integer, Image A firmware major revision.
1316
+ * ``image_a_minor``: integer, Image A firmware minor revision.
1317
+ * ``image_a_build``: integer, Image A firmware build number.
1318
+ * ``image_a_extra_string``: string, Image A additional information (32-byte long ASCII string).
1319
+ * ``image_b_major``: integer, Image B firmware major revision.
1320
+ * ``image_b_minor``: integer, Image B firmware minor revision.
1321
+ * ``image_b_build``: integer, Image B firmware build number.
1322
+ * ``image_b_extra_string``: string, Image B additional information (32-byte long ASCII string).
1323
+ * ``factory_boot_major``: integer, Factory or Boot firmware major revision.
1324
+ * ``factory_boot_minor``: integer, Factory or Boot firmware minor revision.
1325
+ * ``factory_boot_build``: integer, Factory or Boot firmware build number.
1326
+ * ``factory_boot_extra_string``: string, Factory or Boot additional information (32-byte long ASCII string).
1327
+
1328
+ """
1329
+
1330
+ class SetDataAttr(RequestBodyStruct):
1331
+ cmd_data: dict = field(XmpJson(min_len=2))
1332
+ """dict, json
1333
+ """
1334
+
1335
+ def get(self) -> Token[GetDataAttr]:
1336
+ """Get REPLY
1337
+
1338
+ :return: REPLY
1339
+ :rtype: PX_CDB_GET_FIRMWARE_INFO.GetDataAttr
1340
+ """
1341
+
1342
+ return Token(self._connection, build_get_request(self, module=self._module, port=self._port, indices=[self._cdb_instance_xindex]))
1343
+
1344
+ def set(self) -> Token[None]:
1345
+ """
1346
+ Set CMD Data
1347
+ """
1348
+
1349
+ return Token(self._connection, build_set_request(self, module=self._module, port=self._port, indices=[self._cdb_instance_xindex], cmd_data='{}'))
1350
+
1351
+
1352
+ @register_command
1353
+ @dataclass
1354
+ class PX_CDB_READ_FW_BLOCK_EPL:
1355
+ """This is CMD 0106h: Read Firmware Block EPL
1356
+ """
1357
+ code: typing.ClassVar[int] = 477
1358
+ pushed: typing.ClassVar[bool] = False
1359
+
1360
+ _connection: 'interfaces.IConnection'
1361
+ _module: int
1362
+ _port: int
1363
+ _cdb_instance_xindex: int
1364
+
1365
+ class GetDataAttr(ResponseBodyStruct):
1366
+ reply: dict = field(XmpJson(min_len=2))
1367
+ """dict, json
1368
+
1369
+ .. code-block:: json
1370
+
1371
+ {
1372
+ "cdb_status": "0x00",
1373
+ "image_data": "0x00010203040506070809"
1374
+ }
1375
+
1376
+ * ``cdb_status``: hex string, provides the status of the most recently triggered CDB command.
1377
+ * ``image_data``: hex string, Up to 2048 bytes.
1378
+
1379
+ """
1380
+
1381
+ class SetDataAttr(RequestBodyStruct):
1382
+ cmd_data: dict = field(XmpJson(min_len=2))
1383
+ """dict, json
1384
+ """
1385
+
1386
+
1387
+ def get(self) -> Token[GetDataAttr]:
1388
+ """Get REPLY
1389
+
1390
+ :return: REPLY
1391
+ :rtype: PX_CDB_READ_FIRMWARE_BLOCK_EPL.GetDataAttr
1392
+ """
1393
+
1394
+ return Token(self._connection, build_get_request(self, module=self._module, port=self._port, indices=[self._cdb_instance_xindex]))
1395
+
1396
+ def set(self, cmd_data: dict) -> Token[None]:
1397
+ """
1398
+ Set CMD Data
1399
+
1400
+ :param cmd_data: CMD DATA
1401
+ :type cmd_data: dict
1402
+
1403
+ .. code-block:: json
1404
+
1405
+ {
1406
+ "block_address": 12,
1407
+ "length": 10
1408
+ }
1409
+
1410
+ * ``block_address``: integer, U32 Starting byte address of this block of data within the supplied image file minus the size of the size of the “Start Command Payload Size”.
1411
+
1412
+ * ``length``: integer, Number of bytes to read back to the EPL in this command, starting at the indicated address.
1413
+
1414
+ """
1415
+
1416
+ return Token(self._connection, build_set_request(self, module=self._module, port=self._port, indices=[self._cdb_instance_xindex], cmd_data=cmd_data))
1417
+
1418
+
1419
+ @register_command
1420
+ @dataclass
1421
+ class PX_CDB_READ_FW_BLOCK_LPL:
1422
+ """This is CMD 0105h: Read Firmware Block LPL
1423
+ """
1424
+ code: typing.ClassVar[int] = 476
1425
+ pushed: typing.ClassVar[bool] = False
1426
+
1427
+ _connection: 'interfaces.IConnection'
1428
+ _module: int
1429
+ _port: int
1430
+ _cdb_instance_xindex: int
1431
+
1432
+ class GetDataAttr(ResponseBodyStruct):
1433
+ reply: dict = field(XmpJson(min_len=2))
1434
+ """dict, json
1435
+
1436
+ .. code-block:: json
1437
+
1438
+ {
1439
+ "cdb_status": "0x00",
1440
+ "base_address_block": "0x0000000C",
1441
+ "image_data": "0x00010203040506070809"
1442
+ }
1443
+
1444
+ * ``cdb_status``: hex string, provides the status of the most recently triggered CDB command.
1445
+ * ``base_address_block``: hex string, Base address of the data block within the firmware image.
1446
+ * ``image_data``: : hex string, Up to 2048 bytes.
1447
+
1448
+ """
1449
+
1450
+ class SetDataAttr(RequestBodyStruct):
1451
+ cmd_data: dict = field(XmpJson(min_len=2))
1452
+ """dict, json
1453
+ """
1454
+
1455
+ def get(self) -> Token[GetDataAttr]:
1456
+ """Get REPLY
1457
+
1458
+ :return: REPLY
1459
+ :rtype: PX_CDB_WRITE_FIRMWARE_BLOCK_EPL.GetDataAttr
1460
+ """
1461
+
1462
+ return Token(self._connection, build_get_request(self, module=self._module, port=self._port, indices=[self._cdb_instance_xindex]))
1463
+
1464
+ def set(self, cmd_data: dict) -> Token[None]:
1465
+ """
1466
+ Set CMD Data
1467
+
1468
+ :param cmd_data: CMD DATA
1469
+ :type cmd_data: dict
1470
+
1471
+ .. code-block:: json
1472
+
1473
+ {
1474
+ "block_address": 12,
1475
+ "length": 10
1476
+ }
1477
+
1478
+ * ``block_address``: integer, U32 Starting byte address of this block of data within the supplied image file minus the size of the size of the “Start Command Payload Size”.
1479
+
1480
+ * ``length``: integer, Number of bytes to read back to the EPL in this command, starting at the indicated address.
1481
+
1482
+ """
1483
+
1484
+ return Token(self._connection, build_set_request(self, module=self._module, port=self._port, indices=[self._cdb_instance_xindex], cmd_data=cmd_data))
1485
+
1486
+
1487
+ @register_command
1488
+ @dataclass
1489
+ class PX_CDB_RUN_FW_IMAGE:
1490
+ """This is CMD 0109h: Run Firmware Image
1491
+ """
1492
+ code: typing.ClassVar[int] = 482
1493
+ pushed: typing.ClassVar[bool] = False
1494
+
1495
+ _connection: 'interfaces.IConnection'
1496
+ _module: int
1497
+ _port: int
1498
+ _cdb_instance_xindex: int
1499
+
1500
+ class GetDataAttr(ResponseBodyStruct):
1501
+ reply: dict = field(XmpJson(min_len=2))
1502
+ """dict, json
1503
+
1504
+ .. code-block:: json
1505
+
1506
+ {
1507
+ "cdb_status": "0x00"
1508
+ }
1509
+
1510
+ * ``cdb_status``: hex string, provides the status of the most recently triggered CDB command.
1511
+
1512
+ """
1513
+ class SetDataAttr(RequestBodyStruct):
1514
+ cmd_data: dict = field(XmpJson(min_len=2))
1515
+ """dict, json
1516
+
1517
+ .. code-block:: json
1518
+
1519
+ {
1520
+ "image_to_run": 0,
1521
+ "delay_to_reset": 100
1522
+ }
1523
+
1524
+ * ``image_to_run``: integer, index of the image to run.
1525
+
1526
+ * 0 = Traffic affecting Reset to Inactive Image.
1527
+ * 1 = Attempt Hitless Reset to Inactive Image
1528
+ * 2 = Traffic affecting Reset to Running Image.
1529
+ * 3 = Attempt Hitless Reset to Running Image
1530
+
1531
+ * ``delay_to_reset``: integer, Indicates the delay in ms after receiving this command before a reset will occur, starting from the time the CDB complete Flag is set.
1532
+
1533
+ """
1534
+
1535
+ def get(self) -> Token[GetDataAttr]:
1536
+ """Get REPLY
1537
+
1538
+ :return: REPLY
1539
+ :rtype: PX_CDB_COPY_FIRMWARE_IMAGE.GetDataAttr
1540
+ """
1541
+
1542
+ return Token(self._connection, build_get_request(self, module=self._module, port=self._port, indices=[self._cdb_instance_xindex]))
1543
+
1544
+ def set(self, cmd_data: dict) -> Token[None]:
1545
+ """
1546
+ Set CMD Data
1547
+ :param cmd_data: CMD DATA
1548
+ :type cmd_data: dict
1549
+
1550
+ .. code-block:: json
1551
+
1552
+ {
1553
+ "image_to_run": 0,
1554
+ "delay_to_reset": 100
1555
+ }
1556
+
1557
+ * ``image_to_run``: integer, index of the image to run.
1558
+
1559
+ * 0 = Traffic affecting Reset to Inactive Image.
1560
+ * 1 = Attempt Hitless Reset to Inactive Image
1561
+ * 2 = Traffic affecting Reset to Running Image.
1562
+ * 3 = Attempt Hitless Reset to Running Image
1563
+
1564
+ * ``delay_to_reset``: integer, Indicates the delay in ms after receiving this command before a reset will occur, starting from the time the CDB complete Flag is set.
1565
+
1566
+ """
1567
+
1568
+ return Token(self._connection, build_set_request(self, module=self._module, port=self._port, indices=[self._cdb_instance_xindex], cmd_data=cmd_data))
1569
+
1570
+
1571
+ @register_command
1572
+ @dataclass
1573
+ class PX_CDB_START_FW_DOWNLOAD:
1574
+ """This is CMD 0101h: Start Firmware Download
1575
+ """
1576
+ code: typing.ClassVar[int] = 472
1577
+ pushed: typing.ClassVar[bool] = False
1578
+
1579
+ _connection: 'interfaces.IConnection'
1580
+ _module: int
1581
+ _port: int
1582
+ _cdb_instance_xindex: int
1583
+
1584
+ class GetDataAttr(ResponseBodyStruct):
1585
+ reply: dict = field(XmpJson(min_len=2))
1586
+ """dict, json
1587
+
1588
+ .. code-block:: json
1589
+
1590
+ {
1591
+ "cdb_status": "0x00"
1592
+ }
1593
+
1594
+ * ``cdb_status``: hex string, provides the status of the most recently triggered CDB command.
1595
+
1596
+ """
1597
+ class SetDataAttr(RequestBodyStruct):
1598
+ cmd_data: dict = field(XmpJson(min_len=2))
1599
+ """dict, json
1600
+
1601
+ .. code-block:: json
1602
+
1603
+ {
1604
+ "image_size": 12,
1605
+ "vendor_data": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
1606
+ }
1607
+
1608
+ * ``image_size``: integer, U32 Size of firmware image to download into the module. This should be the file size including the LPL bytes sent as vendor data in this message.
1609
+ * ``vendor_data``: hex string, U8 Array of vendor specific data to be sent to the module. This data is sent as part of the firmware download message. The size of this data is included in the image_size parameter.
1610
+
1611
+ """
1612
+
1613
+ def get(self) -> Token[GetDataAttr]:
1614
+ """Get REPLY
1615
+
1616
+ :return: REPLY
1617
+ :rtype: PX_CDB_COPY_FIRMWARE_IMAGE.GetDataAttr
1618
+ """
1619
+
1620
+ return Token(self._connection, build_get_request(self, module=self._module, port=self._port, indices=[self._cdb_instance_xindex]))
1621
+
1622
+ def set(self, cmd_data: dict) -> Token[None]:
1623
+ """
1624
+ Set CMD Data
1625
+ :param cmd_data: CMD DATA
1626
+ :type cmd_data: dict
1627
+
1628
+ .. code-block:: json
1629
+
1630
+ {
1631
+ "image_size": 12,
1632
+ "vendor_data": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
1633
+ }
1634
+
1635
+ * ``image_size``: integer, U32 Size of firmware image to download into the module. This should be the file size including the LPL bytes sent as vendor data in this message.
1636
+ * ``vendor_data``: hex string, U8 Array of vendor specific data to be sent to the module. This data is sent as part of the firmware download message. The size of this data is included in the image_size parameter.
1637
+
1638
+ """
1639
+
1640
+ return Token(self._connection, build_set_request(self, module=self._module, port=self._port, indices=[self._cdb_instance_xindex], cmd_data=cmd_data))
1641
+
1642
+
1643
+ @register_command
1644
+ @dataclass
1645
+ class PX_CDB_WRITE_FW_BLOCK_EPL:
1646
+ """This is CMD 0104h: Write Firmware Block EPL
1647
+ """
1648
+ code: typing.ClassVar[int] = 475
1649
+ pushed: typing.ClassVar[bool] = False
1650
+
1651
+ _connection: 'interfaces.IConnection'
1652
+ _module: int
1653
+ _port: int
1654
+ _cdb_instance_xindex: int
1655
+
1656
+ class GetDataAttr(ResponseBodyStruct):
1657
+ reply: dict = field(XmpJson(min_len=2))
1658
+ """dict, json
1659
+
1660
+ .. code-block:: json
1661
+
1662
+ {
1663
+ "cdb_status": "0x00"
1664
+ }
1665
+
1666
+ * ``cdb_status``: hex string, provides the status of the most recently triggered CDB command.
1667
+
1668
+ """
1669
+ class SetDataAttr(RequestBodyStruct):
1670
+ cmd_data: dict = field(XmpJson(min_len=2))
1671
+ """dict, json
1672
+ """
1673
+
1674
+ def get(self) -> Token[GetDataAttr]:
1675
+ """Get REPLY
1676
+
1677
+ :return: REPLY
1678
+ :rtype: PX_CDB_WRITE_FIRMWARE_BLOCK_EPL.GetDataAttr
1679
+ """
1680
+
1681
+ return Token(self._connection, build_get_request(self, module=self._module, port=self._port, indices=[self._cdb_instance_xindex]))
1682
+
1683
+ def set(self, cmd_data: dict) -> Token[None]:
1684
+ """
1685
+ Set CMD Data
1686
+ :param cmd_data: CMD DATA
1687
+ :type cmd_data: dict
1688
+
1689
+ .. code-block:: json
1690
+
1691
+ {
1692
+ "block_address": 12,
1693
+ "firmware_block": "0x00010203040506070809"
1694
+ }
1695
+
1696
+ * ``block_address``: integer, U32 Starting byte address of this block of data within the supplied image file minus the size of the size of the “Start Command Payload Size”.
1697
+ * ``firmware_block``: hex string, Up to 2048 Bytes.
1698
+
1699
+ """
1700
+
1701
+ return Token(self._connection, build_set_request(self, module=self._module, port=self._port, indices=[self._cdb_instance_xindex], cmd_data=cmd_data))
1702
+
1703
+
1704
+ @register_command
1705
+ @dataclass
1706
+ class PX_CDB_WRITE_FW_BLOCK_LPL:
1707
+ """This is CMD 0103h: Write Firmware Block LPL
1708
+ """
1709
+ code: typing.ClassVar[int] = 474
1710
+ pushed: typing.ClassVar[bool] = False
1711
+
1712
+ _connection: 'interfaces.IConnection'
1713
+ _module: int
1714
+ _port: int
1715
+ _cdb_instance_xindex: int
1716
+
1717
+ class GetDataAttr(ResponseBodyStruct):
1718
+ reply: dict = field(XmpJson(min_len=2))
1719
+ """dict, json
1720
+
1721
+ .. code-block:: json
1722
+
1723
+ {
1724
+ "cdb_status": "0x00"
1725
+ }
1726
+
1727
+ * ``cdb_status``: hex string, provides the status of the most recently triggered CDB command.
1728
+
1729
+ """
1730
+ class SetDataAttr(RequestBodyStruct):
1731
+ cmd_data: dict = field(XmpJson(min_len=2))
1732
+ """dict, json
1733
+ """
1734
+
1735
+ def get(self) -> Token[GetDataAttr]:
1736
+ """Get REPLY
1737
+
1738
+ :return: REPLY
1739
+ :rtype: PX_CDB_WRITE_FIRMWARE_BLOCK_LPL.GetDataAttr
1740
+ """
1741
+
1742
+ return Token(self._connection, build_get_request(self, module=self._module, port=self._port, indices=[self._cdb_instance_xindex]))
1743
+
1744
+ def set(self, cmd_data: dict) -> Token[None]:
1745
+ """
1746
+ Set CMD Data
1747
+ :param cmd_data: CMD DATA
1748
+ :type cmd_data: dict
1749
+
1750
+ .. code-block:: json
1751
+
1752
+ {
1753
+ "block_address": 12,
1754
+ "firmware_block": "0x00010203040506070809"
1755
+ }
1756
+
1757
+ * ``block_address``: integer, U32 Starting byte address of this block of data within the supplied image file minus the size of the size of the “Start Command Payload Size”.
1758
+ * ``firmware_block``: hex string, Up to 116 bytes. One block of the firmware image. The actually needed length may be shorter than the available FirmwareBlock field size.
1759
+
1760
+ """
1761
+
1762
+ return Token(self._connection, build_set_request(self, module=self._module, port=self._port, indices=[self._cdb_instance_xindex], cmd_data=cmd_data))
1763
+
1764
+
1765
+
1766
+ @register_command
1767
+ @dataclass
1768
+ class PX_CUST_CMD:
1769
+ """Defines the custom request and reply to be sent to the CDB instance.
1770
+ """
1771
+ code: typing.ClassVar[int] = 486
1772
+ pushed: typing.ClassVar[bool] = False
1773
+
1774
+ _connection: 'interfaces.IConnection'
1775
+ _module: int
1776
+ _port: int
1777
+ _cdb_instance_xindex: int
1778
+
1779
+ class SetDataAttr(RequestBodyStruct):
1780
+ cmd: dict = field(XmpJson(min_len=2))
1781
+ """Set CMD
1782
+ """
1783
+
1784
+
1785
+ def set(self, cmd: dict) -> Token[None]:
1786
+ """
1787
+ Set CMD
1788
+ :param cmd: CMD
1789
+ :type cmd: dict
1790
+
1791
+ .. code-block:: json
1792
+
1793
+ {
1794
+ "cmd_header": {
1795
+ "cmd_id": "0x00",
1796
+ "epl_length": 0,
1797
+ "lpl_length": 0,
1798
+ "rpl_length": 0,
1799
+ "rpl_check_code": 0
1800
+ },
1801
+ "cmd_data": {
1802
+ "data": "0x00"
1803
+ }
1804
+ }
1805
+
1806
+ * ``cmd_header``: dict, contains the command header fields.
1807
+
1808
+ * ``cmd_id``: hex string, command ID.
1809
+ * ``epl_length``: integer, length of the EPL.
1810
+ * ``lpl_length``: integer, length of the LPL.
1811
+ * ``rpl_length``: integer, length of the RPL. (optional)
1812
+ * ``rpl_check_code``: integer, check code for the RPL. (optional)
1813
+
1814
+ * ``cmd_data``: dict, contains the command data fields.
1815
+
1816
+ * ``data``: hex string, command data.
1817
+
1818
+ """
1819
+
1820
+ return Token(self._connection, build_set_request(self, module=self._module, port=self._port, indices=[self._cdb_instance_xindex], cmd=cmd))
1821
+
1822
+ class GetDataAttr(ResponseBodyStruct):
1823
+ reply: dict = field(XmpJson(min_len=2))
1824
+ """dict, json
1825
+
1826
+ .. code-block:: json
1827
+
1828
+ {
1829
+ "reply_status": {
1830
+ "cdb_cmd_complete_flag": "0x00",
1831
+ "cdb_status": "0x00",
1832
+ },
1833
+ "reply_header": {
1834
+ "rpl_length": 9,
1835
+ "rpl_check_code": 9
1836
+ }
1837
+ "reply_data": {
1838
+ "data": "0x00"
1839
+ }
1840
+ }
1841
+
1842
+ * ``reply_status``: dict, JSON formatted string containing the following fields:
1843
+
1844
+ * ``cdb_cmd_complete_flag``: hex string, indicates whether the CDB command is complete.
1845
+ * ``cdb_status``: hex string, provides the status of the most recently triggered CDB command.
1846
+
1847
+ * ``reply_header``: dict, JSON formatted string containing the following fields:
1848
+
1849
+ * ``rpl_length``: integer, length of the reply data.
1850
+ * ``rpl_check_code``: integer, check code for the reply data.
1851
+
1852
+ * ``reply_data``: dict, JSON formatted string containing the following fields:
1853
+
1854
+ * ``data``: hex string, the actual data to be sent in the reply.
1855
+
1856
+ """
1857
+
1858
+ def get(self) -> Token[GetDataAttr]:
1859
+ """Get REPLY
1860
+
1861
+ :return: REPLY
1862
+ :rtype: PX_CUST_CMD.GetDataAttr
1863
+ """
1864
+ return Token(self._connection, build_get_request(self, module=self._module, port=self._port, indices=[self._cdb_instance_xindex]))
1865
+
1866
+
1867
+
1868
+ # @register_command
1869
+ # @dataclass
1870
+ # class PX_CUST_REPLY:
1871
+ # """Defines the custom reply to receiver for the CDB instance.
1872
+ # """
1873
+ # code: typing.ClassVar[int] = 487
1874
+ # pushed: typing.ClassVar[bool] = False
1875
+
1876
+ # _connection: 'interfaces.IConnection'
1877
+ # _module: int
1878
+ # _port: int
1879
+ # _cdb_instance_xindex: int
1880
+
1881
+ # class GetDataAttr(ResponseBodyStruct):
1882
+ # reply: bytes = field(XmpJson(min_len=2))
1883
+ # """bytes, json
1884
+
1885
+ # .. code-block:: json
1886
+
1887
+ # {
1888
+ # "reply_status": {
1889
+ # "cdb_cmd_complete_flag": "0x00",
1890
+ # "cdb_status": "0x00",
1891
+ # },
1892
+ # "reply_header": {
1893
+ # "rpl_length": 9,
1894
+ # "rpl_check_code": 9
1895
+ # }
1896
+ # "reply_data": {
1897
+ # "data": "0x00"
1898
+ # }
1899
+ # }
1900
+
1901
+ # * ``reply_status``: dict, JSON formatted string containing the following fields:
1902
+
1903
+ # * ``cdb_cmd_complete_flag``: hex string, indicates whether the CDB command is complete.
1904
+ # * ``cdb_status``: hex string, provides the status of the most recently triggered CDB command.
1905
+
1906
+ # * ``reply_header``: dict, JSON formatted string containing the following fields:
1907
+
1908
+ # * ``rpl_length``: integer, length of the reply data.
1909
+ # * ``rpl_check_code``: integer, check code for the reply data.
1910
+
1911
+ # * ``reply_data``: dict, JSON formatted string containing the following fields:
1912
+
1913
+ # * ``data``: hex string, the actual data to be sent in the reply.
1914
+
1915
+ # """
1916
+
1917
+ # def get(self) -> Token[GetDataAttr]:
1918
+ # """Get REPLY
1919
+
1920
+ # :return: REPLY
1921
+ # :rtype: PX_CUST_REPLY.GetDataAttr
1922
+ # """
1923
+ # return Token(self._connection, build_get_request(self, module=self._module, port=self._port, indices=[self._cdb_instance_xindex]))
1924
+
1925
+
1926
+ # @register_command
1927
+ # @dataclass
1928
+ # class PX_CUST_REQUEST:
1929
+ # """Defines the custom request to be sent to the CDB instance.
1930
+ # """
1931
+ # code: typing.ClassVar[int] = 486
1932
+ # pushed: typing.ClassVar[bool] = False
1933
+
1934
+ # _connection: 'interfaces.IConnection'
1935
+ # _module: int
1936
+ # _port: int
1937
+ # _cdb_instance_xindex: int
1938
+
1939
+ # class SetDataAttr(RequestBodyStruct):
1940
+ # cmd_data: bytes = field(XmpJson(min_len=2))
1941
+ # """Set CMD Data
1942
+ # """
1943
+
1944
+
1945
+ # def set(self, cmd_data: dict) -> Token[None]:
1946
+ # """
1947
+ # Set CMD Data
1948
+ # :param cmd_data: CMD DATA
1949
+ # :type cmd_data: dict
1950
+
1951
+ # .. code-block:: json
1952
+
1953
+ # {
1954
+ # "cmd_header": {
1955
+ # "cmd_id": "0x00",
1956
+ # "epl_length": 0,
1957
+ # "lpl_length": 0,
1958
+ # "rpl_length": 0,
1959
+ # "rpl_check_code": 0
1960
+ # },
1961
+ # "cmd_data": {
1962
+ # "data": "0x00"
1963
+ # }
1964
+ # }
1965
+
1966
+ # * ``cmd_header``: dict, contains the command header fields.
1967
+
1968
+ # * ``cmd_id``: hex string, command ID.
1969
+ # * ``epl_length``: integer, length of the EPL.
1970
+ # * ``lpl_length``: integer, length of the LPL.
1971
+ # * ``rpl_length``: integer, length of the RPL. (optional)
1972
+ # * ``rpl_check_code``: integer, check code for the RPL. (optional)
1973
+
1974
+ # * ``cmd_data``: dict, contains the command data fields.
1975
+
1976
+ # * ``data``: hex string, command data.
1977
+
1978
+ # """
1979
+
1980
+ # return Token(self._connection, build_set_request(self, module=self._module, port=self._port, indices=[self._cdb_instance_xindex], cmd_data=cmd_data))
1981
+
1982
+
1983
+ # endregion