1
0

constants.js 2.9 KB

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