Skip to content

Commit

Permalink
new daemon supporting omega iseries controllers (#90)
Browse files Browse the repository at this point in the history
* new daemon supporting omega iseries controllers

* new daemon supporting omega iseries controllers
  • Loading branch information
untzag authored Oct 31, 2023
1 parent 6c8f8f5 commit 9e81789
Show file tree
Hide file tree
Showing 2 changed files with 319 additions and 0 deletions.
311 changes: 311 additions & 0 deletions daemons/omega-iseries-modbus.avpr
Original file line number Diff line number Diff line change
@@ -0,0 +1,311 @@
{
"config": {
"baud_rate": {
"default": 9600,
"origin": "uses-uart",
"type": "int"
},
"byte_size": {
"default": 8,
"doc": "Byte size of your instrument.",
"type": "int"
},
"enable": {
"default": true,
"doc": "Disable this daemon. The kind entry-point will not attempt to start this daemon.",
"origin": "is-daemon",
"type": "boolean"
},
"log_level": {
"default": "info",
"doc": "Set daemon log-level.",
"origin": "is-daemon",
"type": {
"name": "level",
"symbols": [
"debug",
"info",
"notice",
"warning",
"error",
"critical",
"alert",
"emergency"
],
"type": "enum"
}
},
"log_to_file": {
"default": false,
"doc": "Optionally force logging to a file.",
"origin": "is-daemon",
"type": "boolean"
},
"make": {
"default": null,
"origin": "is-daemon",
"type": [
"null",
"string"
]
},
"modbus_address": {
"default": 1,
"doc": "Unique address in the modbus network.",
"type": "int"
},
"modbus_handle_echo": {
"default": true,
"doc": "Configure echo handling.",
"type": "boolean"
},
"model": {
"default": null,
"origin": "is-daemon",
"type": [
"null",
"string"
]
},
"parity": {
"default": "none",
"doc": "Modbus parity.",
"type": {
"name": "parity",
"symbols": [
"even",
"odd",
"none"
],
"type": "enum"
}
},
"port": {
"doc": "TCP port for daemon to occupy.",
"origin": "is-daemon",
"type": "int"
},
"serial": {
"default": null,
"doc": "Serial number for the particular device represented by the daemon",
"origin": "is-daemon",
"type": [
"null",
"string"
]
},
"serial_port": {
"origin": "uses-uart",
"type": "string"
},
"stop_bits": {
"default": "one",
"doc": "Number of stop bits.",
"type": {
"name": "stop_bits",
"symbols": [
"one",
"one_and_half",
"two"
],
"type": "enum"
}
},
"units": {
"default": "degC",
"doc": "Units string.",
"type": [
"null",
"string"
]
}
},
"doc": "",
"hardware": [
"omega:cni32",
"omega:cni16"
],
"installation": {
"PyPI": "https://pypi.org/project/yaqd-omega"
},
"links": {
"bugtracker": "https://github.com/yaq-project/yaqd-omega/-/issues",
"source": "https://github.com/yaq-project/yaqd-omega"
},
"messages": {
"busy": {
"doc": "Returns true if daemon is currently busy.",
"origin": "is-daemon",
"request": [],
"response": "boolean"
},
"direct_serial_write": {
"doc": "Expose direct access to the serial port to clients.\n\nThis should not be encouraged for normal use, but may be very important for debugging.\nIf a device is expected to return data, it should be logged at the INFO level, not returned to the client.\nThis is done to allow long tasks to be run asynchronously, and to explicitly discourage use of this method except when debugging.\nSetting `busy` to true is encouraged, but individual daemon writers should consider their own use case.\n",
"origin": "uses-serial",
"request": [
{
"name": "message",
"type": "bytes"
}
],
"response": "null"
},
"get_config": {
"doc": "Full configuration for the individual daemon as defined in the TOML file.\nThis includes defaults and shared settings not directly specified in the daemon-specific TOML table.\n",
"origin": "is-daemon",
"request": [],
"response": "string"
},
"get_config_filepath": {
"doc": "String representing the absolute filepath of the configuration file on the host machine.\n",
"origin": "is-daemon",
"request": [],
"response": "string"
},
"get_destination": {
"doc": "Get current daemon destination.",
"origin": "has-position",
"request": [],
"response": "double"
},
"get_position": {
"doc": "Get current daemon position.",
"origin": "has-position",
"request": [],
"response": "double"
},
"get_state": {
"doc": "Get version of the running daemon",
"origin": "is-daemon",
"request": [],
"response": "string"
},
"get_units": {
"doc": "Get units of daemon. These units apply to the position and destination properties.",
"origin": "has-position",
"request": [],
"response": [
"null",
"string"
]
},
"id": {
"doc": "JSON object with information to identify the daemon, including name, kind, make, model, serial.\n",
"origin": "is-daemon",
"request": [],
"response": {
"type": "map",
"values": [
"null",
"string"
]
}
},
"set_position": {
"doc": "Give the daemon a new destination, and begin motion towards that destination.",
"origin": "has-position",
"request": [
{
"name": "position",
"type": "double"
}
],
"response": "null"
},
"set_relative": {
"doc": "Give the daemon a new destination relative to its current position. Daemon will immediately begin motion towards new destination. Returns new destination.",
"origin": "has-position",
"request": [
{
"name": "distance",
"type": "double"
}
],
"response": "double"
},
"shutdown": {
"doc": "Cleanly shutdown (or restart) daemon.",
"origin": "is-daemon",
"request": [
{
"default": false,
"name": "restart",
"type": "boolean"
}
],
"response": "null"
}
},
"properties": {
"destination": {
"control_kind": "hinted",
"dynamic": true,
"getter": "get_destination",
"limits_getter": null,
"options_getter": null,
"record_kind": "data",
"setter": "set_position",
"type": "double",
"units_getter": "get_units"
},
"position": {
"control_kind": "hinted",
"dynamic": true,
"getter": "get_position",
"limits_getter": null,
"options_getter": null,
"record_kind": "data",
"setter": null,
"type": "double",
"units_getter": "get_units"
}
},
"protocol": "omega-iseries-modbus",
"requires": [],
"state": {
"destination": {
"default": NaN,
"origin": "has-position",
"type": "double"
},
"position": {
"default": NaN,
"origin": "has-position",
"type": "double"
}
},
"traits": [
"has-position",
"is-daemon",
"uses-serial",
"uses-uart"
],
"types": [
{
"fields": [
{
"name": "shape",
"type": {
"items": "int",
"type": "array"
}
},
{
"name": "typestr",
"type": "string"
},
{
"name": "data",
"type": "bytes"
},
{
"name": "version",
"type": "int"
}
],
"logicalType": "ndarray",
"name": "ndarray",
"type": "record"
}
]
}
8 changes: 8 additions & 0 deletions known-hardware.toml
Original file line number Diff line number Diff line change
Expand Up @@ -207,6 +207,14 @@ links.manufacturer = "https://pmccorp.com/products/dcxpci.php#pci100"

[omega]

[omega.cni16]
doc = "Universal Input Digital Panel Meters"
links.manufacturer = "https://www.omega.com/en-us/control-monitoring/controllers/pid-controllers/p/CNI-Series"

[omega.cni32]
doc = "Universal Input Digital Panel Meters"
links.manufacturer = "https://www.omega.com/en-us/control-monitoring/controllers/pid-controllers/p/CNI-Series"

[omega.dp16pt]
doc = "Universal Input Digital Panel Meters"
links.manufacturer = "https://www.omega.com/en-us/control-monitoring/meters/universal-input-meters/p/DPPT-Series"
Expand Down

0 comments on commit 9e81789

Please sign in to comment.