diff --git a/ventilator_alarm.py b/ventilator_alarm.py index 1e70222..42d477a 100644 --- a/ventilator_alarm.py +++ b/ventilator_alarm.py @@ -46,6 +46,11 @@ def run(self, name): self.time_last_kick_received == cur_time if msg['val'] != 0: self.request_queue.put({'type': 'error', 'value': msg['val']}) + elif msg['type'] == "PRES": + if ((msg['val'] > proto.settings_values['PK'] + proto.settings_values['ADPK']) or + (msg['val'] < proto.settings_values['PK'] - proto.settings_values['ADPK'])): + self.request_queue.put({'type': 'alarm', 'priority': 42, 'value': 5}) + self.serial_queue.put({'type': proto.alarm, 'priority': 42, 'val': 5}) # Have we received a watchdog kick in time? if ((cur_time - self.time_watchdog_kick_checked) > 3): diff --git a/ventilator_request.py b/ventilator_request.py index dd29056..dbd3c52 100644 --- a/ventilator_request.py +++ b/ventilator_request.py @@ -20,6 +20,11 @@ def send_setting(self, key, val): print("Send setting to server, set to {}".format({key:val})) self.__put("/api/settings?returncomplete=false", {key:val}) + def send_alarm(self, priority, val): + print("Send alarm to server, set to {}".format({priority:val})) + self.__put("/api/alarms", {'alarmPriority':priority}, {'alarmValue':val}) + return + def send_error(self, val): # self.__put("/api/settings", {'alarmValue':val}) # print("todo; send the alarm") diff --git a/ventilator_request_handler.py b/ventilator_request_handler.py index 3e5ee4f..566135a 100644 --- a/ventilator_request_handler.py +++ b/ventilator_request_handler.py @@ -20,5 +20,7 @@ def run(self, name): self.api_client.send_setting(msg['key'], msg['value']) elif msg['type'] == 'error': self.api_client.send_error(msg['value']) + elif msg['type'] == 'alarm': + self.api_client.send_alarm(msg['priority'], msg['value']) except: - print("Invalid message from request") + print("Invalid message from request {}".format(msg))