/*! * * Copyright (c) 2019-2020 Diality Inc. - All Rights Reserved. * copyright * THIS CODE MAY NOT BE COPIED OR REPRODUCED IN ANY FORM, * IN PART OR IN WHOLE, * WITHOUT THE EXPLICIT PERMISSION OF THE COPYRIGHT OWNER. * * file guiglobals.h * date 10/27/2019 * author Behrouz NematiPour * */ #pragma once // Qt #include namespace Gui { extern QQuickView *_viewer; class GuiActions { Q_GADGET explicit GuiActions(); public: enum /*class*/ GuiActionsType_Enum /*: quint16 QML doesn't support enum types */ { Unknown = 0x0000, PowerOff = 0x0100, KeepAlive = 0x0700, BloodFlow = 0x0500, DialysateInletFlow = 0x0800, DialysateOutletFlow = 0x0B00, TreatmentTime = 0x0D00, PowerOffBroadcast = 0x0E00, AlarmStatus = 0x0200, AlarmTriggered = 0x0300, AlarmCleared = 0x0400, PressureOcclusion = 0x0900, // message 9 String = 0xFFFE, Acknow = 0xFFFF, }; enum class GuiActionsIndx_Enum { // ---- PowerOff PowerOff_ShowHide = 0 , PowerOff_Response = 0 , }; enum class GuiActionsData_Enum /*: quint8 QML doesn't support*/ { NoData = 0x00, Command = 0x00, // HD=>UI : should be handled in receive Request = 0x00, // UI=>HD : should be handled in transmit // Power-Off Data // UI=>HD : should be handled in transmit Accepted = 0x01, Rejected = 0x02, // Power-Off Data // HD=>UI : should be handled in receive Timeout = 0x01, }; enum GuiAlarmPriority_Enum { // TODO : this code has to be in common repository soon. ALARM_PRIORITY_NONE = 0, ALARM_PRIORITY_LOW, ALARM_PRIORITY_MEDIUM, ALARM_PRIORITY_HIGH, NUM_OF_ALARM_PRIORITIES }; enum GuiAlarmID_Enum { // TODO : this code has to be in common repository soon. ALARM_ID_NO_ALARM = 0, ALARM_ID_SOFTWARE_FAULT, ALARM_ID_STUCK_BUTTON_TEST_FAILED, ALARM_ID_FPGA_POST_TEST_FAILED, ALARM_ID_WATCHDOG_POST_TEST_FAILED, ALARM_ID_UI_COMM_POST_FAILED, // 5 ALARM_ID_BLOOD_PUMP_MC_CURRENT_CHECK, ALARM_ID_BLOOD_PUMP_MC_SPEED_CHECK, ALARM_ID_BLOOD_PUMP_MC_DIRECTION_CHECK, ALARM_ID_BLOOD_PUMP_ROTOR_SPEED_CHECK, ALARM_ID_DIAL_IN_PUMP_MC_CURRENT_CHECK, // 10 ALARM_ID_DIAL_IN_PUMP_MC_SPEED_CHECK, ALARM_ID_DIAL_IN_PUMP_MC_DIRECTION_CHECK, ALARM_ID_DIAL_IN_PUMP_ROTOR_SPEED_CHECK, ALARM_ID_DIAL_OUT_PUMP_MC_CURRENT_CHECK, ALARM_ID_DIAL_OUT_PUMP_MC_SPEED_CHECK, // 15 ALARM_ID_DIAL_OUT_PUMP_MC_DIRECTION_CHECK, ALARM_ID_DIAL_OUT_PUMP_ROTOR_SPEED_CHECK, ALARM_ID_WATCHDOG_EXPIRED, ALARM_ID_RTC_COMM_ERROR, ALARM_ID_RTC_CONFIG_ERROR, // 20 ALARM_ID_DG_COMM_TIMEOUT, ALARM_ID_UI_COMM_TIMEOUT, ALARM_ID_COMM_TOO_MANY_BAD_CRCS, ALARM_ID_TREATMENT_STOPPED_BY_USER, ALARM_ID_BLOOD_SITTING_WARNING, // 25 ALARM_ID_BLOOD_SITTING_TOO_LONG_NO_RESUME, ALARM_ID_BLOOD_SITTING_TOO_LONG_NO_RINSEBACK, ALARM_ID_CAN_MESSAGE_NOT_ACKED, ALARM_ID_OCCLUSION_BLOOD_PUMP, ALARM_ID_OCCLUSION_DIAL_IN_PUMP, // 30 ALARM_ID_OCCLUSION_DIAL_OUT_PUMP, ALARM_ID_ARTERIAL_PRESSURE_LOW, ALARM_ID_ARTERIAL_PRESSURE_HIGH, ALARM_ID_VENOUS_PRESSURE_LOW, ALARM_ID_VENOUS_PRESSURE_HIGH, // 35 NUM_OF_ALARM_IDS }; Q_ENUM(GuiActionsType_Enum) Q_ENUM(GuiActionsData_Enum) Q_ENUM(GuiActionsIndx_Enum) Q_ENUM(GuiAlarmPriority_Enum) Q_ENUM(GuiAlarmID_Enum) }; // to be able to use the enum as signal/slot parameter typedef GuiActions::GuiActionsType_Enum GuiActionType; typedef GuiActions::GuiActionsData_Enum GuiActionData; typedef GuiActions::GuiActionsIndx_Enum GuiActionIndx; typedef GuiActions::GuiAlarmPriority_Enum GuiAlarmPriority; typedef GuiActions::GuiAlarmID_Enum GuiAlarmID; void registerTypes(); void registerQmlTypes(); void startGui(); }