Docs: Add TC10 .py example
parent
6b60804174
commit
328563b7e6
|
|
@ -92,42 +92,9 @@ Monitor Ethernet Status
|
||||||
TC10
|
TC10
|
||||||
====
|
====
|
||||||
|
|
||||||
.. code-block:: python
|
:download:`Download example <../../examples/python/tc10/tc10.py>`
|
||||||
|
|
||||||
import icsneopy
|
.. literalinclude:: ../../examples/python/tc10/tc10.py
|
||||||
import time
|
|
||||||
|
|
||||||
devices: list[icsneopy.Device] = icsneopy.find_all_devices()
|
|
||||||
|
|
||||||
device: icsneopy.Device = devices[0]
|
|
||||||
|
|
||||||
print(f"using {device} for TC10")
|
|
||||||
|
|
||||||
device.open()
|
|
||||||
|
|
||||||
netid = icsneopy.Network.NetID.AE_01
|
|
||||||
|
|
||||||
if device.supports_tc10():
|
|
||||||
# initial
|
|
||||||
status = device.get_tc10_status(netid)
|
|
||||||
print(f"initial status: wake: {status.wakeStatus}, sleep: {status.sleepStatus}")
|
|
||||||
time.sleep(1)
|
|
||||||
|
|
||||||
# sleep
|
|
||||||
device.request_tc10_sleep(netid)
|
|
||||||
print("waiting 1s for sleep to occur")
|
|
||||||
time.sleep(1)
|
|
||||||
status = device.get_tc10_status(netid)
|
|
||||||
print(f"post sleep status: wake: {status.wakeStatus}, sleep: {status.sleepStatus}")
|
|
||||||
|
|
||||||
# wake
|
|
||||||
device.request_tc10_wake(netid)
|
|
||||||
print("waiting 1s for wake to occur")
|
|
||||||
time.sleep(1)
|
|
||||||
status = device.get_tc10_status(netid)
|
|
||||||
print(f"post wake status: wake: {status.wakeStatus}, sleep: {status.sleepStatus}")
|
|
||||||
else:
|
|
||||||
print(f"{device} does not support TC10")
|
|
||||||
|
|
||||||
DoIP Ethernet Activation
|
DoIP Ethernet Activation
|
||||||
========================
|
========================
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,85 @@
|
||||||
|
import icsneopy
|
||||||
|
import argparse
|
||||||
|
|
||||||
|
|
||||||
|
def main():
|
||||||
|
parser = get_parser()
|
||||||
|
args = parser.parse_args()
|
||||||
|
run_test(args)
|
||||||
|
|
||||||
|
|
||||||
|
def find_device(serial: str) -> icsneopy.Device:
|
||||||
|
devices = icsneopy.find_all_devices()
|
||||||
|
for d in devices:
|
||||||
|
if d.get_serial() == serial:
|
||||||
|
print(f"opening device {serial}")
|
||||||
|
return d
|
||||||
|
return None
|
||||||
|
|
||||||
|
|
||||||
|
def run_test(args):
|
||||||
|
# find the device
|
||||||
|
d = find_device(args.serial)
|
||||||
|
if d is None:
|
||||||
|
print(f"error: unable to find device {args.serial}")
|
||||||
|
exit(1)
|
||||||
|
|
||||||
|
# open the device
|
||||||
|
if not d.open():
|
||||||
|
print(f"error: unable to open device {args.serial}")
|
||||||
|
exit(1)
|
||||||
|
|
||||||
|
# check if TC10 is supported
|
||||||
|
if not d.supports_tc10():
|
||||||
|
print(f"error: device does not support TC10 {args.serial}")
|
||||||
|
exit(1)
|
||||||
|
|
||||||
|
# send the request on all networks
|
||||||
|
for n in args.networks:
|
||||||
|
net = getattr(icsneopy.Network.NetID, n)
|
||||||
|
if args.send_wake:
|
||||||
|
print(f"requesting TC10 wake on network {net}")
|
||||||
|
if not d.request_tc10_wake(net):
|
||||||
|
print(f"error: unable to send TC10 wake on device {args.serial}")
|
||||||
|
exit(1)
|
||||||
|
elif args.send_sleep:
|
||||||
|
print(f"requesting TC10 sleep on network {net}")
|
||||||
|
if not d.request_tc10_sleep(net):
|
||||||
|
print(f"error: unable to send TC10 sleep on device {args.serial}")
|
||||||
|
exit(1)
|
||||||
|
|
||||||
|
# close the device
|
||||||
|
print(f"closing device {args.serial}")
|
||||||
|
d.close()
|
||||||
|
|
||||||
|
|
||||||
|
def get_parser():
|
||||||
|
parser = argparse.ArgumentParser(description="TC10 wake request")
|
||||||
|
parser.add_argument(
|
||||||
|
"serial",
|
||||||
|
help="The serial number of the device",
|
||||||
|
)
|
||||||
|
parser.add_argument(
|
||||||
|
"--networks",
|
||||||
|
nargs="+",
|
||||||
|
help="List of icsneopy networks to use. Multiple networks accepted, e.g. '--networks ETHERNET_01 AE_01'",
|
||||||
|
required=True,
|
||||||
|
),
|
||||||
|
group = parser.add_mutually_exclusive_group(required=True)
|
||||||
|
group.add_argument(
|
||||||
|
"--send-wake",
|
||||||
|
help="Trigger TC10 wake on the selected networks",
|
||||||
|
action="store_true",
|
||||||
|
default=False,
|
||||||
|
)
|
||||||
|
group.add_argument(
|
||||||
|
"--send-sleep",
|
||||||
|
help="Trigger TC10 sleep on the selected networks",
|
||||||
|
action="store_true",
|
||||||
|
default=False,
|
||||||
|
)
|
||||||
|
return parser
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
main()
|
||||||
Loading…
Reference in New Issue