A StreamDevice based EPICS IOC that interfaces with Redis databases.
Change the IOC table sync URL in the Makefile or swap out the table in scripts/spreadsheet
.
Each row represents a different PV, and you can configure it through columns.
Then, run generate.py
. A cmd
folder will be generated.
- Enabled:
True
enables the PV,False
disables it. - IP: Redis server IP (must use port 6379). This IOC also supports redundancy, which must be enabled by setting multiple IPs, separated by commas (,).
- Key: Redis key
- PV: PV name
- Precision: Digits of decimal precision (only applies to float-related fields)
- Unit: EGU
- Scanrate: Scanrate. Follows default StreamDevice values.
- Type: Data type (float, float_put, int, int_put, string, string_put, array, array_put, hash, hash_put)
- Variables with the
put
suffix allow forcaput
commands - Since Redis returns a string for most, this only affects how Redis' response is processed
- Variables with the
- Rack: Doesn't affect the IOC
- ADDR: Doesn't affect the IOC
- Location: Passed over to
DESC
field - HIHI/HIGH/LOW/LOLO: Alarm values
- Pub: Only used for array/list types, determines the subscription name for one or more PVs (a PUBLISH event is fired on each caput)
Data Type | Get | Put |
---|---|---|
Float | ✓ | ✓ |
Int | ✓ | ✓ |
String | ✓ | ✓ |
Array/List | ✓ | ✓ |
Hash | ✓ | ✓ |
Bitmaps | * | * |
Sorted Sets | ||
Streams |
Located in /opt/redis-ioc/log