-
-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathexample_discover_devices.py
More file actions
52 lines (38 loc) · 1.56 KB
/
example_discover_devices.py
File metadata and controls
52 lines (38 loc) · 1.56 KB
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
# Do not edit this file directly. It has been autogenerated from
# example_discover_devices_async.py
import asyncio
from dataclasses import asdict
import logging
import sys
from pystuderxcom import AsyncXcomApiTcp, XcomApiTcp, XcomApiTcpMode
from pystuderxcom import AsyncXcomDiscover, XcomDiscover
from pystuderxcom import AsyncXcomFactory, XcomFactory
from pystuderxcom import XcomDataset, XcomVoltage
from helper import RunHelper
# Setup logging to StdOut
logging.basicConfig(stream=sys.stdout, level=logging.DEBUG)
logger = logging.getLogger(__name__)
def main():
api = XcomApiTcp(mode=XcomApiTcpMode.SERVER, listen_port=4001) # port number configured in Xcom-LAN/Moxa NPort
dataset = XcomFactory.create_dataset(XcomVoltage.AC240, XcomVoltage.DC48) # or use XcomVoltage.AC120, XcomVoltage.DC12 or XcomVoltagC.DC24
try:
if not api.start():
logger.info(f"Did not connect to Xcom")
return
helper = XcomDiscover(api, dataset)
# Discover Xcom client info
client_info = helper.discover_client_info()
logger.info(f"\n\n")
logger.info(f"Discovered {client_info}")
# Discover Xcom devices
devices = helper.discover_devices(getExtendedInfo=True, verbose=False)
logger.info(f"\n\n")
for device in devices:
logger.info(f"Discovered {device}")
# Log diagnostic information
diag = api.get_diagnostics()
logger.info(f"Diagnostics: {diag}")
finally:
api.stop()
dataset = None
RunHelper.run(main) # main loop