Rev Author Line No. Line
4843 kaklik 1 #!/usr/bin/python
2  
3 #uncomment for debbug purposes
4 #import logging
5 #logging.basicConfig(level=logging.DEBUG)
6  
7 import time
8 import datetime
9 import sys
10 from pymlab import config
11  
12 #### Script Arguments ###############################################
13  
14 if len(sys.argv) != 3:
15 sys.stderr.write("Invalid number of arguments.\n")
16 sys.stderr.write("Usage: %s PORT_ADDRESS LOG_FILE.csv\n" % (sys.argv[0], ))
17 sys.exit(1)
18  
19 port = eval(sys.argv[1])
20 log_file = sys.argv[2]
21  
22 #### Sensor Configuration ###########################################
23  
24 cfg = config.Config(
25 i2c = {
26 "port": port,
27 },
28 bus = [
29 {
30 "name": "current_sensor",
31 "type": "vcai2c01",
32 },
33 ],
34 )
35 cfg.initialize()
36  
37 print "Current loop sensor example \r\n"
38 print "Time, channel #1, channel #2, channel #3 , channel #4 \r\n"
39 sensor = cfg.get_device("current_sensor")
40 time.sleep(0.5)
41  
42 #### Data Logging ###################################################
43  
44 try:
45 with open(log_file, "a") as f:
46 while True:
47  
48 sensor.setADC(channel = 1, gain = 2, sample_rate = 3.75);
49 time.sleep(0.5)
50 channel1 = sensor.readCurrent();
51  
52 sensor.setADC(channel = 2, gain = 1, sample_rate = 15);
53 time.sleep(0.5)
54 channel2 = sensor.readADC();
55  
56 sensor.setADC(channel = 3, gain = 1, sample_rate = 15);
57 time.sleep(0.5)
58 channel3 = sensor.readADC();
59  
60 sensor.setADC(channel = 4, gain = 1, sample_rate = 15);
61 time.sleep(0.5)
62 channel4 = sensor.readADC();
63  
64 sys.stdout.write("%s \t %0.3f \t %0.3f \t %0.3f \t %0.3f \n" % (datetime.datetime.now().isoformat(), channel1, channel2, channel3, channel4))
65  
66 f.write("%d\t%d\t%d\t%d\t%d\n" % (time.time(), channel1, channel2, channel3, channel4))
67 f.flush()
68  
69 sys.stdout.flush()
70  
71 except KeyboardInterrupt:
72 f.close()
73 sys.exit(0)
74  
75