1
0

constants.js 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175
  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. const DEFAULT_REGISTER_TYPE = REGISTER_TYPE_OPTIONS[0].key
  107. const DEFAULT_DATA_TYPE = 'uint16_t'
  108. const GROUP_LAYOUT_REGISTER = 'register'
  109. const GROUP_LAYOUT_STRUCT = 'struct'
  110. const BYTE_ADDRESS_MEMORY_AREAS = ['ADDR32', 'BIT', 'CODE', 'DATA', 'IDATA', 'XDATA']
  111. const SOURCE_REGISTER_FIELDS = [
  112. 'conversionFormula',
  113. 'enumName',
  114. 'enumOptions',
  115. 'sourceAddress',
  116. 'sourceAddressByteLength',
  117. 'sourceAddressText',
  118. 'sourceAddressWidth',
  119. 'sourceByteLength',
  120. 'sourceBitOffset',
  121. 'sourceBitWidth',
  122. 'sourceEntryKind',
  123. 'sourceMemoryArea',
  124. 'sourceMemoryClass',
  125. 'sourceSymbolName',
  126. 'sourceSymbolType'
  127. ]
  128. const STRUCT_REGISTER_FIELDS = [
  129. 'bitOffset',
  130. 'bitWidth',
  131. 'byteStart',
  132. 'isPlaceholderByteField',
  133. 'isBitField',
  134. 'structByteLength'
  135. ]
  136. const SOURCE_GROUP_FIELDS = [
  137. 'addressUnit',
  138. 'codeInfoContext',
  139. 'sourceAddress',
  140. 'sourceAddressByteLength',
  141. 'sourceAddressText',
  142. 'sourceAddressWidth',
  143. 'sourceByteLength',
  144. 'sourceEntryKind',
  145. 'sourceMemoryArea',
  146. 'sourceMemoryClass',
  147. 'sourceSegment',
  148. 'sourceSegmentModule',
  149. 'sourceSymbolName',
  150. 'sourceSymbolType'
  151. ]
  152. module.exports = {
  153. BYTE_ADDRESS_MEMORY_AREAS,
  154. DATA_TYPE_OPTIONS,
  155. DEFAULT_DATA_TYPE,
  156. DEFAULT_REGISTER_TYPE,
  157. DEFAULT_TEXT_BYTE_LENGTH,
  158. GROUP_LAYOUT_REGISTER,
  159. GROUP_LAYOUT_STRUCT,
  160. MAX_MODBUS_ADDRESS,
  161. MAX_STORAGE_ADDRESS,
  162. MAX_PARAMETER_GROUP_ITEMS,
  163. MAX_TEXT_BYTE_LENGTH,
  164. REGISTER_TYPE_OPTIONS,
  165. SOURCE_GROUP_FIELDS,
  166. SOURCE_REGISTER_FIELDS,
  167. STRUCT_REGISTER_FIELDS
  168. }