summaryrefslogtreecommitdiffstats
path: root/pyk8055/k8055test.py
blob: db5ee548bfcc43c2e03973419666bc14901ae997 (plain)
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
#!/usr/bin/env python
# $Id: k8055test.py,v 1.3 2007/03/28 10:09:34 pjetur Exp $
#
# Sample pyton test program for pyk8055 wrapper
# Testing single board
#
from time import sleep
from pyk8055 import *

try:
	# CHANGE PORT HERE IF NEEDED
	# Open device port 0
	k = k8055(0)

	# set analog output channel 1 to 200/255*5v = 3.9V
	k.OutputAnalogChannel(1,200)
	sleep(1)
	# set analog output channel low again = 0V
	k.OutputAnalogChannel(1,0)

	# read both analog inputs
	# note: this returns a list
	res = k.ReadAllAnalog()
	print res[1:]

	# Test class string function
	print str(k)

	# Set debounce time on counter 1
	k.SetCounterDebounceTime(1, 100)

	# reset counter 1
	k.ResetCounter(1)

	# create a rotating display of digital outputs
	# while waiting for keypress on digital input 1
	# (longer than .2sec :) 
	Loop,dInput1,d = 0,0,1
	k.WriteAllDigital(1)
	while Loop < 3 or dInput1 == 0:		# is key 1 down (input 1 high)
		dInput1 = k.ReadDigitalChannel(1)
		Loop += 1
		sleep(0.2)	# wait .2 sec
		d *=2		# and continue rotating digital outputs
		if d > 128: d=1;
		k.WriteAllDigital(d)

	print "Digital input 1=",dInput1

	# read the counter on input 1
	print "Counter(1)=",k.ReadCounter(1)
	# read the counter on input 2
	print "Counter(2)=",k.ReadCounter(2)

	# set even bits on digital outputs
	k.WriteAllDigital(170)
	sleep(1)
	# set odd bits on digital outputs
	k.WriteAllDigital(85)
	sleep(1)
	# Clear all digital outputs
	k.WriteAllDigital(0)

	# and close
	k.CloseDevice()

except IOError:
	print "Could not open Device"