Index: leahi_dialin/td/modules/blood_pressure.py =================================================================== diff -u -r3e8c15745640db0568536912a36704a567bd73c2 -r3f4937e339925dde0b95f08e49969f8983c5cba4 --- leahi_dialin/td/modules/blood_pressure.py (.../blood_pressure.py) (revision 3e8c15745640db0568536912a36704a567bd73c2) +++ leahi_dialin/td/modules/blood_pressure.py (.../blood_pressure.py) (revision 3f4937e339925dde0b95f08e49969f8983c5cba4) @@ -19,7 +19,8 @@ # Project imports from leahi_dialin.common.generic_defs import DataTypes -from leahi_dialin.common.msg_defs import MsgIds +from leahi_dialin.common.msg_defs import RequestRejectReasons +from leahi_dialin.common.msg_ids import MsgIds from leahi_dialin.protocols.CAN import CanMessenger, CanChannels from leahi_dialin.utils.abstract_classes import AbstractSubSystem from leahi_dialin.utils.base import publish @@ -51,13 +52,77 @@ self.blood_pressure_timestamp = 0.0 #: The timestamp of the latest message self.rr_timestamp = 0.0 #: The timestamp of the latest reject reason message - self.ack = 0 #: The Measure blood pressure requests acknowledgement response - self.reject_reason = 0 #: The Measure blood pressure requests reject reason - self.systolic = 0 #: The Patient's systolic blood pressure in mmHg - self.diastolic = 0 #: The Patient's diastolic blood pressure in mmHg - self.heart_rate = 0 #: The Patient's heart rate in PBM + self.rr_ack = False + self.reject_reason = RequestRejectReasons.REQUEST_REJECT_REASON_NONE + self.systolic = 0 + self.diastolic = 0 + self.heart_rate = 0 + +# ============================================================ Properties ============================================================ + @property + def rr_ack(self) -> bool: + """ + The Reject Reason message's Ack data + """ + return self._rr_ack + + @rr_ack.setter + def rr_ack(self, value): + self._rr_ack = value + + + @property + def reject_reason(self) -> RequestRejectReasons: + """ + The Reject Reason enum data + """ + return self._reject_reason + + @reject_reason.setter + def reject_reason(self, value): + self._reject_reason = value + + + @property + def systolic(self) -> int: + """ + The Patient's systolic blood pressure in mmHg + """ + return self._systolic + + @systolic.setter + def systolic(self, value): + self._systolic = value + + + @property + def diastolic(self) -> int: + """ + The Patient's diastolic blood pressure in mmHg + """ + return self._diastolic + + @diastolic.setter + def diastolic(self, value): + self._diastolic = value + + + @property + def heart_rate(self) -> int: + """ + The Patient's heart rate in PBM + """ + return self._heart_rate + + @heart_rate.setter + def heart_rate(self, value): + self._heart_rate = value + + + +# ============================================================ Handlers ============================================================ @publish(["msg_id_td_blood_pressure_data", "systolic", "diastolic", "heart_rate", "blood_pressure_timestamp"]) def _handler_bp_sync(self, message, timestamp=0.0): """ @@ -67,12 +132,11 @@ @return: none """ msg_list =[] - msg_list.append(('self.systolic', DataTypes.U32)) - msg_list.append(('self.diastolic', DataTypes.U32)) - msg_list.append(('self.heart_rate', DataTypes.U32)) + msg_list.append((type(self).systolic, DataTypes.U32)) + msg_list.append((type(self).diastolic, DataTypes.U32)) + msg_list.append((type(self).heart_rate, DataTypes.U32)) - self.process_into_vars(decoder_list = msg_list, - message = message) + self.process_into_vars(decoder_list = msg_list, message = message) self.blood_pressure_timestamp = timestamp @@ -85,14 +149,16 @@ @return: none """ msg_list =[] - msg_list.append(('self.ack', DataTypes.U32)) - msg_list.append(('self.reject_reason', DataTypes.U32)) + msg_list.append((type(self).ack, DataTypes.BOOL)) + msg_list.append((type(self).reject_reason, DataTypes.U32)) - self.process_into_vars(decoder_list = msg_list, - message = message) + self.process_into_vars(decoder_list = msg_list, message = message) + self.reject_reason = RequestRejectReasons(self.reject_reason) self.rr_timestamp = timestamp + +# ============================================================ Overrides and Requests ============================================================ def cmd_send_ui_blood_pressure_request(self) -> None: """ Constructs and sends a UI request to measure blood pressure.