test.sh
1 #!/bin/sh 2 realtime start 3 python <<EOF 4 import hal 5 import os 6 h = hal.component("x") 7 try: 8 ps = h.newpin("s", hal.HAL_S32, hal.HAL_OUT); 9 pu = h.newpin("u", hal.HAL_U32, hal.HAL_OUT); 10 pf = h.newpin("f", hal.HAL_FLOAT, hal.HAL_OUT); 11 param = h.newparam("param", hal.HAL_BIT, hal.HAL_RW) 12 h.ready() 13 14 def try_set(p, v): 15 try: 16 h[p] = v 17 print "set", p, v, h[p] 18 except (ValueError, OverflowError): 19 print "set", p, v, "fail" 20 21 def try_set_pin(p, v): 22 try: 23 p.set(v) 24 print "set", p.get_name(), v, p.get() 25 except (ValueError, OverflowError): 26 print "set", p.get_name(), v, "fail" 27 28 try_set("s", -1) 29 try_set("s", 0) 30 try_set("s", 1) 31 try_set("s", -1l) 32 try_set("s", 0l) 33 try_set("s", 1l) 34 try_set("s", 0x7fffffff) 35 try_set("s", -0x80000000) 36 37 try_set("u", 0) 38 try_set("u", 1) 39 try_set("u", 0xffffffffl) 40 41 try_set("f", 0) 42 try_set("f", 0.0) 43 try_set("f", 0l) 44 try_set("f", -1) 45 try_set("f", -1.0) 46 try_set("f", -1l) 47 try_set("f", 1) 48 try_set("f", 1.0) 49 try_set("f", 1l) 50 51 try_set("f", 1l<<1023) 52 53 54 try_set("s", 0x80000000) 55 try_set("s", -0x80000001) 56 57 try_set("u", -1) 58 try_set("u", 1<<32) 59 60 try_set("f", 1l<<1024) 61 62 pin = h.getitem("s") 63 64 def pin_validate(i, t, d): 65 print "pincheck", i.get_name(), i.is_pin(), i.get_type() == t, i.get_dir() == d 66 pin_validate(ps, hal.HAL_S32, hal.HAL_OUT) 67 pin_validate(pu, hal.HAL_U32, hal.HAL_OUT) 68 pin_validate(pf, hal.HAL_FLOAT, hal.HAL_OUT) 69 70 pin = h.getitem("s") 71 pin_validate(pin, hal.HAL_S32, hal.HAL_OUT) 72 try: 73 pin = h.getitem("not-found") 74 print "getitem", "not-found", "ok" 75 except: 76 print "getitem", "not-found", "fail" 77 78 pin_validate(param, hal.HAL_BIT, hal.HAL_RW) 79 param = h.getitem("param") 80 pin_validate(param, hal.HAL_BIT, hal.HAL_RW) 81 82 try_set_pin(pu, 0) 83 try_set_pin(pu, -1) 84 except: 85 import traceback 86 print "Exception:", traceback.format_exc() 87 raise 88 finally: 89 h.exit() 90 EOF 91 realtime stop