|
@@ -1,117 +0,0 @@
|
1
|
|
-#!/usr/bin/env python3
|
2
|
|
-# scripts/examples/simple_tcp_client.py
|
3
|
|
-import fcntl
|
4
|
|
-import sys
|
5
|
|
-import socket
|
6
|
|
-import struct
|
7
|
|
-from serial import Serial
|
8
|
|
-from serial.serialutil import SerialException
|
9
|
|
-from umodbus.client.serial import rtu
|
10
|
|
-import json
|
11
|
|
-
|
12
|
|
-from pyheatpump.db import sql
|
13
|
|
-from pyheatpump.conf import config
|
14
|
|
-config.set('heatpump', 'database', '/home/emixam/src/otec/pyHeatpump/db/pyheatpump.db')
|
15
|
|
-
|
16
|
|
-s = Serial('/dev/ttyUSB0',19200)
|
17
|
|
-try:
|
18
|
|
- s.open()
|
19
|
|
-except SerialException:
|
20
|
|
- print('already open')
|
21
|
|
-
|
22
|
|
-BOOLEAN=1000
|
23
|
|
-FLOAT=500
|
24
|
|
-INT=1250
|
25
|
|
-
|
26
|
|
-def read_digital():
|
27
|
|
- global req_adu
|
28
|
|
- global sql
|
29
|
|
- global s
|
30
|
|
-
|
31
|
|
- start_address, end_address = sql(
|
32
|
|
- "SELECT start_address, end_address FROM var_type WHERE slabel LIKE 'D'")
|
33
|
|
-
|
34
|
|
- res = []
|
35
|
|
-
|
36
|
|
- # digital - boolean
|
37
|
|
- req_adu = rtu.read_coils(
|
38
|
|
- slave_id=1,
|
39
|
|
- starting_address=1,
|
40
|
|
- quantity=1)
|
41
|
|
-
|
42
|
|
- resp = rtu.send_message(req_adu, s)
|
43
|
|
-
|
44
|
|
- address = -1
|
45
|
|
- try:
|
46
|
|
- for address in range(0, BOOLEAN, 1):
|
47
|
|
- res[address+1] = (resp[address] > 0)
|
48
|
|
- except KeyError as e:
|
49
|
|
- print(e)
|
50
|
|
- res[address] = False
|
51
|
|
- except IndexError:
|
52
|
|
- print(address)
|
53
|
|
-
|
54
|
|
- return res
|
55
|
|
-
|
56
|
|
-def read_analog():
|
57
|
|
- global req_adu
|
58
|
|
- global sql
|
59
|
|
- global s
|
60
|
|
-
|
61
|
|
- start_address, end_address = sql(
|
62
|
|
- """
|
63
|
|
- SELECT start_address, end_address FROM var_type
|
64
|
|
- WHERE slabel LIKE 'A';
|
65
|
|
- """
|
66
|
|
- )
|
67
|
|
-
|
68
|
|
- # analog - float
|
69
|
|
- for address in range(1, end_address - start_address, 125):
|
70
|
|
- req_adu = rtu.read_holding_registers(
|
71
|
|
- slave_id=1,
|
72
|
|
- starting_address=start_address + address,
|
73
|
|
- quantity=125)
|
74
|
|
-
|
75
|
|
- resp = rtu.send_message(req_adu, s)
|
76
|
|
-
|
77
|
|
- for n in range(125):
|
78
|
|
- try:
|
79
|
|
- res[address + n] = int(resp[n]) / 10
|
80
|
|
- except Exception as e:
|
81
|
|
- print(e)
|
82
|
|
- res[address + n] = 0.
|
83
|
|
-
|
84
|
|
- return res
|
85
|
|
-
|
86
|
|
-def read_int():
|
87
|
|
- global req_adu
|
88
|
|
- global sql
|
89
|
|
- global s
|
90
|
|
-
|
91
|
|
- res = []
|
92
|
|
-
|
93
|
|
- start_address, end_address = 1, 1000
|
94
|
|
- #next(sql(
|
95
|
|
- """
|
96
|
|
- SELECT start_address, end_address FROM var_type
|
97
|
|
- WHERE slabel LIKE 'I'
|
98
|
|
- """
|
99
|
|
- #))
|
100
|
|
-
|
101
|
|
- # integer - int
|
102
|
|
- req_adu = rtu.read_holding_registers(
|
103
|
|
- slave_id=1,
|
104
|
|
- starting_address=start_address,
|
105
|
|
- quantity=125)
|
106
|
|
- resp = rtu.send_message(req_adu, s)
|
107
|
|
- for r in resp:
|
108
|
|
- print(r)
|
109
|
|
-
|
110
|
|
- return res
|
111
|
|
-
|
112
|
|
-
|
113
|
|
-read_int()
|
114
|
|
-
|
115
|
|
-s.close()
|
116
|
|
-
|
117
|
|
-sys.exit(0)
|