PLC.py
1.17 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
from common.models import *
import abc
import json
from .Device import DeviceController
'''
Device controller for PLC.
This class must implement set, get and do functions (DeviceController is an abstract)
'''
class PLCController(DeviceController):
def __init__(self):
super().__init__("PLC")
def sendCommand(self, dict_list):
command = { "command" : dict_list }
return self.sendMessage(json.dumps(command))
# EP sert à rien
#return ""
def sendCommandWithAnswer(self, dict_list):
# Send commmand TO plc
status = self.sendCommand(dict_list)
#EP added
if not status:
return "NOT_SET1"
# Read result FROM plc
return (self.blockAndReadBytes(4096))
def getList(self):
return self.sendCommandWithAnswer([{"name":"LIST"}])
def getStatus(self):
s = self.sendCommandWithAnswer([{"name":"STATUS"}])
return s
'''
Value is a string ("on" or "off"), current is a decimal value ("0.231")
'''
def setLampFlatCagire(self, value, current):
return self.sendCommand([{"name":"LAMP_FLAT_CAGIRE", "value":value, "current":current}])