opencrbasic 1.0.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 (117) hide show
  1. opencrbasic/__init__.py +3 -0
  2. opencrbasic/__main__.py +5 -0
  3. opencrbasic/analysis.py +184 -0
  4. opencrbasic/bindings.py +1034 -0
  5. opencrbasic/catalog.py +173 -0
  6. opencrbasic/checkconfig.py +144 -0
  7. opencrbasic/checker/__init__.py +977 -0
  8. opencrbasic/checker/cr3xx.py +3118 -0
  9. opencrbasic/checker/ess.py +81 -0
  10. opencrbasic/checker/expressions.py +3581 -0
  11. opencrbasic/checker/instr_data.py +1802 -0
  12. opencrbasic/checker/instr_measure.py +1547 -0
  13. opencrbasic/checker/instr_rules.py +3540 -0
  14. opencrbasic/checker/instructions.py +17 -0
  15. opencrbasic/checker/intervals.py +678 -0
  16. opencrbasic/checker/longconv.py +133 -0
  17. opencrbasic/checker/scan_time.py +580 -0
  18. opencrbasic/checker/storage.py +456 -0
  19. opencrbasic/checker/structs.py +240 -0
  20. opencrbasic/checker/structure.py +6213 -0
  21. opencrbasic/checker/symbols.py +609 -0
  22. opencrbasic/checker/terminals.py +249 -0
  23. opencrbasic/checker/unused.py +186 -0
  24. opencrbasic/checker/var_types.py +564 -0
  25. opencrbasic/checker/warnings.py +661 -0
  26. opencrbasic/checks.py +491 -0
  27. opencrbasic/cli.py +391 -0
  28. opencrbasic/commands.py +128 -0
  29. opencrbasic/compiler.py +320 -0
  30. opencrbasic/consteval.py +327 -0
  31. opencrbasic/data/background_calibration.json +4 -0
  32. opencrbasic/data/before_beginprog.json +99 -0
  33. opencrbasic/data/cr1000x/background_calibration.json +4 -0
  34. opencrbasic/data/cr1000x/before_beginprog.json +138 -0
  35. opencrbasic/data/cr1000x/ess_variables.json +1087 -0
  36. opencrbasic/data/cr1000x/fnotch.json +29 -0
  37. opencrbasic/data/cr1000x/functions.json +1337 -0
  38. opencrbasic/data/cr1000x/instructions.json +4836 -0
  39. opencrbasic/data/cr1000x/measure.json +121 -0
  40. opencrbasic/data/cr1000x/mode.json +111 -0
  41. opencrbasic/data/cr1000x/pipeline_tasks.json +88 -0
  42. opencrbasic/data/cr1000x/settings_fields.json +321 -0
  43. opencrbasic/data/cr1000x/status_members.json +318 -0
  44. opencrbasic/data/cr1000x/symbols.json +872 -0
  45. opencrbasic/data/cr1000x/terminals.json +225 -0
  46. opencrbasic/data/cr300/before_beginprog.json +42 -0
  47. opencrbasic/data/cr300/ess_variables.json +1087 -0
  48. opencrbasic/data/cr300/fnotch.json +22 -0
  49. opencrbasic/data/cr300/functions.json +1261 -0
  50. opencrbasic/data/cr300/instructions.json +2837 -0
  51. opencrbasic/data/cr300/measure.json +33 -0
  52. opencrbasic/data/cr300/mode.json +121 -0
  53. opencrbasic/data/cr300/settings_fields.json +259 -0
  54. opencrbasic/data/cr300/status_members.json +303 -0
  55. opencrbasic/data/cr300/symbols.json +584 -0
  56. opencrbasic/data/cr300/terminals.json +193 -0
  57. opencrbasic/data/cr350/before_beginprog.json +44 -0
  58. opencrbasic/data/cr350/ess_variables.json +1087 -0
  59. opencrbasic/data/cr350/fnotch.json +22 -0
  60. opencrbasic/data/cr350/functions.json +1262 -0
  61. opencrbasic/data/cr350/instructions.json +2848 -0
  62. opencrbasic/data/cr350/measure.json +35 -0
  63. opencrbasic/data/cr350/mode.json +121 -0
  64. opencrbasic/data/cr350/settings_fields.json +292 -0
  65. opencrbasic/data/cr350/status_members.json +303 -0
  66. opencrbasic/data/cr350/symbols.json +572 -0
  67. opencrbasic/data/cr350/terminals.json +190 -0
  68. opencrbasic/data/ess_variables.json +1087 -0
  69. opencrbasic/data/fnotch.json +34 -0
  70. opencrbasic/data/functions.json +1337 -0
  71. opencrbasic/data/instructions.json +4965 -0
  72. opencrbasic/data/measure.json +123 -0
  73. opencrbasic/data/mode.json +121 -0
  74. opencrbasic/data/notices_cr6.json +890 -0
  75. opencrbasic/data/pipeline_tasks.json +84 -0
  76. opencrbasic/data/settings_fields.json +322 -0
  77. opencrbasic/data/status_members.json +319 -0
  78. opencrbasic/data/status_table.json +684 -0
  79. opencrbasic/data/symbols.json +902 -0
  80. opencrbasic/data/terminals.json +195 -0
  81. opencrbasic/data/type_codes.json +249 -0
  82. opencrbasic/diagnostics.py +196 -0
  83. opencrbasic/editing.py +827 -0
  84. opencrbasic/formatting.py +310 -0
  85. opencrbasic/helpdocs.py +677 -0
  86. opencrbasic/hover.py +667 -0
  87. opencrbasic/inlay.py +169 -0
  88. opencrbasic/lexer.py +183 -0
  89. opencrbasic/lsp/__init__.py +5 -0
  90. opencrbasic/lsp/__main__.py +7 -0
  91. opencrbasic/lsp/config.py +202 -0
  92. opencrbasic/lsp/features.py +602 -0
  93. opencrbasic/lsp/server.py +741 -0
  94. opencrbasic/lsp/session.py +1189 -0
  95. opencrbasic/lsp/worker.py +128 -0
  96. opencrbasic/mode.py +143 -0
  97. opencrbasic/navigation.py +401 -0
  98. opencrbasic/parser.py +3264 -0
  99. opencrbasic/positions.py +274 -0
  100. opencrbasic/preprocess.py +269 -0
  101. opencrbasic/profiles.py +266 -0
  102. opencrbasic/provenance.py +17 -0
  103. opencrbasic/quickfix.py +331 -0
  104. opencrbasic/rename.py +662 -0
  105. opencrbasic/signature.py +33 -0
  106. opencrbasic/source.py +600 -0
  107. opencrbasic/sources.py +125 -0
  108. opencrbasic/syntax.py +337 -0
  109. opencrbasic/tables.py +2173 -0
  110. opencrbasic/tables_hook.py +14 -0
  111. opencrbasic/tdf.py +142 -0
  112. opencrbasic/timing.py +565 -0
  113. opencrbasic-1.0.0.dist-info/METADATA +223 -0
  114. opencrbasic-1.0.0.dist-info/RECORD +117 -0
  115. opencrbasic-1.0.0.dist-info/WHEEL +4 -0
  116. opencrbasic-1.0.0.dist-info/entry_points.txt +3 -0
  117. opencrbasic-1.0.0.dist-info/licenses/LICENSE +21 -0
@@ -0,0 +1,121 @@
1
+ {
2
+ "range_codes": [800, 802, 804, 810, 820, 822, 824, 830],
3
+ "range_code_message": "Invalid range code, valid options are: mV5000, mV1000, mV200, or AutoRange.",
4
+ "range_code_instructions": {
5
+ "VOLTSE": 3,
6
+ "VOLTDIFF": 3,
7
+ "TCSE": 3,
8
+ "TCDIFF": 3,
9
+ "CURRENTSE": 3,
10
+ "BRHALF": [3, 3],
11
+ "BRHALF3W": [3, 3],
12
+ "BRFULL": [3, 3],
13
+ "BRHALF4W": [3, 4],
14
+ "BRFULL6W": [3, 4]
15
+ },
16
+ "sw12_ports": [501, 502, 503],
17
+ "sw12_port_messages": {"0": "Invalid port 6642484, must be NULL.", "-1": "Invalid port 6642484, must be ."},
18
+ "delay": {
19
+ "option0_limit": 3600000000,
20
+ "option1_limit": 86400000000,
21
+ "task_memory": true,
22
+ "sdm_slow_sequence": true
23
+ },
24
+ "gps": {
25
+ "ports": [1, 9, 10, 11, 12],
26
+ "pps_port": 9,
27
+ "port_message": "Only COMRS232, COMC1, COMC3..COMC7 are legal.",
28
+ "pps_message": "GPS pps synchronization is only available on COMC1.",
29
+ "structure_members": [
30
+ {"member": "NMEASENTENCES", "type": "STRING", "min_string_size": 96, "message": "Size of NMEASentences is too small, must be at least 100"}
31
+ ]
32
+ },
33
+ "tablefile": {"drives": ["CRD", "USB", "USR"]},
34
+ "string_prefixes": [
35
+ {"instr": "FILEMANAGE", "pos": 1, "prefixes": ["CPU", "CRD", "USR", "USB"], "ext": "CR1X", "message": "FileManage invalid drive: {drive}."},
36
+ {"instr": "RUNPROGRAM", "pos": 1, "prefixes": ["CPU", "CRD", "USR", "USB"], "ext": "CR1X", "message": "FileManage invalid drive: {drive}."}
37
+ ],
38
+ "const_ranges": [
39
+ {"instr": "CPISPEED", "pos": 1, "skip_strings": true, "values": [50, 125, 250, 500, 1000], "message": "Invalid CPI bit rate."},
40
+ {"instr": "SEMAPHOREGET", "pos": 1, "min": 1, "max": 4, "message": "Illegal Semaphore: 1..4 are legal, 1 to 3 are general purpose, 4 is reserved (see docs)"},
41
+ {"instr": "SEMAPHORERELEASE", "pos": 1, "min": 1, "max": 4, "message": "Illegal Semaphore: 1..4 are legal, 1 to 3 are general purpose, 4 is reserved (see docs)"},
42
+ {"instr": "BROADCAST", "pos": 2, "values": [0, 12, 13, 14], "message": "Illegal message type {value}"},
43
+ {"instr": "STATICROUTE", "pos": 2, "wrap16": true, "overflow": 0, "min": 1, "max": 4094, "message": "Illegal neighbor address {value}, range 1..4095"},
44
+ {"instr": "STATICROUTE", "pos": 3, "show": 2, "wrap16": true, "overflow": 0, "min": 1, "max": 4094, "message": "Illegal PakBus address {value}, range 1..4095"},
45
+ {"instr": "ACPOWER", "pos": 2, "min": 1, "max": 3, "message": "Legal configuration is 1..3."},
46
+ {"instr": "EXCITEV", "pos": 1, "min": 601, "max": 604, "message": "Invalid channel, must use Vx1..Vx4."},
47
+ {"instr": "CDM_BRHALF3W", "pos": 6, "min": 1, "max": 16, "message": "Input channel: {value}, out of range (1 - 16)."},
48
+ {"instr": "CDM_BRHALF3W", "pos": 6, "lower_gate": 1, "min": 1, "max": 15, "message": "Reps cycle input beyond last channel!"},
49
+ {"instr": "CDM_TCCOMP", "pos": 5, "min": 1, "max": 20, "message": "Input channel: {value}, out of range (1 - 20)."},
50
+ {"instr": "CDM_TCCOMP", "pos": 8, "values": [0, 1, 2], "warn_values": [-1], "warn_message": "Open detection disabled.", "message": "Temperature unit unsupported. Must be 0 (Celsius), 1 (Fahrenheit), or 2 (Kelvin)"},
51
+ {"instr": "CDM_SW5", "pos": 3, "values": [1, 2], "by_module": {"220": [1, 2], "221": [1, 2, 3, 4], "222": [1, 2], "223": [1, 2, 3, 4]}, "message": "Unrecognized port!"},
52
+ {"instr": "CDM_PULSEPORT", "pos": 3, "by_module": {"220": [1, 2], "221": [1, 2, 3, 4], "222": [1, 2], "223": [1, 2, 3, 4]}, "message": "Unrecognized port!"},
53
+ {"instr": "CDM_SW12", "pos": 3, "by_module": {"220": [1], "221": [1, 2], "222": [1], "223": [1, 2]}, "message": "Unrecognized port!"},
54
+ {"instr": "CDM_VOLTDIFF", "pos": 6, "min": 1, "max": 16, "skip_modules": ["220", "221", "222", "223"], "message": "Input channel: {value}, out of range (1 - 16)."},
55
+ {"instr": "CDM_VOLTDIFF", "pos": 6, "channel_by_module": {"220": 8, "221": 16, "222": 8, "223": 16}, "role": "ic", "message": "Input channel: {value}, out of range (1 - {max})."},
56
+ {"instr": "CDM_VOLTDIFF", "pos": 4, "min": 1, "max": 65536, "message": "Reps: {value}, out of range (1 - 65536)"},
57
+ {"instr": "CDM_VOLTDIFF", "pos": 6, "channel_by_module": {"220": 8, "221": 16, "222": 8, "223": 16}, "role": "rc", "message": "Reps cycle input beyond last channel!"},
58
+ {"instr": "CDM_VOLTDIFF", "pos": 6, "channel_by_module": {"220": 8, "221": 16, "222": 8, "223": 16}, "role": "tm", "message": "Two-measurement instruction starting on last input channel!"},
59
+ {"instr": "CDM_VOLTDIFF", "pos": 4, "min": 1, "max": 2147483647, "message": "MeasPEx: {value}, must be greater than 0."},
60
+ {"instr": "CDM_VOLTSE", "pos": 6, "channel_by_module": {"220": 16, "221": 32, "222": 16, "223": 32}, "role": "ic", "message": "Input channel: {value}, out of range (1 - {max})."},
61
+ {"instr": "CDM_VOLTSE", "pos": 4, "min": 1, "max": 65536, "message": "Reps: {value}, out of range (1 - 65536)"},
62
+ {"instr": "CDM_VOLTSE", "pos": 6, "channel_by_module": {"220": 16, "221": 32, "222": 16, "223": 32}, "role": "rc", "message": "Reps cycle input beyond last channel!"},
63
+ {"instr": "CDM_VOLTSE", "pos": 6, "channel_by_module": {"220": 16, "221": 32, "222": 16, "223": 32}, "role": "tm", "message": "Two-measurement instruction starting on last input channel!"},
64
+ {"instr": "CDM_VOLTSE", "pos": 4, "min": 1, "max": 2147483647, "message": "MeasPEx: {value}, must be greater than 0."},
65
+ {"instr": "CDM_TCSE", "pos": 6, "channel_by_module": {"220": 16, "221": 32, "222": 16, "223": 32}, "role": "ic", "message": "Input channel: {value}, out of range (1 - {max})."},
66
+ {"instr": "CDM_TCSE", "pos": 4, "min": 1, "max": 65536, "message": "Reps: {value}, out of range (1 - 65536)"},
67
+ {"instr": "CDM_TCSE", "pos": 6, "channel_by_module": {"220": 16, "221": 32, "222": 16, "223": 32}, "role": "rc", "message": "Reps cycle input beyond last channel!"},
68
+ {"instr": "CDM_TCSE", "pos": 6, "channel_by_module": {"220": 16, "221": 32, "222": 16, "223": 32}, "role": "tm", "message": "Two-measurement instruction starting on last input channel!"},
69
+ {"instr": "CDM_TCSE", "pos": 4, "min": 1, "max": 2147483647, "message": "MeasPEx: {value}, must be greater than 0."},
70
+ {"instr": "CDM_TCDIFF", "pos": 6, "channel_by_module": {"220": 8, "221": 16, "222": 8, "223": 16}, "role": "ic", "message": "Input channel: {value}, out of range (1 - {max})."},
71
+ {"instr": "CDM_TCDIFF", "pos": 4, "min": 1, "max": 65536, "message": "Reps: {value}, out of range (1 - 65536)"},
72
+ {"instr": "CDM_TCDIFF", "pos": 6, "channel_by_module": {"220": 8, "221": 16, "222": 8, "223": 16}, "role": "rc", "message": "Reps cycle input beyond last channel!"},
73
+ {"instr": "CDM_TCDIFF", "pos": 6, "channel_by_module": {"220": 8, "221": 16, "222": 8, "223": 16}, "role": "tm", "message": "Two-measurement instruction starting on last input channel!"},
74
+ {"instr": "CDM_TCDIFF", "pos": 4, "min": 1, "max": 2147483647, "message": "MeasPEx: {value}, must be greater than 0."},
75
+ {"instr": "CDM_BRHALF", "pos": 4, "min": 1, "max": 65536, "message": "Reps: {value}, out of range (1 - 65536)"},
76
+ {"instr": "CDM_RESISTANCE", "pos": 4, "min": 1, "max": 65536, "message": "Reps: {value}, out of range (1 - 65536)"},
77
+ {"instr": "CDM_THERM107", "pos": 4, "min": 1, "max": 65536, "message": "Reps: {value}, out of range (1 - 65536)"},
78
+ {"instr": "CDM_THERM107", "pos": 4, "min": 1, "max": 2147483647, "message": "MeasPEx: {value}, must be greater than 0."},
79
+ {"instr": "CDM_PANELTEMP", "pos": 5, "min": 1, "max": 1, "message": "PanelTemp channel out of range!"},
80
+ {"instr": "CDM_PERIODAVG", "pos": 6, "min": 1, "max": 16, "message": "Input channel: {value}, out of range (1 - 16)."},
81
+ {"instr": "CDM_PERIODAVG", "pos": 4, "min": 1, "max": 65536, "message": "Reps: {value}, out of range (1 - 65536)."},
82
+ {"instr": "CDM_PERIODAVG", "pos": 5, "min": 0, "max": 3, "message": "Unrecognized gain code!"},
83
+ {"instr": "CDM_PERIODAVG", "pos": 9, "min": 1, "max": 16777215, "message": "Cycles: {value}, out of range (1 - 16777215)."},
84
+ {"instr": "CDM_PERIODAVG", "pos": 10, "min": 1, "max": 1000, "message": "Timeout: {value}, out of range (1 - 1000)."},
85
+ {"instr": "CDM_PERIODAVG", "pos": 2, "min": 1, "max": 120, "message": "CPI Address must be 1..120."},
86
+ {"instr": "SDMSW8A", "pos": 5, "string_zero": true, "min": 1, "max": 8, "message": "Invalid Start Channel: {value}, must be 1-8."},
87
+ {"instr": "TDR200", "pos": 7, "min": 100, "max": 10112, "message": "Points {value} is illegal: range is 100..10112."},
88
+ {"instr": "TDR100", "pos": 7, "min": 20, "max": 2048, "message": "Points {value} is illegal: range is 20..2048."},
89
+ {"instr": "DNP", "pos": 1, "invalid_raw": {"strings": true, "nan": true, "outside_long": true, "values": [-2147483648]}, "message": "ComPort {value} illegal."},
90
+ {"inf_max": true, "instr": "VOLTSE", "pos": 6, "allow": [0], "min": 20, "max": 2147483647, "message": "Settling time {value} too short, min time is 20."},
91
+ {"inf_max": true, "instr": "VOLTSE", "pos": 6, "min": -2147483648, "max": 6000000, "message": "Settling time {value} too long, max time is 6000000."},
92
+ {"inf_max": true, "instr": "VOLTDIFF", "pos": 6, "allow": [0], "min": 20, "max": 2147483647, "message": "Settling time {value} too short, min time is 20."},
93
+ {"inf_max": true, "instr": "VOLTDIFF", "pos": 6, "min": -2147483648, "max": 6000000, "message": "Settling time {value} too long, max time is 6000000."},
94
+ {"inf_max": true, "instr": "TCSE", "pos": 8, "allow": [0], "min": 20, "max": 2147483647, "message": "Settling time {value} too short, min time is 20."},
95
+ {"inf_max": true, "instr": "TCSE", "pos": 8, "min": -2147483648, "max": 6000000, "message": "Settling time {value} too long, max time is 6000000."},
96
+ {"inf_max": true, "instr": "TCDIFF", "pos": 8, "allow": [0], "min": 20, "max": 2147483647, "message": "Settling time {value} too short, min time is 20."},
97
+ {"inf_max": true, "instr": "TCDIFF", "pos": 8, "min": -2147483648, "max": 6000000, "message": "Settling time {value} too long, max time is 6000000."},
98
+ {"instr": "BRHALF", "pos": 7, "lower_gate": -19, "min": 20, "max": 2147483647, "message": "Minimum Excitation is 20mV."},
99
+ {"instr": "BRFULL", "pos": 7, "lower_gate": -19, "min": 20, "max": 2147483647, "message": "Minimum Excitation is 20mV."},
100
+ {"instr": "BRHALF3W", "pos": 7, "lower_gate": -19, "min": 20, "max": 2147483647, "message": "Minimum Excitation is 20mV."},
101
+ {"instr": "BRHALF4W", "pos": 8, "lower_gate": -19, "min": 20, "max": 2147483647, "message": "Minimum Excitation is 20mV."},
102
+ {"instr": "BRFULL6W", "pos": 8, "lower_gate": -19, "min": 20, "max": 2147483647, "message": "Minimum Excitation is 20mV."},
103
+ {"instr": "BRHALF", "pos": 6, "min": 1, "max": 2147483647, "message": "Invalid measurements per excitation {value}"},
104
+ {"instr": "BRHALF3W", "pos": 6, "min": 1, "max": 2147483647, "message": "Invalid measurements per excitation {value}"},
105
+ {"instr": "BRFULL", "pos": 6, "min": 1, "max": 2147483647, "message": "Invalid measurements per excitation {value}"},
106
+ {"instr": "BRHALF4W", "pos": 7, "min": 1, "max": 2147483647, "message": "Invalid measurements per excitation {value}"},
107
+ {"instr": "BRFULL6W", "pos": 7, "min": 1, "max": 2147483647, "message": "Invalid measurements per excitation {value}"},
108
+ {"inf_max": true, "instr": "BRHALF", "pos": 9, "allow": [0], "min": 20, "max": 2147483647, "message": "Settling time {value} too short, min time is 20."},
109
+ {"inf_max": true, "instr": "BRHALF", "pos": 9, "min": -2147483648, "max": 6000000, "message": "Settling time {value} too long, max time is 6000000."},
110
+ {"inf_max": true, "instr": "BRFULL", "pos": 10, "allow": [0], "min": 20, "max": 2147483647, "message": "Settling time {value} too short, min time is 20."},
111
+ {"inf_max": true, "instr": "BRFULL", "pos": 10, "min": -2147483648, "max": 6000000, "message": "Settling time {value} too long, max time is 6000000."},
112
+ {"inf_max": true, "instr": "BRHALF3W", "pos": 9, "allow": [0], "min": 20, "max": 2147483647, "message": "Settling time {value} too short, min time is 20."},
113
+ {"inf_max": true, "instr": "BRHALF3W", "pos": 9, "min": -2147483648, "max": 6000000, "message": "Settling time {value} too long, max time is 6000000."},
114
+ {"inf_max": true, "instr": "BRHALF4W", "pos": 11, "allow": [0], "min": 20, "max": 2147483647, "message": "Settling time {value} too short, min time is 20."},
115
+ {"inf_max": true, "instr": "BRHALF4W", "pos": 11, "min": -2147483648, "max": 6000000, "message": "Settling time {value} too long, max time is 6000000."},
116
+ {"inf_max": true, "instr": "BRFULL6W", "pos": 11, "allow": [0], "min": 20, "max": 2147483647, "message": "Settling time {value} too short, min time is 20."},
117
+ {"inf_max": true, "instr": "BRFULL6W", "pos": 11, "min": -2147483648, "max": 6000000, "message": "Settling time {value} too long, max time is 6000000."},
118
+ {"inf_max": true, "instr": "CURRENTSE", "pos": 6, "allow": [0], "min": 20, "max": 2147483647, "message": "Settling time {value} too short, min time is 20."},
119
+ {"inf_max": true, "instr": "CURRENTSE", "pos": 6, "min": -2147483648, "max": 6000000, "message": "Settling time {value} too long, max time is 6000000."}
120
+ ]
121
+ }
@@ -0,0 +1,111 @@
1
+ {
2
+ "always_sequential": [
3
+ "SDMAO4",
4
+ "SDMAO4A",
5
+ "SDMCAN",
6
+ "SDMCD16AC",
7
+ "SDMCVO4",
8
+ "SDMIO16",
9
+ "TDR100",
10
+ "TDR200",
11
+ "WRITEIO"
12
+ ],
13
+ "task_instructions": [
14
+ "AM25T",
15
+ "BATTERY",
16
+ "BRFULL",
17
+ "BRFULL6W",
18
+ "BRHALF",
19
+ "BRHALF3W",
20
+ "BRHALF4W",
21
+ "CALIBRATE",
22
+ "CDM_BATTERY",
23
+ "CDM_BRFULL",
24
+ "CDM_BRFULL6W",
25
+ "CDM_BRHALF",
26
+ "CDM_BRHALF3W",
27
+ "CDM_BRHALF4W",
28
+ "CDM_CURRENTDIFF",
29
+ "CDM_EXCITEV",
30
+ "CDM_MUXSELECT",
31
+ "CDM_PANELTEMP",
32
+ "CDM_PERIODAVG",
33
+ "CDM_PULSEPORT",
34
+ "CDM_SW12",
35
+ "CDM_SW5",
36
+ "CDM_SWPOWER",
37
+ "CDM_TCDIFF",
38
+ "CDM_TCSE",
39
+ "CDM_THERM107",
40
+ "CDM_THERM108",
41
+ "CDM_THERM109",
42
+ "CDM_VOLTDIFF",
43
+ "CDM_VOLTSE",
44
+ "CS616",
45
+ "CS7500",
46
+ "CSAT3",
47
+ "DELAY",
48
+ "EC100",
49
+ "EXCITEV",
50
+ "LI7200",
51
+ "LI7700",
52
+ "MUXSELECT",
53
+ "PANELTEMP",
54
+ "PERIODAVG",
55
+ "PORTGET",
56
+ "PORTSET",
57
+ "PULSECOUNT",
58
+ "PULSEPORT",
59
+ "SDMINT8",
60
+ "SDMSW8A",
61
+ "SDMTRIGGER",
62
+ "SDMX50",
63
+ "SERIALINRECORD",
64
+ "SERIALOUTBLOCK",
65
+ "SETDAC",
66
+ "SW12",
67
+ "TCDIFF",
68
+ "TCSE",
69
+ "TGA",
70
+ "THERM107",
71
+ "THERM108",
72
+ "THERM109",
73
+ "VOLTDIFF",
74
+ "VOLTSE"
75
+ ],
76
+ "nonconstant_arg": {
77
+ "CDM_EXCITEI": [
78
+ 3
79
+ ],
80
+ "CDM_EXCITEV": [
81
+ 3
82
+ ],
83
+ "CDM_MUXSELECT": [
84
+ 5
85
+ ],
86
+ "CDM_SW12": [
87
+ 3
88
+ ],
89
+ "CDM_SW5": [
90
+ 3
91
+ ],
92
+ "CDM_SWPOWER": [
93
+ 2
94
+ ],
95
+ "EXCITEV": [
96
+ 1
97
+ ],
98
+ "MUXSELECT": [
99
+ 3
100
+ ],
101
+ "PORTSET": [
102
+ 1
103
+ ]
104
+ },
105
+ "variable_arg": {
106
+ "CDM_SW12": 4,
107
+ "CDM_SW5": 4,
108
+ "CDM_SWPOWER": 3,
109
+ "SW12": 2
110
+ }
111
+ }
@@ -0,0 +1,88 @@
1
+ {
2
+ "tasks": {
3
+ "PANELTEMP": {},
4
+ "BATTERY": {},
5
+ "VOLTSE": {},
6
+ "VOLTDIFF": {},
7
+ "PORTGET": {},
8
+ "PORTSET": {},
9
+ "THERM107": {},
10
+ "BRHALF": {},
11
+ "BRFULL": {},
12
+ "TCSE": {},
13
+ "TCDIFF": {},
14
+ "PERIODAVG": {},
15
+ "CS616": {},
16
+ "EXCITEV": {},
17
+ "BRHALF3W": {},
18
+ "BRHALF4W": {},
19
+ "BRFULL6W": {},
20
+ "THERM108": {},
21
+ "THERM109": {},
22
+ "AM25T": {},
23
+ "SERIALINRECORD": {"hides_unreached": true, "main_sequence_only": true, "messages": {
24
+ "outside": "SDM instruction must be in Scan..NextScan, unless SequentialMode is used.",
25
+ "conditional": "SerialInRecord illegally used inside conditional statement."}},
26
+ "CS7500": {"hides_unreached": true, "main_sequence_only": true, "messages": {
27
+ "outside": "SDM instruction must be in Scan..NextScan, unless SequentialMode is used.",
28
+ "conditional": "CS7500 illegally used inside conditional statement."}},
29
+ "CSAT3": {"hides_unreached": true, "main_sequence_only": true, "messages": {
30
+ "outside": "SDM instruction must be in Scan..NextScan, unless SequentialMode is used.",
31
+ "conditional": "CSAT3 illegally used inside conditional statement."}},
32
+ "LI7200": {"hides_unreached": true, "main_sequence_only": true, "messages": {
33
+ "outside": "SDM instruction must be in Scan..NextScan, unless SequentialMode is used.",
34
+ "conditional": "LI7200 illegally used inside conditional statement."}},
35
+ "LI7700": {"hides_unreached": true, "main_sequence_only": true, "messages": {
36
+ "outside": "SDM instruction must be in Scan..NextScan, unless SequentialMode is used.",
37
+ "conditional": "LI7700 illegally used inside conditional statement."}},
38
+ "SDMINT8": {"hides_unreached": true, "main_sequence_only": true, "messages": {
39
+ "outside": "SDM instruction must be in Scan..NextScan, unless SequentialMode is used.",
40
+ "conditional": "SDMINT8 illegally used inside conditional statement."}},
41
+ "SDMSW8A": {"hides_unreached": true, "main_sequence_only": true, "messages": {
42
+ "outside": "SDM instruction must be in Scan..NextScan, unless SequentialMode is used.",
43
+ "conditional": "SDMSW8A illegally used inside conditional statement."}},
44
+ "SDMX50": {"hides_unreached": true, "main_sequence_only": true, "messages": {
45
+ "outside": "SDM instruction must be in Scan..NextScan, unless SequentialMode is used.",
46
+ "conditional": "SDMX50 illegally used inside conditional statement."}},
47
+ "CALIBRATE": {"hides_unreached": true},
48
+ "PULSEPORT": {"hides_unreached": true},
49
+ "PULSECOUNT": {"conditional_only": true},
50
+ "DELAY": {"constant_values": {"1": [0]}},
51
+ "SW12": {"exempt_values": {"3": [1]}},
52
+ "SETDAC": {},
53
+ "EC100": {"hides_unreached": true, "main_sequence_only": true, "messages": {
54
+ "outside": "SDM instruction must be in Scan..NextScan, unless SequentialMode is used.",
55
+ "conditional": "EC100 illegally used inside conditional statement."}},
56
+ "CDM_ACPOWER": {"hides_unreached": true},
57
+ "CDM_BATTERY": {"hides_unreached": true},
58
+ "CDM_BRFULL": {"hides_unreached": true},
59
+ "CDM_BRFULL6W": {"hides_unreached": true},
60
+ "CDM_BRHALF": {"hides_unreached": true},
61
+ "CDM_BRHALF3W": {"hides_unreached": true},
62
+ "CDM_BRHALF4W": {"hides_unreached": true},
63
+ "CDM_CURRENTDIFF": {"hides_unreached": true},
64
+ "CDM_PANELTEMP": {"hides_unreached": true},
65
+ "CDM_PERIODAVG": {"hides_unreached": true},
66
+ "CDM_PULSEPORT": {"hides_unreached": true},
67
+ "CDM_RESISTANCE": {"hides_unreached": true},
68
+ "CDM_RESISTANCE3W": {"hides_unreached": true},
69
+ "CDM_TCCOMP": {"hides_unreached": true},
70
+ "CDM_TCDIFF": {"hides_unreached": true},
71
+ "CDM_TCSE": {"hides_unreached": true},
72
+ "CDM_THERM107": {"hides_unreached": true},
73
+ "CDM_THERM108": {"hides_unreached": true},
74
+ "CDM_THERM109": {"hides_unreached": true},
75
+ "CDM_VOLTDIFF": {"hides_unreached": true},
76
+ "CDM_VOLTSE": {"hides_unreached": true},
77
+ "CDM_EXCITEV": {"hides_unreached": true, "setup": true},
78
+ "CDM_EXCITEI": {"hides_unreached": true, "setup": true},
79
+ "CDM_MUXSELECT": {"hides_unreached": true, "setup": true},
80
+ "CDM_SW12": {"hides_unreached": true, "exempt_values": {"5": [1]}},
81
+ "CDM_SW5": {"hides_unreached": true, "exempt_values": {"5": [1]}},
82
+ "CDM_SWPOWER": {"hides_unreached": true, "exempt_values": {"4": [1]}},
83
+ "CDM_DELAY": {"hides_unreached": true, "constant_values": {"3": [0]}}
84
+ },
85
+ "argument_error_first": ["PORTSET"],
86
+ "slow_scan_no_task": {"DELAY": {"2": [0]}, "PORTSET": {"3": [1]}},
87
+ "slow_scan_tasks": ["PANELTEMP", "BATTERY", "VOLTSE", "VOLTDIFF", "PORTSET", "THERM107", "THERM108", "THERM109", "BRHALF", "BRHALF3W", "BRHALF4W", "BRFULL", "BRFULL6W", "TCSE", "TCDIFF", "PERIODAVG", "CS616", "DELAY", "PULSEPORT", "MUXSELECT", "CALIBRATE"]
88
+ }
@@ -0,0 +1,321 @@
1
+ {
2
+ "_comment": "Names accepted by SetSetting (`settings`) and, in addition, by SetStatus (`status`; SetStatus accepts `settings` too). Candidate names came from the compiler's own field tables (pointer arrays in the exe, see docs/instructions.md 'SetSetting and SetStatus field names') and every candidate was confirmed with the oracle (2026-10-02). Matching is case-insensitive.",
3
+ "index_size": {"BAUDRATE": 14, "SECURITY": 3},
4
+ "trim_trailing_blanks": true,
5
+ "empty_name": "NULL",
6
+ "settings": [
7
+ "StationName",
8
+ "Security",
9
+ "PakBusAddress",
10
+ "PakBusEncryptionKey",
11
+ "PakBusTCPPassword",
12
+ "CPUDriveFree",
13
+ "CardBytesFree",
14
+ "USRDriveSize",
15
+ "ConfigComC1",
16
+ "ConfigComC3",
17
+ "SDCInfo",
18
+ "UTCOffset",
19
+ "SFTPPrivateKey",
20
+ "SFTPPublicKey",
21
+ "PakBusWebURL",
22
+ "PakBusWebHost",
23
+ "PakBusWebHandle",
24
+ "CloudConfigURL",
25
+ "NTPServer",
26
+ "DNS",
27
+ "IsRouter",
28
+ "CommsMemAlloc",
29
+ "RouteFilters",
30
+ "CentralRouters",
31
+ "USRDriveFree",
32
+ "FilesManager",
33
+ "IncludeFile",
34
+ "MaxPacketSize",
35
+ "RS232Power",
36
+ "RS232Handshaking",
37
+ "RS232Timeout",
38
+ "UDPBroadcastFilter",
39
+ "HTTPHeader",
40
+ "IPTraceComport",
41
+ "IPTraceCode",
42
+ "DeleteCardFilesOnMismatch",
43
+ "PCAP",
44
+ "USBEnumerate",
45
+ "DisableLithium",
46
+ "IPAddressUSB",
47
+ "USBVCPOnly",
48
+ "SkipPakBusRing",
49
+ "USBDisable",
50
+ "USBNotTrusted",
51
+ "EthernetEnable",
52
+ "EthernetInfo",
53
+ "EthernetPower",
54
+ "IPAddressEth",
55
+ "IPMaskEth",
56
+ "IPGateway",
57
+ "CSIO1netEnable",
58
+ "CSIO2netEnable",
59
+ "CSIOInfo",
60
+ "IPAddressCSIO",
61
+ "IPMaskCSIO",
62
+ "IPGatewayCSIO",
63
+ "pppInterface",
64
+ "PPPInfo",
65
+ "pppIPAddr",
66
+ "pppIPMask",
67
+ "pppUsername",
68
+ "pppPassword",
69
+ "pppDial",
70
+ "pppDialResponse",
71
+ "KeepAliveURL",
72
+ "KeepAliveMin",
73
+ "HTTPEnabled",
74
+ "PakbusWebEnabled",
75
+ "FTPEnabled",
76
+ "TelnetEnabled",
77
+ "PingEnabled",
78
+ "PakBusPort",
79
+ "FTPPort",
80
+ "HTTPPort",
81
+ "FTPUserName",
82
+ "FTPPassword",
83
+ "PakBusTCPClients",
84
+ "TrustedHosts",
85
+ "TCPMSS",
86
+ "TLSConnections",
87
+ "HTTPSEnabled",
88
+ "HTTPSPort",
89
+ "TLSstatus",
90
+ "TLSPrivateKey",
91
+ "TLSCertificate",
92
+ "TLSRootCA",
93
+ "TLSPassword",
94
+ "Baudrate",
95
+ "Beacon",
96
+ "Verify",
97
+ "Neighbors",
98
+ "CellAPN",
99
+ "CellStateInt",
100
+ "CellState",
101
+ "CellRSSI",
102
+ "CellRSRP",
103
+ "CellECIO",
104
+ "CellRSRQ",
105
+ "CellInfo",
106
+ "CellStatus",
107
+ "CellUsageToday",
108
+ "CellUsageYesterday",
109
+ "CellUsageMonth",
110
+ "CellUsageLastMonth",
111
+ "CellBillingDay",
112
+ "CellDiversity",
113
+ "CellIPProtocol",
114
+ "CellRoaming",
115
+ "CellOSUpdate",
116
+ "CellModOTAUpdate",
117
+ "CellNetCellID",
118
+ "CellNetBand",
119
+ "CellPwrStartTime",
120
+ "CellPwrDuration",
121
+ "CellPwrRepeat",
122
+ "MQTTStatusInterval",
123
+ "MQTTStateInterval",
124
+ "MQTTBaseTopic",
125
+ "UID",
126
+ "MQTTEndpoint",
127
+ "MQTTPortNumber",
128
+ "MQTTClientID",
129
+ "MQTTUserName",
130
+ "MQTTPassword",
131
+ "MQTTWillTopic",
132
+ "MQTTWillMessage",
133
+ "MQTTWillQoS",
134
+ "MQTTWillRetain",
135
+ "MQTTCleanSession",
136
+ "MQTTAutoPublish",
137
+ "MQTTKeepAlive",
138
+ "MQTTEnable",
139
+ "CampbellCloudEnable",
140
+ "MQTTState",
141
+ "MQTTBackfillMode",
142
+ "WiFiConfig",
143
+ "WiFiStatus",
144
+ "IPAddressWiFi",
145
+ "IPMaskWiFi",
146
+ "IPGatewayWiFi",
147
+ "WLANDomainName",
148
+ "WiFiSSID",
149
+ "WiFiPassword",
150
+ "WiFiRegion",
151
+ "WiFiTxPowerLevel",
152
+ "WiFiPowerMode",
153
+ "WiFiEapMethod",
154
+ "WiFiEapUser",
155
+ "WiFiEapPassword",
156
+ "WiFiChannel",
157
+ "WiFiNetworks",
158
+ "WiFiFwdCode",
159
+ "RadioCarrier",
160
+ "RadioVersion",
161
+ "RadioSerialNum",
162
+ "RadioModOS",
163
+ "RadioEnable",
164
+ "RadioOpMode",
165
+ "RadioFreqKey",
166
+ "RadioHopVersion",
167
+ "RadioHopSize",
168
+ "RadioMaxPacket",
169
+ "RadioMinPacket",
170
+ "RadioDataRate",
171
+ "RadioTxPwr",
172
+ "RadioRetryTimeout",
173
+ "RadioLowPwr",
174
+ "RadioRepeaters",
175
+ "RadioPacketRepeat",
176
+ "RadioEndPointRetry",
177
+ "RadioFreqRepeat",
178
+ "RadioMGSync",
179
+ "RadioEndPointRepeat",
180
+ "RadioRxSubID",
181
+ "RadioTxSubID",
182
+ "RadioDiag",
183
+ "RadioRetryOdds",
184
+ "RadioTxRate",
185
+ "RadioNetID",
186
+ "RadioFreqZone",
187
+ "RadioModel",
188
+ "RadioStats",
189
+ "RadioOS",
190
+ "RadioMAC",
191
+ "RadioFirmwareVer",
192
+ "RadioModuleVer",
193
+ "RadioRSSI",
194
+ "RadioRSSIAddr",
195
+ "RadioAvailFreq",
196
+ "RadioChanMask",
197
+ "RadioHopSeq",
198
+ "RadioTxLevel",
199
+ "RadioPwrMode",
200
+ "RadioRetries",
201
+ "RadioProtocol",
202
+ "GOESEnabled",
203
+ "GOESComport",
204
+ "GOESMsgWindow",
205
+ "GOESRepeatCount",
206
+ "GOESGainSetting",
207
+ "GOESPlatformID",
208
+ "GOESRTBaudRate",
209
+ "GOESRTChannel",
210
+ "GOESSTBaudRate",
211
+ "GOESSTChannel",
212
+ "GOESRTInterval",
213
+ "GOESSTInterval",
214
+ "GOESSTOffset",
215
+ "GOESid",
216
+ "GOESdateTime",
217
+ "GOESversion",
218
+ "GOESAntennaGain",
219
+ "GOESCurrentbattery",
220
+ "GOESCurrenttemperature",
221
+ "GOESbatteryBeforeTx",
222
+ "GOEStemperatureBeforeTx",
223
+ "GOESbatteryDuringTx",
224
+ "GOESLatitude",
225
+ "GOESLongitude",
226
+ "GOESAltitude",
227
+ "GOESTimeLastGPSPosition",
228
+ "GOESNumberOfMissedGPS",
229
+ "GOESTimeLastMissedGPSFix",
230
+ "GOESGPSAcquisitionStatus",
231
+ "GOESGPSAntennaStatus",
232
+ "GOESFailSafeIndicator",
233
+ "GOESDurationOfTransmit",
234
+ "GOESForwardTxPower",
235
+ "GOESReflectedRfPower",
236
+ "GOESVSWR",
237
+ "GOESLastTxControlFlags",
238
+ "GOESLastTxStartTime",
239
+ "GOESLastTxChannel",
240
+ "GOESLastTypeCode",
241
+ "GOESLastDatalength",
242
+ "GOESLastHDRFlagWord",
243
+ "GOESTxResultCode",
244
+ "GOESCurrentTxState",
245
+ "CH400EnableChargeA",
246
+ "CH400EnableChargeB",
247
+ "CH400EnableBatteryA",
248
+ "CH400EnableBatteryB",
249
+ "CH400BatteryAFamily",
250
+ "CH400BatteryACapacity",
251
+ "CH400BatteryBFamily",
252
+ "CH400BatteryBCapacity",
253
+ "CH400EnableChargeAMPPT",
254
+ "CH400EnableChargeBMPPT",
255
+ "CH400BatteryAParallel",
256
+ "CH400BatteryBParallel",
257
+ "CH400InputCurrentLimit",
258
+ "CH400BatteryADoDReset",
259
+ "CH400BatteryBDoDReset",
260
+ "CH400OSVersion",
261
+ "CH400OSDate",
262
+ "CH400BoardRev",
263
+ "CH400SerialNumber",
264
+ "ConfigComC5",
265
+ "ConfigComC7"
266
+ ],
267
+ "status": [
268
+ "OSVersion",
269
+ "OSDate",
270
+ "OSSignature",
271
+ "SerialNumber",
272
+ "RevBoard",
273
+ "RecipeStatus",
274
+ "ProgName",
275
+ "StartTime",
276
+ "RunSignature",
277
+ "ProgSignature",
278
+ "WatchdogErrors",
279
+ "PanelTemp",
280
+ "Battery",
281
+ "LithiumBattery",
282
+ "Low12VCount",
283
+ "CompileResults",
284
+ "StartUpCode",
285
+ "ProgErrors",
286
+ "VarOutOfBound",
287
+ "SkippedScan",
288
+ "SkippedSystemScan",
289
+ "SkippedSlowScan",
290
+ "ErrorCalib",
291
+ "MemorySize",
292
+ "MemoryFree",
293
+ "CommsMemFree",
294
+ "FullMemReset",
295
+ "CardStatus",
296
+ "MeasureOps",
297
+ "MeasureTime",
298
+ "ProcessTime",
299
+ "MaxProcTime",
300
+ "BuffDepth",
301
+ "MaxBuffDepth",
302
+ "LastSystemScan",
303
+ "LastSlowScan",
304
+ "SystemProcTime",
305
+ "SlowProcTime",
306
+ "MaxSystemProcTime",
307
+ "MaxSlowProcTime",
308
+ "PortStatus",
309
+ "PortConfig",
310
+ "SW12Volts",
311
+ "PakBusRoutes",
312
+ "Messages",
313
+ "CalVolts",
314
+ "CalRefSlope",
315
+ "CalRefOffset",
316
+ "CalGain",
317
+ "CalOffset",
318
+ "CalCurrent",
319
+ "SW12CSIO"
320
+ ]
321
+ }