Start of sct generator description file for Julabo LH45
This commit is contained in:
@ -0,0 +1,112 @@
|
|||||||
|
#
|
||||||
|
# Simple driver generator for the Julabo LH45
|
||||||
|
# vim: ts=8 sts=2 sw=2 expandtab autoindent smartindent nocindent
|
||||||
|
#
|
||||||
|
driver julabo_lh45_gen = {
|
||||||
|
usecreatenode = false
|
||||||
|
vendor = julabo; device = lh45; protocol = std;
|
||||||
|
class = environment
|
||||||
|
simulation_group = environment_simulation
|
||||||
|
add_args = '{sensor "bath"} {tol 5.0}';
|
||||||
|
make_args = 'sensor tol';
|
||||||
|
protocol_args = '"\r"';
|
||||||
|
#
|
||||||
|
# Unnamed group has variables at device level
|
||||||
|
#
|
||||||
|
group = {
|
||||||
|
priv = user
|
||||||
|
type = float
|
||||||
|
var setpoint = {
|
||||||
|
driveable = sensor/'value'
|
||||||
|
readable = 1
|
||||||
|
read_command = 'in_sp_00'
|
||||||
|
write_function = setPoint
|
||||||
|
write_command = 'out_sp_00'
|
||||||
|
lowerlimit = 10
|
||||||
|
upperlimit = 90
|
||||||
|
tolerance = 2
|
||||||
|
}
|
||||||
|
var overtemp_warnlimit = {
|
||||||
|
readable = 1
|
||||||
|
read_command = 'in_sp_03'
|
||||||
|
#write_command = 'out_sp_03'
|
||||||
|
}
|
||||||
|
var subtemp_warnlimit = {
|
||||||
|
readable = 1
|
||||||
|
read_command = 'in_sp_04'
|
||||||
|
#write_command = 'out_sp_04'
|
||||||
|
}
|
||||||
|
var heating_power_percent = {
|
||||||
|
readable = 1
|
||||||
|
read_command = 'in_pv_01';
|
||||||
|
};
|
||||||
|
var power = {
|
||||||
|
readable = 1
|
||||||
|
read_command = 'in_mode_05';
|
||||||
|
writeable = 1;
|
||||||
|
write_command = 'out_mode_05';
|
||||||
|
};
|
||||||
|
var lh45_state = {
|
||||||
|
readable = 1
|
||||||
|
read_command = 'status';
|
||||||
|
fetch_function = getState
|
||||||
|
read_function = rdState
|
||||||
|
}
|
||||||
|
var lh45_lasterror = { type = text; }
|
||||||
|
var remote_ctrl = { type = text; priv = spy; }
|
||||||
|
}
|
||||||
|
#
|
||||||
|
# The named group is at the device level, variables below that
|
||||||
|
#
|
||||||
|
group sensor = {
|
||||||
|
type = float;
|
||||||
|
priv = internal;
|
||||||
|
readable = 1;
|
||||||
|
var 'value' = { read_command = 'in_pv_00'; units = 'C' };
|
||||||
|
var bathtemp = { read_command = 'in_pv_00'; units = 'C' };
|
||||||
|
};
|
||||||
|
|
||||||
|
#
|
||||||
|
# Code lines start with '@' which is stripped before being emitted into generated driver
|
||||||
|
# The code is emitted at the appropriate place in the given function
|
||||||
|
#
|
||||||
|
code read_function rdValue = {
|
||||||
|
}
|
||||||
|
code Write_function setPoint = {
|
||||||
|
}
|
||||||
|
#
|
||||||
|
# This code is after database creation
|
||||||
|
#
|
||||||
|
code mkDriver = {
|
||||||
|
@# TODO use the ${sensor} and ${tol} arguments
|
||||||
|
}
|
||||||
|
|
||||||
|
code read_function rdState = {
|
||||||
|
@ if {${data} != [sct oldval]} {
|
||||||
|
@ debug_log 1 "[sct] changed to new:${data}, from old:[sct oldval]"
|
||||||
|
@ sct oldval ${data}
|
||||||
|
@ sct update ${data}
|
||||||
|
@ sct utime readtime
|
||||||
|
@ switch -- [lindex ${data} 0] {
|
||||||
|
@ "00" {
|
||||||
|
@ hset ${tc_root}/remote_ctrl False
|
||||||
|
@ }
|
||||||
|
@ "01" {
|
||||||
|
@ hset ${tc_root}/remote_ctrl False
|
||||||
|
@ }
|
||||||
|
@ "02" {
|
||||||
|
@ hset ${tc_root}/remote_ctrl True
|
||||||
|
@ }
|
||||||
|
@ "03" {
|
||||||
|
@ hset ${tc_root}/remote_ctrl True
|
||||||
|
@ }
|
||||||
|
@ default {
|
||||||
|
@ hset ${tc_root}/remote_ctrl UNKNOWN
|
||||||
|
@ hset ${tc_root}/lh45_lasterror ${data}
|
||||||
|
@ sct geterror ${data}
|
||||||
|
@ }
|
||||||
|
@ }
|
||||||
|
@ }
|
||||||
|
}
|
||||||
|
|
||||||
|
};
|
Reference in New Issue
Block a user