Import LinuxCNC source tree
This commit is contained in:
96
tests/halmodule.0/test.py
Executable file
96
tests/halmodule.0/test.py
Executable file
@@ -0,0 +1,96 @@
|
||||
#!/usr/bin/env python3
|
||||
import hal
|
||||
import os
|
||||
|
||||
h = hal.component("x")
|
||||
try:
|
||||
ps = h.newpin("s", hal.HAL_S32, hal.HAL_OUT)
|
||||
pu = h.newpin("u", hal.HAL_U32, hal.HAL_OUT)
|
||||
pf = h.newpin("f", hal.HAL_FLOAT, hal.HAL_OUT)
|
||||
param = h.newparam("param", hal.HAL_BIT, hal.HAL_RW)
|
||||
h.ready()
|
||||
|
||||
def try_set(p, v):
|
||||
try:
|
||||
h[p] = v
|
||||
hp = h[p]
|
||||
print("set {} {} {}".format(p, v, "ok" if hp == v else repr(hp)))
|
||||
except (ValueError, OverflowError) as e:
|
||||
print("set {} {} {}".format(p, v, "fail"))
|
||||
|
||||
def try_set_pin(p, v):
|
||||
try:
|
||||
p.set(v)
|
||||
print("set {} {} {}".format(p.get_name(), v, p.get()))
|
||||
except (ValueError, OverflowError):
|
||||
print("set {} {} {}".format(p.get_name(), v, "fail"))
|
||||
|
||||
try_set("s", -1)
|
||||
try_set("s", 0)
|
||||
try_set("s", 1)
|
||||
try_set("s", -1)
|
||||
try_set("s", 0)
|
||||
try_set("s", 1)
|
||||
try_set("s", 0x7fffffff)
|
||||
try_set("s", -0x80000000)
|
||||
|
||||
try_set("u", 0)
|
||||
try_set("u", 1)
|
||||
try_set("u", 0xffffffff)
|
||||
|
||||
try_set("f", 0)
|
||||
try_set("f", 0.0)
|
||||
try_set("f", 0)
|
||||
try_set("f", -1)
|
||||
try_set("f", -1.0)
|
||||
try_set("f", -1)
|
||||
try_set("f", 1)
|
||||
try_set("f", 1.0)
|
||||
try_set("f", 1)
|
||||
|
||||
try_set("f", 1 << 1023)
|
||||
|
||||
try_set("s", 0x80000000)
|
||||
try_set("s", -0x80000001)
|
||||
|
||||
try_set("u", -1)
|
||||
try_set("u", 1 << 32)
|
||||
|
||||
try_set("f", 1 << 1024)
|
||||
|
||||
pin = h.getitem("s")
|
||||
|
||||
def pin_validate(i, t, d):
|
||||
print("pincheck {} {} {} {}".format(
|
||||
i.get_name(), i.is_pin(), i.get_type() == t, i.get_dir() == d))
|
||||
|
||||
pin_validate(ps, hal.HAL_S32, hal.HAL_OUT)
|
||||
pin_validate(pu, hal.HAL_U32, hal.HAL_OUT)
|
||||
pin_validate(pf, hal.HAL_FLOAT, hal.HAL_OUT)
|
||||
|
||||
pin = h.getitem("s")
|
||||
|
||||
pin_validate(pin, hal.HAL_S32, hal.HAL_OUT)
|
||||
try:
|
||||
pin = h.getitem("not-found")
|
||||
print("{} {} {}".format("getitem", "not-found", "ok"))
|
||||
except:
|
||||
print("{} {} {}".format("getitem", "not-found", "fail"))
|
||||
|
||||
pin_validate(param, hal.HAL_BIT, hal.HAL_RW)
|
||||
param = h.getitem("param")
|
||||
pin_validate(param, hal.HAL_BIT, hal.HAL_RW)
|
||||
|
||||
pin = h.getpin("s")
|
||||
pin_validate(pin, hal.HAL_S32, hal.HAL_OUT)
|
||||
param = h.getparam("param")
|
||||
pin_validate(param, hal.HAL_BIT, hal.HAL_RW)
|
||||
|
||||
try_set_pin(pu, 0)
|
||||
try_set_pin(pu, -1)
|
||||
except:
|
||||
import traceback
|
||||
print("Exception: {}".format(traceback.format_exc()))
|
||||
raise
|
||||
finally:
|
||||
h.exit()
|
||||
Reference in New Issue
Block a user