-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy path__init__.py
143 lines (112 loc) · 4.51 KB
/
__init__.py
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
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
import json
import logging
import threading
from flask import Flask, request
from industrial_informatic_assigment.orchestration.orchestrator_input import OrchestratorInput
from industrial_informatic_assigment.orchestration.orchestrator_rpi import Orchestrator
from industrial_informatic_assigment.orchestration.orchestrator_status import OrchestratorStatus
from industrial_informatic_assigment.workstation.subsciber import Subscriber
from industrial_informatic_assigment.workstation.workstation import Workstation
# Logging
logging.basicConfig(level=logging.DEBUG, format='[%(levelname)s] %(asctime)s - %(message)s',
datefmt='%Y-%m-%d %H:%M:%S')
# Workstations
w2BaseUrl = "http://192.168.2"
w2 = Workstation(w2BaseUrl, None)
# Subscribers
raspberryPiAddress = "http://192.168.0.108:5000"
sub = Subscriber(raspberryPiAddress)
sub.subscribeToAllEventsOfWS(w2)
# Orchestration
orchestratorStatus = OrchestratorStatus()
orchestrator = Orchestrator(orchestratorStatus, w2)
orchestratorInput = OrchestratorInput(orchestrator)
# Flask Application
app = Flask(__name__)
def runFlaskApp():
if __name__ == '__main__':
app.run("0.0.0.0")
# Threads
threadOrchestration = threading.Thread(target=orchestrator.runOrchestration, args=())
threadOrchestrationInput = threading.Thread(target=orchestratorInput.startListening, args=())
threadOrchestrationStatus = threading.Thread(target=orchestratorStatus.blink, args=())
threadFlask = threading.Thread(target=runFlaskApp, args=())
threadOrchestration.start()
threadOrchestrationStatus.start()
threadFlask.start()
threadOrchestrationInput.start()
# API Event Endpoints
@app.route('/rest/events/ws/<string:wsId>/PenChangeEnd/info', methods=['POST'])
def penSelectedEndEvent(wsId):
logging.debug("Event: Pen Selected End WS(" + wsId + ")")
content = request.json
orchestrator.penSelectedEndEvent()
cnvMsg = {}
cnvMsg_str = json.dumps(cnvMsg)
return cnvMsg_str
@app.route('/rest/events/ws/<string:wsId>/PenChangeStart/info', methods=['POST'])
def penSelectedStartEvent(wsId):
logging.debug("Event: Pen Selected Start WS(" + wsId + ")")
orchestrator.penSelectedStartEvent()
cnvMsg = {}
cnvMsg_str = json.dumps(cnvMsg)
return cnvMsg_str
@app.route('/rest/events/ws/<string:wsId>/DrawStartExecution/info', methods=['POST'])
def drawingStartEvent(wsId):
logging.debug("Event: Drawing Start WS(" + wsId + ")")
orchestrator.drawingStartEvent()
cnvMsg = {}
cnvMsg_str = json.dumps(cnvMsg)
return cnvMsg_str
@app.route('/rest/events/ws/<string:wsId>/DrawEndExecution/info', methods=['POST'])
def drawingEndEvent(wsId):
logging.debug("Event: Drawing End WS(" + wsId + ")")
orchestrator.drawingEndEvent()
cnvMsg = {}
cnvMsg_str = json.dumps(cnvMsg)
return cnvMsg_str
@app.route('/rest/events/ws/<string:wsId>/Z1_Changed/info', methods=['POST'])
def zone1ChangedEvent(wsId):
logging.debug("Event: Zone 1 Changed WS(" + wsId + ")")
content = request.json
payload = content["payload"]
orchestrator.zone1ChangedEvent(payload["PalletID"])
cnvMsg = {}
cnvMsg_str = json.dumps(cnvMsg)
return cnvMsg_str
@app.route('/rest/events/ws/<string:wsId>/Z2_Changed/info', methods=['POST'])
def zone2ChangedEvent(wsId):
logging.debug("Event: Zone 2 Changed WS(" + wsId + ")")
content = request.json
payload = content["payload"]
orchestrator.zone2ChangedEvent(payload["PalletID"])
cnvMsg = {}
cnvMsg_str = json.dumps(cnvMsg)
return cnvMsg_str
@app.route('/rest/events/ws/<string:wsId>/Z3_Changed/info', methods=['POST'])
def zone3ChangedEvent(wsId):
logging.debug("Event: Zone 3 Changed WS(" + wsId + ")")
content = request.json
payload = content["payload"]
orchestrator.zone3ChangedEvent(payload["PalletID"])
cnvMsg = {}
cnvMsg_str = json.dumps(cnvMsg)
return cnvMsg_str
@app.route('/rest/events/ws/<string:wsId>/Z4_Changed/info', methods=['POST'])
def zone4ChangedEvent(wsId):
logging.debug("Event: Zone 4 Changed WS(" + wsId + ")")
content = request.json
payload = content["payload"]
orchestrator.zone4ChangedEvent(payload["PalletID"])
cnvMsg = {}
cnvMsg_str = json.dumps(cnvMsg)
return cnvMsg_str
@app.route('/rest/events/ws/<string:wsId>/Z5_Changed/info', methods=['POST'])
def zone5ChangedEvent(wsId):
logging.debug("Event: Zone 5 Changed WS(" + wsId + ")")
content = request.json
payload = content["payload"]
orchestrator.zone5ChangedEvent(payload["PalletID"])
cnvMsg = {}
cnvMsg_str = json.dumps(cnvMsg)
return cnvMsg_str