1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
|
CircleCI Status
---------------
[![Circle CI](https://circleci.com/gh/zoff99/clewarecontrol/tree/build_with_circleCI.svg?style=svg)](https://circleci.com/gh/zoff99/clewarecontrol/tree/build_with_circleCI)
build instructions
------------------
Required libraries:
libhidapi-dev
Since version 4.0 clewarecontrol uses this library to abstract the
interfacing with the kernel. That way it may work on other OSes and new(er)
kernel as well.
If you get errors, try replacing -lhidapi by -lhidraw-libusb or hidapi-hidraw.
If you still get errors, contact me.
Installation:
make install
usage
-----
Please see the man-page for help on how to use it:
make clewarecontrol
or run the program with the -h switch:
clewarecontrol -h
Please also check the website for tips and help.
devices
-------
- temperature sensor
clewarecontrol -rt
- humidity sensor
This device needs to be "started" first, then you can read sensor readings
clewarecontrol -ag -rh
- 2 channel AD converter (analog to digital)
First you need to know what it range it works: 5v, 13v or 24v
then you must select the channel to read from - the device has 2 channels
after selecting the channel, you can keep reading
clewarecontrol -ai x where x is 0 or 1 (selects channel)
clewarecontrol -ra y where y is 0 voor 5v, 1 for 13v, etc.
- Ampel ("Switch1 (8)")
The traffic light is, from clewarecontrol seen, a device with 3 switches in
it that can be individiually switched on and off
clewarecontrol -as x y where x is 0, 1 or 2 (0=red, 2=green) and
y is 0 or 1 (0 is off)
- IO16 ("Contact 00 device (48)")
The IO16 is a 16 port I/O interface. You can configure each pin to be either
input or output. This setting is stored in an eprom so that a pin cannot
become accidently output while you expected an input.
Set the direction with:
clewarecontrol -ad x where x is a hex value representing a 1
or 0 selecting the direction
After that you can set the output pins to 1 or 0 with:
clewarecontrol -am x where is a hex value
- Luminus
This is in fact an AD converter with integrated hardware which measures the
amount of light. It has 1 chnanel, so you don't need to select it (like the
generic ADC). Reading values (in version 2.5) can be perfomed like his:
clewarecontrol -ra 0
This gives a value between 0 and 5. I (developer of this Linux program)
need to buy a lux meter to scale this correctly.
- USB-cutter
This is a device which is at its heart a switch like the other switches.
To use it, you need to start it:
clewarecontrol -ag
then, you can toggle the USB status like this:
clewarecontrol -as 0 1 this will "cut" the USB device (switching
it off)
clewarecontrol -as 0 0 this will enable the USB device again(!)
indeed, the logic is inverted.
-mintrig / -maxtrig
-------------------
Run the program with -c 0 so that it keeps running forever (unless you want to
have it monitor the value for a shorter time).
Also start it with -F so that it runs in the background.
Then set the -mintrig or -maxtrig switches.
As the last parameter, set the sensor to monitor: -rh (humidity), -rt
(temperature), etc.
For example:
clewarecontrol -c 0 -maxtrig 0.5 ./myscript.sh -ra 0
If the ADC tells us that the voltage is over 0.5 volts, then "myscript.sh" is
invoked. As a parameter, the script will get the measured value.
I would be delighted if you share your experiences with me!
python library
--------------
please see readme-python.txt for details on how to create and use the python
library.
perl library
--------------
please see readme-perl.txt for details on how to create and use the perl
library.
problems
--------
If you encounter any problems when using clewarecontrol with Cleware devices,
DO NOT contact Cleware but please contact me: folkert@vanheusden.com
Of course you can always write me when you have questions/suggestions/etc.
folkert@vanheusden.com
FAQ
---
Q1. Values retrieved are invalid
A1. Occasionally the values retrieved are invalid. E.g. a temperature of 170
degrees and such. In that case you can reset the device (might need to
reset it multiple times!) and then it'll work
Q2. It does not compile on SuSE Enterprise Linux 10
A2. Insert in file USBaccessBasic.c at line 17 (that is BEFORE the line
including usbdevice_fs.h!) the following line:
#define __user
Q3. clewarecontrol -l doesn't list any devices
A3. The Cleware USB library expects the following files to exist:
crw-rw-rw- 1 root root 180, 96 May 9 2005 /dev/usb/hiddev0
crw-rw-rw- 1 root root 180, 97 May 9 2005 /dev/usb/hiddev1
...
crw-rw-rw- 1 root root 180, 110 May 9 2005 /dev/usb/hiddev14
crw-rw-rw- 1 root root 180, 111 May 9 2005 /dev/usb/hiddev15
Since version 1.2 you can use -p to select a different path, eg.:
clewarecontrol -p /dev -l
Make sure the user you're running clewarecontrol from has enought rights
to access the devices. For starters, to see if it works at all, run it as
root.
Q4. clewarecontrol still can't find any devices
A4. If that still does not give any output then please e-mail me the output of
the following commands:
uname -a
lsusb
lsmod
strace clewarecontrol -l
ps -deaf | grep udev
find /dev -name hiddev\*
Please also tell me what distribution (e.g. redhat/suse/ubuntu) and what
version you're using
Regards,
Folkert van Heusden
|