mirror of
https://github.com/jgyates/genmon.git
synced 2026-08-12 15:32:00 -04:00
1520 lines
49 KiB
JSON
1520 lines
49 KiB
JSON
{
|
|
"controller_name": "Evolution Liquid Cooled (Custom Controller)",
|
|
"rated_max_output_power_kw": "48",
|
|
"rated_nominal_voltage": 240,
|
|
"rated_nominal_rpm" : 1800,
|
|
"rated_nominal_freq" : 60,
|
|
"nominal_battery_voltage" : 12,
|
|
"generator_phase": 1,
|
|
"holding_registers": {
|
|
"0001": {"length": 2, "text": "Status"},
|
|
"0002": {"length": 2, "text": "Alarm"},
|
|
"0007": {"length": 2, "text": "RPM"},
|
|
"0008": {"length": 2, "text": "Frequency"},
|
|
"0009": {"length": 2, "text": "Utility Voltage"},
|
|
"000a": {"length": 2, "text": "Battery Voltage"},
|
|
"000b": {"length": 4, "text": "Run Hours"},
|
|
"000e": {"length": 2, "text": "Generator Time"},
|
|
"000f": {"length": 2, "text": "Generator Date"},
|
|
"0010": {"length": 2, "text": "Generator Day / Year"},
|
|
"0011": {"length": 2, "text": "Threshold Voltage"},
|
|
"0012": {"length": 2, "text": "Output Voltage"},
|
|
"001a": {"length": 2, "text": "Hours Until Service A Due"},
|
|
"001b": {"length": 2, "text": "Service A Due Date"},
|
|
"001e": {"length": 2, "text": "Hours Until Service B Due"},
|
|
"001f": {"length": 2, "text": "Service B Due Date"},
|
|
"0022": {"length": 2, "text": "Inspect Battery Date"},
|
|
"002a": {"length": 2, "text": "Firmware / Hardware Version"},
|
|
"002c": {"length": 2, "text": "Exercise Time"},
|
|
"002d": {"length": 2, "text": "Exercise Interval"},
|
|
"002e": {"length": 2, "text": "Exercise Date"},
|
|
"002f": {"length": 2, "text": "Low Speed Exercise Enable"},
|
|
"0052": {"length": 2, "text": "Digital Inputs"},
|
|
"0053": {"length": 2, "text": "Digital Outputs"},
|
|
"005d": {"length": 2, "text": "Tank Fuel Level"},
|
|
"0054": {"length": 2, "text": "Hours of Protection"},
|
|
"0058": {"length": 2, "text": "Hall Effect Sensor"},
|
|
"005e": {"length": 4, "text": "Total Run Hours"},
|
|
"0208": {"length": 2, "text": "Generator Calibrate Volts"},
|
|
"0209": {"length": 2, "text": "Utility Calibrate Volts"},
|
|
"020a": {"length": 2, "text": "Param Code"},
|
|
"020b": {"length": 2, "text": "Voltage Code"},
|
|
"020c": {"length": 2, "text": "Fuel Type"},
|
|
"020e": {"length": 2, "text": "Volts per Hertz"},
|
|
"0235": {"length": 2, "text": "Gain"},
|
|
"0236": {"length": 2, "text": "Two Wire Start"},
|
|
"0237": {"length": 2, "text": "Set Target Voltage"},
|
|
"0238": {"length": 2, "text": "Warm Up Time"},
|
|
"0239": {"length": 2, "text": "Start Up Delay"},
|
|
"023a": {"length": 2, "text": "Activation Status"},
|
|
"023b": {"length": 2, "text": "Pickup Voltage"},
|
|
"023d": {"length": 2, "text": "EEProm Version"},
|
|
"023e": {"length": 2, "text": "Exercise Duration"},
|
|
"023f": {"length": 2, "text": "Preheat Time"},
|
|
"0255": {"length": 2, "text": "Transfer to Utility Delay"},
|
|
"0256": {"length": 2, "text": "Cooldown Time"},
|
|
"0257": {"length": 2, "text": "AC To Charger Status"},
|
|
"005a": {"length": 2, "text": "Target Frequency"},
|
|
"0059": {"length": 2, "text": "Target Voltage"},
|
|
"01f4": {"length": 10, "text": "Serial Number"}
|
|
},
|
|
"log_registers": {
|
|
"03e8": {
|
|
"comment": "The registers in this instance is 03e8. By default, this is read from holding registers.",
|
|
"comment2:": " To read from input registers add the field 'reg_type': 'input'",
|
|
"reg_type": "holding",
|
|
"length": 10,
|
|
"text": "Alarm Log",
|
|
"iteration": 50,
|
|
"step": 5
|
|
},
|
|
"04e2": {"reg_type": "holding", "length": 8, "text": "Service Log", "iteration": 50, "step": 4},
|
|
"012c": {"reg_type": "holding", "length": 8, "text": "Run Log", "iteration": 50, "step": 4}
|
|
},
|
|
"switch_state": [
|
|
{
|
|
"reg": "0002",
|
|
"type": "object_int_index",
|
|
"mask": "ffff",
|
|
"object": {
|
|
"0": "Auto",
|
|
"6": "Manual",
|
|
"7": "Off"
|
|
},
|
|
"default": "Alarm Active",
|
|
"title": "Switch State"
|
|
}
|
|
],
|
|
"alarm_active" : [
|
|
{
|
|
"reg": "0002",
|
|
"mask": "ffff",
|
|
"value": "1",
|
|
"type": "regex",
|
|
"comment": "all numbers except 0,6 and 7,",
|
|
"regex": "^(?!^0$|^6$|^7$)(^\\d+$)$",
|
|
"title": "Alarm Active",
|
|
"text": "System In Alarm"
|
|
}
|
|
],
|
|
"alarm_conditions": [
|
|
{
|
|
"comment": "alarm_conditions are not used unless alarm_active (if present) reports anything",
|
|
"reg": "0002",
|
|
"type": "object_int_index",
|
|
"mask": "ffff",
|
|
"object": {
|
|
"0": "Auto",
|
|
"6": "Manual",
|
|
"7": "Off",
|
|
"1": "Low Battery",
|
|
"2": "High Coolant Temperature",
|
|
"3": "Controller Fault",
|
|
"5": "Low Fuel Pressure",
|
|
"8": "Low Coolant",
|
|
"10": "Low Oil Pressure",
|
|
"11": "Overcrank",
|
|
"12": "Overspeed",
|
|
"13": "RPM Sense Loss",
|
|
"15": "Change Oil & Filter",
|
|
"16": "Inspect Air Filter",
|
|
"18": "Very Low Battery",
|
|
"20": "Check Battery",
|
|
"21": "Underspeed",
|
|
"24": "Wiring Error",
|
|
"23": "Stopping...",
|
|
"25": "Check Engine",
|
|
"26": "Missing Cam Pulse",
|
|
"27": "Missing Crank Pulse",
|
|
"28": "Throttle Failure",
|
|
"29": "Over Voltage",
|
|
"30": "Under Voltage",
|
|
"31": "Service A Due",
|
|
"32": "Service B Due",
|
|
"34": "CANbus Error",
|
|
"35": "Ignition Fault",
|
|
"36": "Overload Remove Load",
|
|
"37": "Undervoltage Overload",
|
|
"38": "Overload",
|
|
"39": "Firmware Error-25",
|
|
"40": "Fuse Problem",
|
|
"41": "Battery Problem",
|
|
"42": "Charger Warning",
|
|
"43": "Charger Missing AC",
|
|
"48": "Ruptured Tank",
|
|
"49": "Very Low Fuel Level",
|
|
"50": "Low Fuel Level",
|
|
"51": "SEEProm Abuse",
|
|
"52": "Emergency Stop",
|
|
"54": "Bad Hall Calibration",
|
|
"55": "Service C Due",
|
|
"56": "Very Low Battery",
|
|
"120": "WIFI 485 Comms Loss",
|
|
"121": "WIFI to Router Comms Loss",
|
|
"122": "WIFI Router to Server Comms Loss"
|
|
},
|
|
"default": "Unknown Alarm Active",
|
|
"title": "Alarm Conditions"
|
|
}
|
|
],
|
|
"generator_status" : [
|
|
{
|
|
"comment":"Returning Unknown will make this not show up in the user interface",
|
|
"reg": "0002",
|
|
"type": "default",
|
|
"title": "Generator Status",
|
|
"text": "Unknown"
|
|
}
|
|
],
|
|
"engine_state": [
|
|
{
|
|
"reg": "0001",
|
|
"type": "object_int_index",
|
|
"mask": "ffff",
|
|
"object": {
|
|
"0": "Off - Ready",
|
|
"1": "Startup Delay Timer Activated",
|
|
"2": "Cranking",
|
|
"3": "Running",
|
|
"4": "Exercising",
|
|
"5": "Cooling Down",
|
|
"6": "Running in Warning",
|
|
"7": "Running in Alarm",
|
|
"8": "Stopped In Alarm",
|
|
"9": "Stopped - Start Inhibit Active",
|
|
"10": "Stopped with Warning",
|
|
"11": "Cranking Paused",
|
|
"12": "Running - Warm Up",
|
|
"13": "Cranking Warning",
|
|
"14": "Cranking Alarm",
|
|
"15": "Switched Off",
|
|
"22": "Firmware Update in Progress"
|
|
},
|
|
"default": "Unknown State",
|
|
"title": "Engine Status"
|
|
}
|
|
],
|
|
"status" : [
|
|
{"title": "Engine",
|
|
"comment": "The 'container' modifier will allow the values to be displayed with some hierarchy",
|
|
"container": true,
|
|
"value" : [
|
|
{
|
|
"reg": "0012",
|
|
"mask": "ffff",
|
|
"multiplier": 1,
|
|
"type": "int",
|
|
"title": "Output Voltage",
|
|
"units": "V"
|
|
},
|
|
{
|
|
"reg": "0008",
|
|
"mask": "ffff",
|
|
"multiplier": 1,
|
|
"type": "int",
|
|
"title": "Frequency",
|
|
"units": "Hz"
|
|
},
|
|
{
|
|
"reg": "000a",
|
|
"mask": "ffff",
|
|
"multiplier": 0.1,
|
|
"type": "float",
|
|
"title": "Battery Voltage",
|
|
"units": "V"
|
|
},
|
|
{
|
|
"reg": "0007",
|
|
"mask": "ffff",
|
|
"multiplier": 1,
|
|
"type": "int",
|
|
"title": "RPM",
|
|
"units": null
|
|
},
|
|
{
|
|
"reg": "0052",
|
|
"type": "list",
|
|
"separator": ",",
|
|
"default": "",
|
|
"title": "Active Sensors",
|
|
"value": [
|
|
{
|
|
"reg":"0052",
|
|
"mask": "0008",
|
|
"type": "bits",
|
|
"value": "0008",
|
|
"title": "2 Wire Sensor",
|
|
"text": "2 Wire Start"
|
|
},
|
|
{
|
|
"reg":"0052",
|
|
"mask": "0010",
|
|
"type": "bits",
|
|
"value": "0010",
|
|
"title": "Wiring Error Sensor",
|
|
"text": "Wiring Error"
|
|
},
|
|
{
|
|
"reg":"0052",
|
|
"mask": "0020",
|
|
"type": "bits",
|
|
"value": "0020",
|
|
"title": "Ruptured Basin Sensor",
|
|
"text": "Ruptured Basin"
|
|
},
|
|
{
|
|
"reg":"0052",
|
|
"mask": "0040",
|
|
"type": "bits",
|
|
"value": "0000",
|
|
"title": "E-Stop Sensor",
|
|
"text": "E-Stop Activated"
|
|
},
|
|
{
|
|
"reg":"0052",
|
|
"mask": "0080",
|
|
"type": "bits",
|
|
"value": "0080",
|
|
"title": "Oil psi Sensor",
|
|
"text": "Oil below 8 psi"
|
|
},
|
|
{
|
|
"reg":"0052",
|
|
"mask": "0100",
|
|
"type": "bits",
|
|
"value": "0100",
|
|
"title": "Coolant Level Sensor",
|
|
"text": "Low Coolant"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"reg": "0053",
|
|
"type": "list",
|
|
"separator": ",",
|
|
"title": "Active Relays",
|
|
"default": "",
|
|
"value": [
|
|
{
|
|
"reg":"0053",
|
|
"mask": "0001",
|
|
"type": "bits",
|
|
"value": "0001",
|
|
"title": "Transfer Switch Status",
|
|
"text": "Transfer Switch Activated"
|
|
},
|
|
{
|
|
"reg":"0053",
|
|
"mask": "0002",
|
|
"type": "bits",
|
|
"value": "0002",
|
|
"title": "Fuel Enrichment Status",
|
|
"text": "Fuel Enrichment On"
|
|
},
|
|
{
|
|
"reg":"0053",
|
|
"mask": "0004",
|
|
"type": "bits",
|
|
"value": "0004",
|
|
"title": "Starter Status",
|
|
"text": "Starter On"
|
|
},
|
|
{
|
|
"reg":"0053",
|
|
"mask": "0008",
|
|
"type": "bits",
|
|
"value": "0008",
|
|
"title": "Fuel Relay Status",
|
|
"text": "Fuel Relay On"
|
|
},
|
|
{
|
|
"reg":"0053",
|
|
"mask": "0010",
|
|
"type": "bits",
|
|
"value": "0010",
|
|
"title": "Battery Charger Status",
|
|
"text": "Battery Charger On"
|
|
},
|
|
{
|
|
"reg":"0053",
|
|
"mask": "0020",
|
|
"type": "bits",
|
|
"value": "0020",
|
|
"title": "Alarm Status",
|
|
"text": "Alarm On"
|
|
},
|
|
{
|
|
"reg":"0053",
|
|
"mask": "0040",
|
|
"type": "bits",
|
|
"value": "0040",
|
|
"title": "Bosch Governor Status",
|
|
"text": "Bosch Governor On"
|
|
},
|
|
{
|
|
"reg":"0053",
|
|
"mask": "0080",
|
|
"type": "bits",
|
|
"value": "0080",
|
|
"title": "Bosch Governor Status",
|
|
"text": "Bosch Governor On"
|
|
},
|
|
{
|
|
"reg":"0053",
|
|
"mask": "0080",
|
|
"type": "bits",
|
|
"value": "0080",
|
|
"title": "Air/Fuel Relay Status",
|
|
"text": "Air/Fuel Relay On"
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{"title": "Line",
|
|
"container": true,
|
|
"value" : [
|
|
{
|
|
"reg": "0009",
|
|
"mask": "ffff",
|
|
"multiplier": 1,
|
|
"type": "int",
|
|
"title": "Utility Voltage",
|
|
"units": "V"
|
|
},
|
|
{
|
|
"reg": "0011",
|
|
"mask": "ffff",
|
|
"multiplier": 1,
|
|
"type": "int",
|
|
"title": "Utility Threshold Voltage",
|
|
"units": "V"
|
|
},
|
|
{
|
|
"reg": "023b",
|
|
"mask": "ffff",
|
|
"multiplier": 1,
|
|
"type": "int",
|
|
"title": "Utility Pickup Voltage",
|
|
"units": "V"
|
|
}
|
|
]
|
|
},
|
|
{"title": "Misc",
|
|
"container": true,
|
|
"value" : [
|
|
{
|
|
"type" : "list",
|
|
"separator" : "/",
|
|
"title" : "Generator Date",
|
|
"value" : [
|
|
{
|
|
"reg": "000f",
|
|
"type": "int",
|
|
"mask" : "ff00",
|
|
"multiplier" : 0.00390625,
|
|
"comment" : "NOTE: 0.00390625 = 1/256 or dividing by 0x100 hex or shifting right by 8 bits",
|
|
"title": "Month"
|
|
},
|
|
{
|
|
"reg": "000f",
|
|
"type": "int",
|
|
"mask" : "00ff",
|
|
"title": "Day"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"type" : "list",
|
|
"separator" : ":",
|
|
"title" : "Generator Time",
|
|
"value" : [
|
|
{
|
|
"reg": "000e",
|
|
"type": "int",
|
|
"mask" : "ff00",
|
|
"multiplier" : 0.00390625,
|
|
"comment" : "NOTE: 0.00390625 = 1/256 or dividing by 0x100 hex or shifting right by 8 bits",
|
|
"title": "Hours"
|
|
},
|
|
{
|
|
"reg": "000e",
|
|
"type": "int",
|
|
"mask" : "00ff",
|
|
"format": "%02d",
|
|
"title": "Minutes"
|
|
}
|
|
]
|
|
}
|
|
]
|
|
}
|
|
],
|
|
"maintenance": [
|
|
{
|
|
"reg": "01f4",
|
|
"type": "ascii",
|
|
"title": "Serial Number"
|
|
},
|
|
{
|
|
"reg":"023a",
|
|
"mask": "0001",
|
|
"type": "bits",
|
|
"value": "0001",
|
|
"title": "Activation Status",
|
|
"text": "Activated",
|
|
"default": "Not Activated"
|
|
},
|
|
{"title": "Controller Settings",
|
|
"container": true,
|
|
"value" : [
|
|
{
|
|
"reg": "0208",
|
|
"mask": "ffff",
|
|
"multiplier": 1,
|
|
"type": "int",
|
|
"title": "Generator Calibrate Volts",
|
|
"units": null
|
|
},
|
|
{
|
|
"reg": "0209",
|
|
"mask": "ffff",
|
|
"multiplier": 1,
|
|
"type": "int",
|
|
"title": "Utility Calibrate Volts",
|
|
"units": null
|
|
},
|
|
{
|
|
"reg": "020a",
|
|
"mask": "ffff",
|
|
"multiplier": 1,
|
|
"type": "int",
|
|
"title": "Param Code",
|
|
"units": null
|
|
},
|
|
{
|
|
"reg": "020b",
|
|
"mask": "ffff",
|
|
"multiplier": 1,
|
|
"type": "int",
|
|
"title": "Voltage Code",
|
|
"units": null
|
|
},
|
|
{
|
|
"reg": "0054",
|
|
"mask": "ffff",
|
|
"multiplier": 1,
|
|
"type": "int",
|
|
"title": "Hours of Protection",
|
|
"units": "h"
|
|
},
|
|
{
|
|
"reg": "020e",
|
|
"mask": "ffff",
|
|
"multiplier": 1,
|
|
"type": "int",
|
|
"title": "Volts Per Hertz",
|
|
"units": null
|
|
},
|
|
{
|
|
"reg": "0235",
|
|
"mask": "ffff",
|
|
"multiplier": 1,
|
|
"type": "int",
|
|
"title": "Gain",
|
|
"units": null
|
|
},
|
|
{
|
|
"reg": "0236",
|
|
"mask": "ffff",
|
|
"title": "Two Wire Start",
|
|
"type": "object_int_index",
|
|
"object": {
|
|
"0" : "Disable",
|
|
"1" : "Enable"
|
|
},
|
|
"default": "Unknown"
|
|
},
|
|
{
|
|
"reg": "0237",
|
|
"mask": "ffff",
|
|
"multiplier": 1,
|
|
"type": "int",
|
|
"title": "Set Target Voltage",
|
|
"units": "V"
|
|
},
|
|
{
|
|
"reg": "0238",
|
|
"mask": "ffff",
|
|
"multiplier": 1,
|
|
"type": "int",
|
|
"title": "Warm Up Delay",
|
|
"units": "seconds"
|
|
},
|
|
{
|
|
"reg": "0239",
|
|
"mask": "ffff",
|
|
"multiplier": 1,
|
|
"type": "int",
|
|
"title": "Start Up Delay",
|
|
"units": "seconds"
|
|
},
|
|
{
|
|
"reg": "023f",
|
|
"mask": "ffff",
|
|
"multiplier": 1,
|
|
"type": "int",
|
|
"title": "Preheat Time",
|
|
"units": "seconds"
|
|
},
|
|
{
|
|
"reg": "0255",
|
|
"mask": "ffff",
|
|
"multiplier": 1,
|
|
"type": "int",
|
|
"title": "Transfer to utility Delay",
|
|
"units": "seconds"
|
|
},
|
|
{
|
|
"reg": "0256",
|
|
"mask": "ffff",
|
|
"multiplier": 1,
|
|
"type": "int",
|
|
"title": "Cooldown Time",
|
|
"units": "seconds"
|
|
},
|
|
{
|
|
"reg": "0257",
|
|
"mask": "ffff",
|
|
"title": "AC To Charger Status",
|
|
"type": "object_int_index",
|
|
"object": {
|
|
"0" : "AC Missing",
|
|
"1" : "AC Present"
|
|
},
|
|
"default": "Unknown"
|
|
},
|
|
{
|
|
"reg": "005a",
|
|
"mask": "ffff",
|
|
"multiplier": 1,
|
|
"type": "int",
|
|
"title": "Target Frequency",
|
|
"units": "Hz"
|
|
},
|
|
{
|
|
"reg": "0059",
|
|
"mask": "ffff",
|
|
"multiplier": 1,
|
|
"type": "int",
|
|
"title": "Target Volts",
|
|
"units": "V"
|
|
},
|
|
{
|
|
"reg": "020c",
|
|
"mask": "ffff",
|
|
"type": "object_int_index",
|
|
"object":{
|
|
"0": "Liquid Propane",
|
|
"1": "Natural Gas",
|
|
"2": "Diesel"
|
|
},
|
|
"default": "Unknown Fuel Type",
|
|
"title": "Fuel Type"
|
|
}
|
|
]
|
|
},
|
|
{"title": "Exercise",
|
|
"container": true,
|
|
"value" : [
|
|
{
|
|
"type" : "list",
|
|
"separator" : ":",
|
|
"title" : "Exercise Time",
|
|
"value" : [
|
|
{
|
|
"reg": "002c",
|
|
"type": "int",
|
|
"mask" : "ff00",
|
|
"multiplier" : 0.00390625,
|
|
"comment" : "NOTE: 0.00390625 = 1/256 or dividing by 0x100 hex or shifting right by 8 bits",
|
|
"title": "Hours"
|
|
},
|
|
{
|
|
"reg": "002c",
|
|
"type": "int",
|
|
"mask" : "00ff",
|
|
"format": "%02d",
|
|
"title": "Minutes"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"type": "list",
|
|
"title": "Exercise Day",
|
|
"comment": "NOTE: this object is a list, but does not have a 'separator' or a 'format' modifier.",
|
|
"comment2": "This will return a list normally, but when paired with the 'exec' you can pass the ",
|
|
"comment3": "list items in to the exec string via python formatting, e.g. {}",
|
|
"exec": "exec_out = '{}' if '{}' == 'Monthly' else '{}'",
|
|
"separator" : null,
|
|
"value": [
|
|
{
|
|
"reg": "002e",
|
|
"mask": "ffff",
|
|
"multiplier": 1,
|
|
"type": "int",
|
|
"title": "Exercise Day"
|
|
},
|
|
{
|
|
"reg": "002d",
|
|
"mask": "ffff",
|
|
"type": "object_int_index",
|
|
"object":{
|
|
"0": "Weekly",
|
|
"1": "Biweekly",
|
|
"2": "Monthly"
|
|
},
|
|
"default": "Unknown Mode",
|
|
"title": "Exercise Interval"
|
|
},
|
|
{
|
|
"reg": "002e",
|
|
"mask": "ffff",
|
|
"multiplier": 1,
|
|
"type": "object_int_index",
|
|
"title": "Exercise Day",
|
|
"object" : {
|
|
"0": "Sunday",
|
|
"1": "Monday",
|
|
"2": "Tuesday",
|
|
"3": "Wednesday",
|
|
"4": "Thursday",
|
|
"5": "Friday",
|
|
"6": "Saturday"
|
|
}
|
|
}
|
|
]
|
|
|
|
},
|
|
{
|
|
"reg": "002d",
|
|
"mask": "ffff",
|
|
"type": "object_int_index",
|
|
"object":{
|
|
"0": "Weekly",
|
|
"1": "Biweekly",
|
|
"2": "Monthly"
|
|
},
|
|
"default": "Unknown Mode",
|
|
"title": "Exercise Interval"
|
|
},
|
|
|
|
{
|
|
"reg": "002f",
|
|
"mask": "ffff",
|
|
"type": "object_int_index",
|
|
"object":{
|
|
"0": "Disabled",
|
|
"1": "Enabled"
|
|
},
|
|
"default": "Unknown Mode",
|
|
"title": "Low Speed Exercise"
|
|
},
|
|
{
|
|
"reg": "023e",
|
|
"mask": "ffff",
|
|
"multiplier": 1,
|
|
"type": "int",
|
|
"title": "Exercise Duration",
|
|
"units": "minutes"
|
|
}
|
|
]
|
|
},
|
|
{"title": "Service",
|
|
"container": true,
|
|
"value" : [
|
|
{
|
|
"reg": "002a",
|
|
"mask": "00ff",
|
|
"multiplier": 0.01,
|
|
"type": "float",
|
|
"title": "Firmware Version",
|
|
"units": null
|
|
},
|
|
{
|
|
"reg": "002a",
|
|
"mask": "ff00",
|
|
"shiftright": 8,
|
|
"multiplier": 0.01,
|
|
"type": "float",
|
|
"title": "Hardware Version",
|
|
"units": null
|
|
},
|
|
{
|
|
"reg": "023d",
|
|
"mask": "ffff",
|
|
"multiplier": 0.01,
|
|
"type": "float",
|
|
"title": "EEProm Version",
|
|
"units": null
|
|
},
|
|
{
|
|
"reg": "005e",
|
|
"comment": "divide by 60, 1/60 = 0.166667",
|
|
"multiplier": 0.166667,
|
|
"type": "float",
|
|
"title": "Run Hours",
|
|
"units": "h"
|
|
},
|
|
{
|
|
"reg": "001a",
|
|
"mask": "ffff",
|
|
"comment": "",
|
|
"title": "Hours Until Service A Due",
|
|
"type":"int",
|
|
"units": "hrs"
|
|
},
|
|
{
|
|
"reg": "001b",
|
|
"mask": "ffff",
|
|
"comment": "register value is number of days since Jan 1,1970. exec must output to the variable 'exec_out'",
|
|
"comment2": "The exec string will be formatted (e.g. {}) with the modbus register value.",
|
|
"title": "Service A Due Date",
|
|
"type":"int",
|
|
"exec": "exec_out = datetime.datetime.fromtimestamp((({} + 1) * 86400)).strftime('%m/%d/%Y ')",
|
|
"default": "Unknown Service Date"
|
|
},
|
|
{
|
|
"reg": "001e",
|
|
"mask": "ffff",
|
|
"comment": "",
|
|
"title": "Hours Until Service B Due",
|
|
"type":"int",
|
|
"units": "hrs"
|
|
},
|
|
{
|
|
"reg": "001f",
|
|
"mask": "ffff",
|
|
"comment": "register value is number of days since Jan 1,1970. exec must output to the variable 'exec_out'",
|
|
"comment2": "The exec string will be formatted (e.g. {}) with the modbus register value.",
|
|
"title": "Service B Due Date",
|
|
"type":"int",
|
|
"exec": "exec_out = datetime.datetime.fromtimestamp((({} + 1) * 86400)).strftime('%m/%d/%Y ')",
|
|
"default": "Unknown Service Date"
|
|
}
|
|
]
|
|
}
|
|
],
|
|
"logs":[
|
|
{"length": 8, "title": "Run Log", "iteration": 50, "step": 4, "reg": "012c",
|
|
"object":{
|
|
"inherit" : true,
|
|
"type": "list",
|
|
"format": "%s/%s/%s %s:%s:%s %s",
|
|
"title" : "Run Log Entry",
|
|
"value": [
|
|
{
|
|
"inherit":true,
|
|
"mask": "00000000ff000000",
|
|
"format": "%02d",
|
|
"type": "int",
|
|
"shiftright" : 24,
|
|
"bounds_regex": "^([0-1][1-2]|[1-9])$",
|
|
"title": "Month"
|
|
},
|
|
{
|
|
"inherit":true,
|
|
"mask": "00000000000000ff",
|
|
"format": "%02d",
|
|
"type": "int",
|
|
"bounds_regex": "^([3][0-1]|[2][0-9]|[1][0-9]|[1-9])$",
|
|
"title": "Day"
|
|
},
|
|
{
|
|
"inherit":true,
|
|
"mask": "000000000000ff00",
|
|
"format": "%02d",
|
|
"type": "int",
|
|
"shiftright" : 8,
|
|
"title": "Year"
|
|
},
|
|
{
|
|
"inherit":true,
|
|
"mask": "000000ff00000000",
|
|
"format": "%02d",
|
|
"type": "int",
|
|
"shiftright" : 32,
|
|
"bounds_regex": "^(2[0-3]|[0-1]?[0-9])$",
|
|
"title": "Hours"
|
|
},
|
|
{
|
|
"inherit":true,
|
|
"mask": "0000ff0000000000",
|
|
"format": "%02d",
|
|
"type": "int",
|
|
"shiftright" : 40,
|
|
"bounds_regex": "^([0-9]|[1-5][0-9])$",
|
|
"title": "Minutes"
|
|
},
|
|
{
|
|
"inherit":true,
|
|
"mask": "0000000000ff0000",
|
|
"format": "%02d",
|
|
"type": "int",
|
|
"shiftright" : 16,
|
|
"bounds_regex": "^([0-9]|[1-5][0-9])$",
|
|
"title": "Seconds"
|
|
},
|
|
{
|
|
"inherit":true,
|
|
"type": "object_int_index",
|
|
"mask": "ff00000000000000",
|
|
"shiftright" :56,
|
|
"object": {
|
|
"40": "Switched Off",
|
|
"41": "Running Manual",
|
|
"42": "Stopped Auto",
|
|
"43": "Running Utility Lost",
|
|
"44": "Running 2 Wire Start",
|
|
"45": "Running Radio Start",
|
|
"46": "Running Exercise",
|
|
"47": "Stopped Alarm"
|
|
},
|
|
"default": "Unknown Event",
|
|
"title": "Run Event Name"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
{"length": 10, "title": "Alarm Log", "iteration": 50, "step": 5, "reg": "03e8",
|
|
"object":{
|
|
"inherit" : true,
|
|
"type": "list",
|
|
"format": "%s/%s/%s %s:%s:%s %s: Alarm Code %s",
|
|
"title" : "Alarm Log Entry",
|
|
"value": [
|
|
{
|
|
"inherit":true,
|
|
"mask": "00000000ff0000000000",
|
|
"format": "%02d",
|
|
"type": "int",
|
|
"shiftright" : 40,
|
|
"bounds_regex": "^([0-1][1-2]|[1-9])$",
|
|
"title": "Month"
|
|
},
|
|
{
|
|
"inherit":true,
|
|
"mask": "00000000000000ff0000",
|
|
"format": "%02d",
|
|
"type": "int",
|
|
"shiftright" : 16,
|
|
"bounds_regex": "^([3][0-1]|[2][0-9]|[1][0-9]|[1-9])$",
|
|
"title": "Day"
|
|
},
|
|
{
|
|
"inherit":true,
|
|
"mask": "000000000000ff000000",
|
|
"format": "%02d",
|
|
"type": "int",
|
|
"shiftright" : 24,
|
|
"title": "Year"
|
|
},
|
|
{
|
|
"inherit":true,
|
|
"mask": "000000ff000000000000",
|
|
"format": "%02d",
|
|
"type": "int",
|
|
"shiftright" : 48,
|
|
"bounds_regex": "^(2[0-3]|[0-1]?[0-9])$",
|
|
"title": "Hours"
|
|
},
|
|
{
|
|
"inherit":true,
|
|
"mask": "0000ff00000000000000",
|
|
"format": "%02d",
|
|
"type": "int",
|
|
"shiftright" : 56,
|
|
"bounds_regex": "^([0-9]|[1-5][0-9])$",
|
|
"title": "Minutes"
|
|
},
|
|
{
|
|
"inherit":true,
|
|
"mask": "0000000000ff00000000",
|
|
"format": "%02d",
|
|
"type": "int",
|
|
"shiftright" : 32,
|
|
"bounds_regex": "^([0-9]|[1-5][0-9])$",
|
|
"title": "Seconds"
|
|
},
|
|
{
|
|
"inherit":true,
|
|
"type": "object_int_index",
|
|
"mask": "ff000000000000000000",
|
|
"shiftright" : 72,
|
|
"object": {
|
|
"0": "High Temperature",
|
|
"1": "Low Oil Pressure",
|
|
"2": "Overcrank",
|
|
"3": "Overspeed",
|
|
"4": "RPM Sense Loss",
|
|
"5": "Underspeed",
|
|
"6": "Low Coolant Level",
|
|
"8": "Wiring Error",
|
|
"9": "Over Voltage",
|
|
"10": "Under Voltage",
|
|
"11": "Overload",
|
|
"12": "Undervoltage Overload",
|
|
"13": "Stepper Overcurrent",
|
|
"14": "Fuse Problem",
|
|
"15": "VSCF Comm Gone",
|
|
"16": "VSCF Enable Mismatch",
|
|
"17": "VSCF PWM Speed Gone",
|
|
"18": "Very Low Battery",
|
|
"19": "VSCF Special No Translation",
|
|
"20": "Low Battery",
|
|
"21": "Exercise Set Error",
|
|
"28": "Stopping…",
|
|
"29": "Software Error 9",
|
|
"30": "Fuel Pressure",
|
|
"31": "Battery Problem",
|
|
"32": "Charger Warning",
|
|
"33": "Charger Missing AC",
|
|
"34": "Overload Warning",
|
|
"35": "Check Engine",
|
|
"36": "DTC Warning",
|
|
"37": "VSCF Warning",
|
|
"38": "USB Warning",
|
|
"39": "Modbus Comms Failure Warning",
|
|
"64": "Internal Fault",
|
|
"65": "Ignition Fault",
|
|
"66": "CANbus Error",
|
|
"67": "Missing Cam Pulse",
|
|
"68": "Missing Crank Pulse",
|
|
"69": "Governor Fault",
|
|
"70": "Ruptured Basin",
|
|
"71": "Low Fuel",
|
|
"72": "E-Stop",
|
|
"73": "Hall Calibration Error",
|
|
"74": "SEEProm ABuse",
|
|
"75": "Download Failure"
|
|
},
|
|
"default": "Unknown Alarm",
|
|
"title": "Alarm Name"
|
|
},
|
|
{
|
|
"inherit":true,
|
|
"mask": "ffff",
|
|
"format": "%04d",
|
|
"type": "int",
|
|
"title": "E-Code"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
{"length": 8, "title": "Service Log", "iteration": 50, "step": 4, "reg": "04e2",
|
|
"object":{
|
|
"inherit" : true,
|
|
"type": "list",
|
|
"format": "%s/%s/%s %s:%s:%s %s",
|
|
"title" : "Service Log Entry",
|
|
"value": [
|
|
{
|
|
"inherit":true,
|
|
"mask": "00000000ff000000",
|
|
"format": "%02d",
|
|
"type": "int",
|
|
"shiftright" : 24,
|
|
"bounds_regex": "^([0-1][1-2]|[1-9])$",
|
|
"title": "Month"
|
|
},
|
|
{
|
|
"inherit":true,
|
|
"mask": "00000000000000ff",
|
|
"format": "%02d",
|
|
"type": "int",
|
|
"bounds_regex": "^([3][0-1]|[2][0-9]|[1][0-9]|[1-9])$",
|
|
"title": "Day"
|
|
},
|
|
{
|
|
"inherit":true,
|
|
"mask": "000000000000ff00",
|
|
"format": "%02d",
|
|
"type": "int",
|
|
"shiftright" : 8,
|
|
"title": "Year"
|
|
},
|
|
{
|
|
"inherit":true,
|
|
"mask": "000000ff00000000",
|
|
"format": "%02d",
|
|
"type": "int",
|
|
"shiftright" : 32,
|
|
"bounds_regex": "^(2[0-3]|[0-1]?[0-9])$",
|
|
"title": "Hours"
|
|
},
|
|
{
|
|
"inherit":true,
|
|
"mask": "0000ff0000000000",
|
|
"format": "%02d",
|
|
"type": "int",
|
|
"shiftright" : 40,
|
|
"bounds_regex": "^([0-9]|[1-5][0-9])$",
|
|
"title": "Minutes"
|
|
},
|
|
{
|
|
"inherit":true,
|
|
"mask": "0000000000ff0000",
|
|
"format": "%02d",
|
|
"type": "int",
|
|
"shiftright" : 16,
|
|
"bounds_regex": "^([0-9]|[1-5][0-9])$",
|
|
"title": "Seconds"
|
|
},
|
|
{
|
|
"inherit":true,
|
|
"type": "object_int_index",
|
|
"mask": "ff00000000000000",
|
|
"shiftright" :56,
|
|
"object": {
|
|
"22": "Service Schedule B",
|
|
"23": "Service Schedule A",
|
|
"24": "Inspect Battery",
|
|
"25": "Service Schedule C",
|
|
"60": "Service B Performed",
|
|
"61": "Service A Performed",
|
|
"62": "Battery Inspected",
|
|
"63": "Reset Maintenance",
|
|
"76": "Service C Performed"
|
|
},
|
|
"default": "Unknown Event",
|
|
"title": "Service Event Name"
|
|
}
|
|
]
|
|
}
|
|
}
|
|
],
|
|
"gauges": [
|
|
{
|
|
"reg": "000a",
|
|
"mask": "ffff",
|
|
"multiplier": 0.1,
|
|
"type": "float",
|
|
"title": "Battery Voltage",
|
|
"units": "V",
|
|
"sensor": "batteryvolts",
|
|
"nominal": 12
|
|
},
|
|
{
|
|
"reg": "0009",
|
|
"mask": "ffff",
|
|
"multiplier": 1,
|
|
"type": "int",
|
|
"title": "Utility Voltage",
|
|
"units": "V",
|
|
"sensor": "linevolts",
|
|
"nominal": 240
|
|
},
|
|
{
|
|
"reg": "0012",
|
|
"mask": "ffff",
|
|
"multiplier": 1,
|
|
"type": "int",
|
|
"title": "Output Voltage",
|
|
"units": "V",
|
|
"sensor": "linevolts",
|
|
"nominal": 240
|
|
},
|
|
{
|
|
"reg": "0008",
|
|
"mask": "ffff",
|
|
"multiplier": 0.01,
|
|
"type": "float",
|
|
"title": "Frequency",
|
|
"units": "Hz",
|
|
"sensor": "frequency",
|
|
"nominal": 60
|
|
},
|
|
{
|
|
"reg": "0007",
|
|
"mask": "ffff",
|
|
"multiplier": 1,
|
|
"type": "int",
|
|
"title": "RPM",
|
|
"units": null,
|
|
"sensor": "rpm",
|
|
"nominal": 1800
|
|
}
|
|
],
|
|
"buttons" : [
|
|
{
|
|
"onewordcommand" : "start",
|
|
"title" : "Remote Start",
|
|
"command_sequence" : [
|
|
{
|
|
"reg": "0003",
|
|
"value": "0001"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"onewordcommand" : "stop",
|
|
"title" : "Remote Stop",
|
|
"command_sequence" : [
|
|
{
|
|
"reg": "0003",
|
|
"value": "0000"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"onewordcommand" : "starttransfer",
|
|
"title" : "Remote Star and Transfer",
|
|
"command_sequence" : [
|
|
{
|
|
"reg": "0003",
|
|
"value": "0002"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"onewordcommand" : "startexercise",
|
|
"title" : "Remote Start Exercise",
|
|
"command_sequence" : [
|
|
{
|
|
"reg": "0003",
|
|
"value": "0003"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"onewordcommand" : "resetalarm",
|
|
"title" : "Reset Alarm",
|
|
"command_sequence" : [
|
|
{
|
|
"reg": "0003",
|
|
"value": "000d"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"onewordcommand" : "auto",
|
|
"title" : "Select Auto Mode",
|
|
"command_sequence" : [
|
|
{
|
|
"reg": "0003",
|
|
"value": "000f"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"onewordcommand" : "off",
|
|
"title" : "Select Off Mode",
|
|
"command_sequence" : [
|
|
{
|
|
"reg": "0003",
|
|
"value": "0010"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"onewordcommand" : "manual",
|
|
"title" : "Select Manual Mode",
|
|
"command_sequence" : [
|
|
{
|
|
"reg": "0003",
|
|
"value": "000e"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"onewordcommand" : "resetmaintwarn",
|
|
"title" : "Reset Maintenance Warnings",
|
|
"command_sequence" : [
|
|
{
|
|
"reg": "0003",
|
|
"value": "0008"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"onewordcommand" : "resetmaintperiods",
|
|
"title" : "Reset Maintenance Periods",
|
|
"command_sequence" : [
|
|
{
|
|
"reg": "0003",
|
|
"value": "0009"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"onewordcommand" : "exerciseduration",
|
|
"title" : "Exercise Duration",
|
|
"comment": "The command_sequence can be one or more commands",
|
|
"command_sequence" : [
|
|
{
|
|
"comment": "'reg' is the modbus register and is required. The value written to the register is supplied by the user." ,
|
|
"comment2": "'input_title' is required. 'length' (number of modbus bytes to write) is 2 by default,but must be 2 or 4 if supplied.",
|
|
"comment3": "'bounds_reg' is optional but allows the user interface to bounds check the data before sending it to genmon (highly recommended)",
|
|
"comment4": "'tooltip' is optional but allows the user interface to display more information regarding the input.",
|
|
"reg": "023e",
|
|
"input_title": "Minutes",
|
|
"type": "int",
|
|
"length": 2,
|
|
"bounds_regex":"^(?:([1][2-9])|([2-5][0-9])|([6][0]))$",
|
|
"tooltip": "The duration of the exercise cycle. This must be a whole number between 12 and 60 minutes."
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"onewordcommand" : "startupdelay",
|
|
"title" : "Start Up Delay",
|
|
"command_sequence" : [
|
|
{
|
|
"reg": "0239",
|
|
"input_title": "Seconds",
|
|
"type": "int",
|
|
"length": 2,
|
|
"bounds_regex":"([5-9]|[1-9][0-9]{1,2}|1[0-4][0-9]{2}|1500)$",
|
|
"tooltip": "The delay between the loss of utility power and the cranking of the generator. This must be a whole number between 5 and 1500 seconds."
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"onewordcommand" : "warmupdelay",
|
|
"title" : "Warm Up Delay",
|
|
"command_sequence" : [
|
|
{
|
|
"reg": "0238",
|
|
"input_title": "Seconds",
|
|
"type": "int",
|
|
"length": 2,
|
|
"bounds_regex":"^([2-9]|[1-9][0-9]{1,2}|1[0-4][0-9]{2}|1500)$",
|
|
"tooltip": "The delay between the start of the generator and the activation of the transfer switch when utility power has been lost. This must be a whole number between 2 and 1500 seconds."
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"onewordcommand" : "thresholdvolts",
|
|
"title" : "Threshold Volts",
|
|
"command_sequence" : [
|
|
{
|
|
"reg": "0011",
|
|
"input_title": "Volts",
|
|
"type": "int",
|
|
"length": 2,
|
|
"bounds_regex":"^([0-9]|[1-9][0-9]|[12][0-9]{2}|3[0-3][0-9]|34[0-2])$",
|
|
"tooltip": "The utility voltage that denotes an outage. Any utility voltage below this value will trigger the generator to start (After the Start Delay has expired). This must be a whole number between 0 and 342."
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"onewordcommand" : "pickupvolts",
|
|
"title" : "Pickup Volts",
|
|
"command_sequence" : [
|
|
{
|
|
"reg": "023b",
|
|
"input_title": "Volts",
|
|
"type": "int",
|
|
"length": 2,
|
|
"bounds_regex":"^(17[5-9]|1[89][0-9]|2[0-9]{2}|3[0-3][0-9]|34[0-2])$",
|
|
"tooltip": "The utility voltage that denotes an outage is over.. This must be a whole number between 175 and 342."
|
|
}
|
|
]
|
|
}
|
|
],
|
|
"fuel": {
|
|
"comment":"NOTE: this element will add a fuel gauge in addition to any defined in the gauges array",
|
|
"reg": "005d",
|
|
"mask": "ffff",
|
|
"multiplier": 1,
|
|
"type": "int",
|
|
"title": "Fuel Sensor",
|
|
"units": "%",
|
|
"sensor": "fuel"
|
|
},
|
|
"outputvoltage": {
|
|
"reg": "0012",
|
|
"mask": "ffff",
|
|
"multiplier": 1,
|
|
"type": "int",
|
|
"title": "Output Voltage",
|
|
"units": "V",
|
|
"sensor": "linevolts"
|
|
},
|
|
"linevoltage": {
|
|
"reg": "0009",
|
|
"mask": "ffff",
|
|
"multiplier": 1,
|
|
"type": "int",
|
|
"title": "Utility Voltage",
|
|
"units": "V",
|
|
"sensor": "linevolts"
|
|
},
|
|
"thresholdvoltage": {
|
|
"reg": "0011",
|
|
"mask": "ffff",
|
|
"multiplier": 1,
|
|
"type": "int",
|
|
"title": "Threshold Voltage",
|
|
"units": "V",
|
|
"sensor": "linevolts"
|
|
},
|
|
"pickupvoltage": {
|
|
"reg": "023b",
|
|
"mask": "ffff",
|
|
"multiplier": 1,
|
|
"type": "int",
|
|
"title": "Pickup Voltage",
|
|
"units": "V",
|
|
"sensor": "linevolts"
|
|
},
|
|
"run_hours": {
|
|
"reg": "005e",
|
|
"comment": "divide by 60, 1/60 = 0.166667",
|
|
"multiplier": 0.166667,
|
|
"type": "float",
|
|
"title": "Run Hours",
|
|
"units": "h"
|
|
},
|
|
"datetime": {
|
|
"comment": "This entry is for displaying the time in a format similar to how genmon displays the system time of the system running genmon.",
|
|
"type" : "list",
|
|
"format": "%s %s %s, 20%s %s:%s",
|
|
"title" : "Generator Time",
|
|
"value" : [
|
|
{
|
|
"reg": "0010",
|
|
"mask": "ff00",
|
|
"type": "object_int_index",
|
|
"multiplier" : 0.00390625,
|
|
"object" : {
|
|
"0": "Sunday",
|
|
"1": "Monday",
|
|
"2": "Tuesday",
|
|
"3": "Wednesday",
|
|
"4": "Thursday",
|
|
"5": "Friday",
|
|
"6": "Saturday"
|
|
},
|
|
"default": "Unknown",
|
|
"title": "Day of Week"
|
|
},
|
|
{
|
|
"reg": "000f",
|
|
"type": "object_int_index",
|
|
"mask" : "ff00",
|
|
"multiplier" : 0.00390625,
|
|
"object": {
|
|
"1": "January",
|
|
"2": "February",
|
|
"3": "March",
|
|
"4": "April",
|
|
"5": "May",
|
|
"6": "June",
|
|
"7": "July",
|
|
"8": "August",
|
|
"9": "September",
|
|
"10": "October",
|
|
"11": "November",
|
|
"12": "December"
|
|
},
|
|
"title": "Month"
|
|
},
|
|
{
|
|
"reg": "000f",
|
|
"type": "int",
|
|
"mask" : "00ff",
|
|
"title": "Day"
|
|
},
|
|
{
|
|
"reg": "0010",
|
|
"type": "int",
|
|
"mask" : "00ff",
|
|
"title": "Year"
|
|
},
|
|
{
|
|
"reg": "000e",
|
|
"type": "int",
|
|
"mask" : "ff00",
|
|
"multiplier" : 0.00390625,
|
|
"comment" : "NOTE: 0.00390625 = 1/256 or dividing by 0x100 hex or shifting right by 8 bits",
|
|
"title": "Hours"
|
|
},
|
|
{
|
|
"reg": "000e",
|
|
"type": "int",
|
|
"mask" : "00ff",
|
|
"format": "%02d",
|
|
"title": "Minutes"
|
|
}
|
|
]
|
|
},
|
|
"settime":{
|
|
"comment": "the settime object, if present can enable writing of the date and time to the controller",
|
|
"comment2": "the 'command_sequence' list is required. It defines the registers and what to write to each register",
|
|
"comment3": "The hour,minute,month,date,year entries are like the 'exec' entries in that they are python code that",
|
|
"comment4": "format the date and time input into the formate expected in the modbus register.",
|
|
"comment5": "If multiple entries are in one register command object, the values will be logical OR'ed to create a single value",
|
|
"command_sequence": [
|
|
{
|
|
"reg": "0010",
|
|
"comment": "This will take a four digit year and only use the lower two digits as low byte",
|
|
"year":"exec_out = abs({} - 2000)"
|
|
},
|
|
{
|
|
"reg": "000f",
|
|
"comment": "This will write the day of the month to the lower byte and the month to the upper byte",
|
|
"comment2": "The 'day' and 'month' will be OR'ed together to create one value to write to the register",
|
|
"comment3": "months s 1-12, day is 1 - 31",
|
|
"day": "exec_out = {} & 0x00ff",
|
|
"month":"exec_out = ({} << 8) & 0xff00"
|
|
},
|
|
{
|
|
"reg":"000e",
|
|
"comment": "This will write the hours to the upper byte and minutes to the lower byte.",
|
|
"comment1": "The 'hour' and 'minute' will be OR'ed together to create one value to write to the register",
|
|
"comment2": "hours is 0 - 23, minutes is 0 - 59",
|
|
"minute": "exec_out = {} & 0x00ff",
|
|
"hour": "exec_out = ({} << 8) & 0xff00"
|
|
}
|
|
]
|
|
},
|
|
"maintenance_due": [
|
|
{
|
|
"comment": "This should only return a value if maintenance is due, otherwise evaluate to nothing.",
|
|
"comment2": "Service A due alarm",
|
|
"reg": "0002",
|
|
"mask": "ffff",
|
|
"type": "bits",
|
|
"value": "001f",
|
|
"text": "Yes",
|
|
"title": "Maintenance A Due"
|
|
},
|
|
{
|
|
"comment": "Service B due alarm",
|
|
"reg": "0002",
|
|
"mask": "ffff",
|
|
"type": "bits",
|
|
"value": "0020",
|
|
"text": "Yes",
|
|
"title": "Maintenance B Due"
|
|
},
|
|
{
|
|
"comment": "Service A Hours remaining",
|
|
"reg": "001a",
|
|
"mask": "ffff",
|
|
"type": "bits",
|
|
"value": "0000",
|
|
"text": "Yes",
|
|
"title": "Maintenance A Due"
|
|
},
|
|
{
|
|
"comment": "Service B Hours remaining",
|
|
"reg": "001e",
|
|
"mask": "ffff",
|
|
"type": "bits",
|
|
"value": "0000",
|
|
"text": "Yes",
|
|
"title": "Maintenance B Due"
|
|
}
|
|
]
|
|
}
|