constants.js 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182
  1. const MAX_MODBUS_ADDRESS = 0xFFFF
  2. const MAX_STORAGE_ADDRESS = 0xFFFFFFFF
  3. const MAX_PARAMETER_GROUP_ITEMS = 256
  4. const DEFAULT_TEXT_BYTE_LENGTH = 32
  5. const MAX_TEXT_BYTE_LENGTH = 32
  6. const REGISTER_TYPE_OPTIONS = [
  7. {
  8. functionCode: 0x03,
  9. key: 'holding',
  10. label: '保持寄存器',
  11. writable: true
  12. },
  13. {
  14. functionCode: 0x01,
  15. key: 'coil',
  16. label: '线圈',
  17. writable: true
  18. },
  19. {
  20. functionCode: 0x02,
  21. key: 'discrete',
  22. label: '离散输入状态',
  23. writable: false
  24. },
  25. {
  26. functionCode: 0x04,
  27. key: 'input',
  28. label: '输入寄存器',
  29. writable: false
  30. }
  31. ]
  32. const DATA_TYPE_OPTIONS = [
  33. {
  34. byteLength: 1,
  35. key: 'int8_t',
  36. label: 'int8_t',
  37. kind: 'number',
  38. wordCount: 1
  39. },
  40. {
  41. byteLength: 1,
  42. key: 'uint8_t',
  43. label: 'uint8_t',
  44. kind: 'number',
  45. wordCount: 1
  46. },
  47. {
  48. byteLength: 2,
  49. key: 'int16_t',
  50. label: 'int16_t',
  51. kind: 'number',
  52. wordCount: 1
  53. },
  54. {
  55. byteLength: 2,
  56. key: 'uint16_t',
  57. label: 'uint16_t',
  58. kind: 'number',
  59. wordCount: 1
  60. },
  61. {
  62. byteLength: 4,
  63. key: 'int32_t',
  64. label: 'int32_t',
  65. kind: 'number',
  66. wordCount: 2
  67. },
  68. {
  69. byteLength: 4,
  70. key: 'uint32_t',
  71. label: 'uint32_t',
  72. kind: 'number',
  73. wordCount: 2
  74. },
  75. {
  76. byteLength: 4,
  77. key: 'float',
  78. label: 'float',
  79. kind: 'number',
  80. wordCount: 2
  81. },
  82. {
  83. byteLength: 32,
  84. key: 'utf8',
  85. label: 'UTF-8',
  86. kind: 'text',
  87. maxByteLength: MAX_TEXT_BYTE_LENGTH,
  88. wordCount: 16
  89. },
  90. {
  91. byteLength: 32,
  92. key: 'ascii',
  93. label: 'ASCII',
  94. kind: 'text',
  95. maxByteLength: MAX_TEXT_BYTE_LENGTH,
  96. wordCount: 16
  97. },
  98. {
  99. byteLength: 2,
  100. key: 'hex',
  101. label: 'HEX',
  102. kind: 'hex',
  103. wordCount: 1
  104. },
  105. {
  106. byteLength: 1,
  107. key: 'raw',
  108. label: '未配置',
  109. kind: 'raw',
  110. wordCount: 1
  111. }
  112. ]
  113. const DEFAULT_REGISTER_TYPE = REGISTER_TYPE_OPTIONS[0].key
  114. const DEFAULT_DATA_TYPE = 'uint16_t'
  115. const GROUP_LAYOUT_REGISTER = 'register'
  116. const GROUP_LAYOUT_STRUCT = 'struct'
  117. const BYTE_ADDRESS_MEMORY_AREAS = ['ADDR32', 'BIT', 'CODE', 'DATA', 'IDATA', 'XDATA']
  118. const SOURCE_REGISTER_FIELDS = [
  119. 'conversionFormula',
  120. 'enumName',
  121. 'enumOptions',
  122. 'sourceAddress',
  123. 'sourceAddressByteLength',
  124. 'sourceAddressText',
  125. 'sourceAddressWidth',
  126. 'sourceByteLength',
  127. 'sourceBitOffset',
  128. 'sourceBitWidth',
  129. 'sourceEntryKind',
  130. 'sourceMemoryArea',
  131. 'sourceMemoryClass',
  132. 'sourceSymbolName',
  133. 'sourceSymbolType'
  134. ]
  135. const STRUCT_REGISTER_FIELDS = [
  136. 'bitOffset',
  137. 'bitWidth',
  138. 'byteStart',
  139. 'isPlaceholderByteField',
  140. 'isBitField',
  141. 'structByteLength'
  142. ]
  143. const SOURCE_GROUP_FIELDS = [
  144. 'addressUnit',
  145. 'codeInfoContext',
  146. 'sourceAddress',
  147. 'sourceAddressByteLength',
  148. 'sourceAddressText',
  149. 'sourceAddressWidth',
  150. 'sourceByteLength',
  151. 'sourceEntryKind',
  152. 'sourceMemoryArea',
  153. 'sourceMemoryClass',
  154. 'sourceSegment',
  155. 'sourceSegmentModule',
  156. 'sourceSymbolName',
  157. 'sourceSymbolType'
  158. ]
  159. module.exports = {
  160. BYTE_ADDRESS_MEMORY_AREAS,
  161. DATA_TYPE_OPTIONS,
  162. DEFAULT_DATA_TYPE,
  163. DEFAULT_REGISTER_TYPE,
  164. DEFAULT_TEXT_BYTE_LENGTH,
  165. GROUP_LAYOUT_REGISTER,
  166. GROUP_LAYOUT_STRUCT,
  167. MAX_MODBUS_ADDRESS,
  168. MAX_STORAGE_ADDRESS,
  169. MAX_PARAMETER_GROUP_ITEMS,
  170. MAX_TEXT_BYTE_LENGTH,
  171. REGISTER_TYPE_OPTIONS,
  172. SOURCE_GROUP_FIELDS,
  173. SOURCE_REGISTER_FIELDS,
  174. STRUCT_REGISTER_FIELDS
  175. }