MCC Universal Library for Linux
Interface to DAQ devices from Measurement Computing.
This interface has been tested with the MCC USB-200 Series as used in RWTH-ACS's Low-Cost PMU.
Prerequisites
This node-type requires libuldaq (>= 1.0.0).
Implementation
The source code of the node-type is available here: https://github.com/VILLASframework/node/blob/master/lib/nodes/uldaq.cpp
Configuration
| interface_type | string Enum: "usb" "bluetooth" "ethernet" "any" The interface to which the ADC is connected. Check manual for your device. |
| device_id | string The used device type. If empty it is auto detected. |
object (Input configuration (received by VILLASnode)) Configuration for the ul201 | |
| vectorize | integer Default: 1 This setting allows to send multiple samples in a single message to the destination nodes. The value of this setting determines how many samples will be combined into one packet. |
Array of Hook Object (object) or Hook Name (string) (hook_list) | |
| builtin | boolean (Builtin hook functions) Default: true By default, each node and paths has a couple of default hooks attached to them. With this setting the attachment of built-in hooks can be disabled. |
object (Output configuration (sent out by VILLASnode)) |
{- "interface_type": "usb",
- "device_id": "10000",
- "in": {
- "signals": [
- {
- "range": "string",
- "input_mode": "string",
- "channel": 5,
- "name": "Bus123_U",
- "unit": "V",
- "type": "integer",
- "init": 0,
- "enabled": true
}
], - "sample_rate": 10000,
- "range": "bipolar-60",
- "input_mode": "differential",
- "vectorize": 1,
- "hooks": [
- "print",
- {
- "type": "limit_rate",
- "rate": 1000
}
]
}, - "vectorize": 1,
- "hooks": [
- "print",
- {
- "type": "limit_rate",
- "rate": 1000
}
], - "builtin": true,
- "out": {
- "vectorize": 0,
- "hooks": [
- "print",
- {
- "type": "limit_rate",
- "rate": 1000
}
]
}
}Example
http = {
enabled = false
}
nodes = {
ul201 = {
type = "uldaq"
interface_type = "usb"
in = {
range = "bipolar-10"
input_mode = "single-ended"
signals = (
{ name = "ch0", type = "float", channel = 0 }
)
sample_rate = 5000
vectorize = 100
}
}
vpmu = {
type = "socket"
layer = "udp"
format = {
type = "raw"
bits = 32
endianess = "big"
}
in = {
address = "*:13001"
signals = ()
}
out = {
vectorize = 100
address = "10.100.1.125:13000"
}
}
}
paths = (
{
in = "ul201"
out = "vpmu"
}
)