Index: CMakeLists.txt =================================================================== diff -u -rd7719d4a8f8209f11f34905d29272d21f448195b -rb915ccc1a72fcca21908c35140af7ac7df1f1f37 --- CMakeLists.txt (.../CMakeLists.txt) (revision d7719d4a8f8209f11f34905d29272d21f448195b) +++ CMakeLists.txt (.../CMakeLists.txt) (revision b915ccc1a72fcca21908c35140af7ac7df1f1f37) @@ -1,7 +1,7 @@ cmake_minimum_required(VERSION 3.16) -project(RtCDT - DESCRIPTION "Real-time Cloud Data Transmission" +project(CloudConnect + DESCRIPTION "CloudConnect app and libraries used for connecting the Leahi device to the Diality Cloud System" LANGUAGES CXX ) @@ -17,4 +17,4 @@ add_subdirectory(lib) add_subdirectory(tools) -add_subdirectory(LeahiRt) +add_subdirectory(CloudConnect) Index: CloudConnect/CMakeLists.txt =================================================================== diff -u --- CloudConnect/CMakeLists.txt (revision 0) +++ CloudConnect/CMakeLists.txt (revision b915ccc1a72fcca21908c35140af7ac7df1f1f37) @@ -0,0 +1,47 @@ +project(CloudConnect + DESCRIPTION "CloudConnect application" + LANGUAGES CXX +) + +set(CMAKE_CXX_STANDARD 20) +set(CMAKE_CXX_STANDARD_REQUIRED ON) + +set(CMAKE_INCLUDE_CURRENT_DIR ON) + +set(CMAKE_AUTOMOC ON) + +find_package(QT NAMES Qt6 Qt5 REQUIRED COMPONENTS Core Network) +find_package(Qt${QT_VERSION_MAJOR} REQUIRED COMPONENTS Core Network) + +find_package(Comms HINTS ${CMAKE_CURRENT_SOURCE_DIR}/../lib/Comms REQUIRED) +find_package(MsgUtils HINTS ${CMAKE_CURRENT_SOURCE_DIR}/../lib/MsgUtils REQUIRED) + +set(LEAHI_MSG_CONF ${CMAKE_CURRENT_SOURCE_DIR}/../data/LeahiUnhandled.conf) + +set(INCLUDES + CloudConnectController.h +) + +set(SRCS + CloudConnectController.cpp + main.cpp +) + +generate_msg_handling_ini(LEAHI_MSG_CONF ${CMAKE_CURRENT_SOURCE_DIR}/config/LeahiMsgHandling.ini generate_msg_handling_ini) + +add_executable(${PROJECT_NAME}) + +add_dependencies(${PROJECT_NAME} generate_msg_handling_ini) + +target_sources(${PROJECT_NAME} PRIVATE ${INCLUDES} ${SRCS}) + +set_target_properties(${PROJECT_NAME} PROPERTIES + RUNTIME_OUTPUT_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/../bin" +) + +target_link_libraries(${PROJECT_NAME} PRIVATE + Comms + MsgUtils + Qt${QT_VERSION_MAJOR}::Core + Qt${QT_VERSION_MAJOR}::Network +) Index: CloudConnect/CloudConnect.pro =================================================================== diff -u --- CloudConnect/CloudConnect.pro (revision 0) +++ CloudConnect/CloudConnect.pro (revision b915ccc1a72fcca21908c35140af7ac7df1f1f37) @@ -0,0 +1,41 @@ +TEMPLATE = app +TARGET = CloudConnect +CONFIG += c++20 moc +QT += core network +QT -= gui + +QMAKE_CXXFLAGS += -Wall -Werror -Wextra + +DESTDIR = $$PWD/../bin + +include($$PWD/../lib/MsgUtils/codegen.pri) +include($$PWD/../lib/MsgUtils/MsgUtils.pri) + +LEAHI_MSG_CONF = $$PWD/../data/LeahiUnhandled.conf + +# Generate/update the Message-handling INI +MSG_HANDLING_INI = $$PWD/config/LeahiMsgHandling.ini + +gen_ini.target = $$MSG_HANDLING_INI +gen_ini.depends = \ + $$LEAHI_MSG_CONF \ + $$MSGUTILS_SCRIPTS_DIR/msgutils/MsgData.py \ + $$MSGUTILS_SCRIPTS_DIR/msgutils/MsgHandlingIni.py \ + $$MSGUTILS_SCRIPTS_DIR/GenerateMsgHandlingIni.py \ + $$MSGUTILS_SCRIPTS_DIR/msgutils/templates/MsgHandlingIni.jinja +gen_ini.commands = \ + $$shell_quote($$PROJECT_PYTHON) \ + $$MSGUTILS_SCRIPTS_DIR/GenerateMsgHandlingIni.py \ + $$LEAHI_MSG_CONF \ + $$MSG_HANDLING_INI +QMAKE_EXTRA_TARGETS += gen_ini +PRE_TARGETDEPS += $$MSG_HANDLING_INI + +HEADERS = \ + CloudConnectController.h + +SOURCES = \ + CloudConnectController.cpp \ + main.cpp + +INCLUDEPATH += $$PWD Index: CloudConnect/CloudConnectController.cpp =================================================================== diff -u --- CloudConnect/CloudConnectController.cpp (revision 0) +++ CloudConnect/CloudConnectController.cpp (revision b915ccc1a72fcca21908c35140af7ac7df1f1f37) @@ -0,0 +1,200 @@ +/*! + * + * Copyright (c) 2024-2026 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 CloudConnectController.cpp + * \author (original) Stephen Quong + * \date (original) 24-May-2026 + * + */ +#include +#include + +#include "CloudConnectController.h" +#include "LeahiMsgProtoUtils.h" + +/*! + * \brief CloudConnectController::CloudConnectController + * \details Constructor. Starts the CAN interface and wires the frame→dispatcher→ + * completed-message pipeline. + * \param configPath - path to the settings file + * \param msgHandlingPath - path to the message handling INI + * \param parent - optional QObject parent + */ +CloudConnectController::CloudConnectController(const QString &configPath, const QString &msgHandlingPath, QObject *parent) : + QObject(parent), + _settings(configPath, QSettings::IniFormat), + _canInterface(), + _canThread(this), + _dispatcher(this), + _appServer(this) +{ + loadMsgHandling(msgHandlingPath); + + _canInterface.init(_canThread); + connect(&_canInterface, &Can::CanInterface::didFrameReceive, this, &CloudConnectController::onFrameReceive); + connect(&_dispatcher, &Can::MessageDispatcher::didActionReceive, this, &CloudConnectController::onMessageReceive); + connect(&_agentInterface, &RtInterface::didDisconnect, this, &CloudConnectController::onAgentDisconnect); +} + +/*! + * \brief CloudConnectController::~CloudConnectController + * \details Destructor. Stops and joins the CAN and Agent worker threads. + */ +CloudConnectController::~CloudConnectController() +{ + _canThread.quit(); + _canThread.wait(); + + _agentThread.quit(); + _agentThread.wait(); +} + +/*! + * \brief CloudConnectController::connectToAgent + * \details Initialises the RtInterface using the socket path and reconnect + * interval from the settings file. + */ +void CloudConnectController::connectToAgent() +{ + const QString socketPath = _settings.value("Socket/LocalSocketName", "/tmp/leahi_rt.sock").toString(); + const int reconnectIntervalMs = _settings.value("Socket/ReconnectIntervalMs", 5000).toInt(); + _agentInterface.init(socketPath, reconnectIntervalMs, _agentThread); +} + +/*! + * \brief CloudConnectController::listenForApp + * \details Starts the local-socket server that the Luis application connects to, + * using the app socket path from the settings file. + * \return true if the server bound successfully, false otherwise. + */ +bool CloudConnectController::listenForApp() +{ + const QString appSocketPath = _settings.value("Socket/AppSocketName", "/tmp/leahi_app.sock").toString(); + return _appServer.listen(appSocketPath); +} + +/*! + * \brief CloudConnectController::loadMsgHandling + * \details Parses message handling INI and populates _msgHandling. + * \note Unknown msg action values default to Drop; unknown topic strings default to ClinicalData. + * \param msgHandlingPath - path to the message handling INI file + */ +void CloudConnectController::loadMsgHandling(const QString &msgHandlingPath) +{ + static const QHash actionMap = { + { QStringLiteral("send_always"), MsgAction::SendAlways }, + { QStringLiteral("send_delta"), MsgAction::SendDelta }, + { QStringLiteral("drop"), MsgAction::Drop }, + }; + static const QHash topicMap = { + { QStringLiteral("ClinicalData"), RtMessage::MsgId::ClinicalData }, + { QStringLiteral("Diagnostic"), RtMessage::MsgId::Diagnostic }, + { QStringLiteral("Ack"), RtMessage::MsgId::Ack }, + { QStringLiteral("Alarms"), RtMessage::MsgId::Alarms }, + { QStringLiteral("Audit"), RtMessage::MsgId::Audit }, + { QStringLiteral("DeviceLogFile"), RtMessage::MsgId::DeviceLogFile }, + { QStringLiteral("TreatmentLogFile"), RtMessage::MsgId::TreatmentLogFile }, + { QStringLiteral("CloudSyncLogFile"), RtMessage::MsgId::CloudSyncLogFile }, + }; + + QSettings msgHandlingIni(msgHandlingPath, QSettings::IniFormat); + if (msgHandlingIni.status() != QSettings::NoError) { + qWarning().noquote() << "CloudConnect: could not read message handling INI" << msgHandlingPath << "— all messages will be dropped"; + return; + } + + int loaded = 0; + for (const QString &group : msgHandlingIni.childGroups()) { + bool ok = false; + const Can::MsgId msgId = static_cast(group.toUInt(&ok, 16)); + if (!ok) { + continue; + } + + msgHandlingIni.beginGroup(group); + const QString actionStr = msgHandlingIni.value(QStringLiteral("action"), QStringLiteral("drop")).toString().trimmed(); + const QString topicStr = msgHandlingIni.value(QStringLiteral("topic")).toString().trimmed(); + msgHandlingIni.endGroup(); + + MsgHandling msgHandling; + msgHandling.action = actionMap.value(actionStr, MsgAction::Drop); + msgHandling.topic = topicMap.value(topicStr, RtMessage::MsgId::ClinicalData); + + if (!actionMap.contains(actionStr)) { + qWarning().noquote() << QString("CloudConnect: unknown message action \"%1\" for msgId=0x%2 — defaulting to drop") + .arg(actionStr).arg(msgId, 4, 16, QChar('0')); + } + + _msgHandling.insert(msgId, msgHandling); + loaded++; + } + qInfo().noquote() << QString("CloudConnect: loaded message handling %1 (%2 entries)").arg(msgHandlingPath).arg(loaded); +} + +/*! + * \brief CloudConnectController::onFrameReceive + * \details Unpacks a CAN frame and feeds it to the dispatcher, which reassembles + * multi-frame messages per CAN id. + * \param frame - the received CAN frame + */ +void CloudConnectController::onFrameReceive(const QCanBusFrame frame) +{ + _dispatcher.onFrameReceive(Can::CanId(frame.frameId()), frame.payload()); +} + +/*! + * \brief CloudConnectController::onMessageReceive + * \details Applies the message handling policy from LeahiMsgHandling.ini: drops, + * forwards unconditionally, or forwards only on payload change. Uses the + * section's topic to set the RtMessage frame msg_id. + * \param msg - the reassembled message + */ +void CloudConnectController::onMessageReceive(const Can::Message &msg) +{ + const auto it = _msgHandling.constFind(msg.msgId); + if (it == _msgHandling.constEnd()) { + qInfo().noquote() << QString("CloudConnect: no action defined for %1 (0x%2), dropping") + .arg(leahi::msgIdString(leahi::MsgId(msg.msgId))).arg(msg.msgId, 4, 16, QChar('0')); + return; + } + + if (it->action == MsgAction::Drop) { + qInfo().noquote() << QString("CloudConnect: dropping message %1 (0x%2)") + .arg(leahi::msgIdString(leahi::MsgId(msg.msgId))).arg(msg.msgId, 4, 16, QChar('0')); + return; + } + + auto &[received, cachedMsg] = _msgCache[msg.msgId]; + if (it->action == MsgAction::SendDelta && received && + cachedMsg.data.chopped(1) == msg.data.chopped(1)) { + qInfo().noquote() << QString("CloudConnect: received message %1 (0x%2) did not changed from previous, dropping") + .arg(leahi::msgIdString(leahi::MsgId(msg.msgId))).arg(msg.msgId, 4, 16, QChar('0')); + return; + } + + const QByteArray payload = leahi::canMessageToProtobufByteArray( + QDateTime::currentDateTime(), + QStringLiteral("test_device"), + msg); + const quint16 sequence = _txSequence++; + _agentInterface.send(it->topic, sequence, payload); + _appServer.send(it->topic, sequence, payload); + received = true; + cachedMsg = msg; +} + +/*! + * \brief CloudConnectController::onAgentDisconnect + * \details Resets the received flag on all cache entries so that send_delta + * messages are treated as new on the next connection. + */ +void CloudConnectController::onAgentDisconnect() +{ + for (auto &[received, msg] : _msgCache) { + received = false; + } +} Index: CloudConnect/CloudConnectController.h =================================================================== diff -u --- CloudConnect/CloudConnectController.h (revision 0) +++ CloudConnect/CloudConnectController.h (revision b915ccc1a72fcca21908c35140af7ac7df1f1f37) @@ -0,0 +1,92 @@ +/*! + * + * Copyright (c) 2024-2026 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 CloudConnectController.h + * \author (original) Stephen Quong + * \date (original) 24-May-2026 + * + */ +#pragma once + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include "RtInterface.h" +#include "RtMessage.h" +#include "CanInterface.h" +#include "CanMessage.h" +#include "RtServer.h" +#include "MessageDispatcher.h" + +using namespace Can; + +/*! + * \brief Real-time Cloud Communications controller + */ +class CloudConnectController : public QObject +{ + Q_OBJECT + +public: + explicit CloudConnectController(const QString &configPath, const QString &msgHandlingPath, QObject *parent = nullptr); + ~CloudConnectController(); + + void connectToAgent(); + bool listenForApp(); + +Q_SIGNALS: + /*! + * \brief didCanMessageReceive + * \details Emitted when a complete CAN message has been reassembled. + * \param timestamp - time the message was completed + * \param msg - the completed message + */ + void didCanMessageReceive(const QDateTime timestamp, const Can::Message msg); + +private: + /*! + * \brief Send message handling policy for a CAN message. + */ + enum class MsgAction { + Drop, ///< Discard the message; do not forward to the Agent. + SendAlways, ///< Forward unconditionally. + SendDelta, ///< Forward only when the payload has changed since the last send. + }; + + /*! + * \brief Message handling entry loaded from message handling INI. + */ + struct MsgHandling { + MsgAction action = MsgAction::Drop; + RtMessage::MsgId topic = RtMessage::MsgId::ClinicalData; + }; + + void loadMsgHandling(const QString &msgHandlingPath); + + QSettings _settings; + Can::CanInterface _canInterface; + QThread _canThread; + Can::MessageDispatcher _dispatcher; + QMap> _msgCache; + QHash _msgHandling; + RtInterface _agentInterface; + QThread _agentThread; + RtServer _appServer; ///< The Luis application connects here. + quint16 _txSequence = 0; + +private Q_SLOTS: + void onFrameReceive(const QCanBusFrame frame); + void onMessageReceive(const Can::Message &msg); + void onAgentDisconnect(); +}; Index: CloudConnect/config/CloudConnect.ini =================================================================== diff -u --- CloudConnect/config/CloudConnect.ini (revision 0) +++ CloudConnect/config/CloudConnect.ini (revision b915ccc1a72fcca21908c35140af7ac7df1f1f37) @@ -0,0 +1,4 @@ +[Socket] +LocalSocketName=/tmp/leahi_rt.sock +AppSocketName=/tmp/leahi_app.sock +ReconnectIntervalMs=5000 Index: CloudConnect/config/CloudConnectMsgHandling.ini =================================================================== diff -u --- CloudConnect/config/CloudConnectMsgHandling.ini (revision 0) +++ CloudConnect/config/CloudConnectMsgHandling.ini (revision b915ccc1a72fcca21908c35140af7ac7df1f1f37) @@ -0,0 +1,2370 @@ +[0x0000] +msg_id = MSG_ID_UNUSED +action = drop +topic = + +[0x0080] +msg_id = MSG_ID_TESTER_LOGIN_REQUEST +action = drop +topic = + +[0x00A0] +msg_id = MSG_ID_DD_TESTER_LOGIN_REQUEST +action = drop +topic = + +[0x00B0] +msg_id = MSG_ID_FP_TESTER_LOGIN_REQUEST +action = drop +topic = + +[0x0100] +msg_id = MSG_ID_ALARM_STATUS_DATA +action = drop +topic = + +[0x0180] +msg_id = MSG_ID_TD_SOFTWARE_RESET_REQUEST +action = drop +topic = + +[0x01A0] +msg_id = MSG_ID_DD_SOFTWARE_RESET_REQUEST +action = drop +topic = + +[0x01B0] +msg_id = MSG_ID_FP_SOFTWARE_RESET_REQUEST +action = drop +topic = + +[0x0200] +msg_id = MSG_ID_ALARM_TRIGGERED +action = drop +topic = + +[0x0280] +msg_id = MSG_ID_TD_SEND_TEST_CONFIGURATION +action = drop +topic = + +[0x02A0] +msg_id = MSG_ID_DD_SEND_TEST_CONFIGURATION +action = drop +topic = + +[0x02B0] +msg_id = MSG_ID_FP_SEND_TEST_CONFIGURATION +action = drop +topic = + +[0x0300] +msg_id = MSG_ID_ALARM_CLEARED +action = drop +topic = + +[0x0380] +msg_id = MSG_ID_TD_BUBBLE_OVERRIDE_REQUEST +action = drop +topic = + +[0x03A0] +msg_id = MSG_ID_DD_VALVE_PUBLISH_INTERVAL_OVERRIDE_REQUEST +action = drop +topic = + +[0x03B0] +msg_id = MSG_ID_FP_VALVE_PUBLISH_INTERVAL_OVERRIDE_REQUEST +action = drop +topic = + +[0x0400] +msg_id = MSG_ID_ALARM_CONDITION_CLEARED +action = drop +topic = + +[0x0480] +msg_id = MSG_ID_TD_VOLTAGE_PUBLISH_INTERVAL_OVERRIDE_REQUEST +action = drop +topic = + +[0x04A0] +msg_id = MSG_ID_DD_VALVE_STATE_OVERRIDE_REQUEST +action = drop +topic = + +[0x04B0] +msg_id = MSG_ID_FP_VALVE_CMD_STATE_OVERRIDE_REQUEST +action = drop +topic = + +[0x0500] +msg_id = MSG_ID_USER_ALARM_SILENCE_REQUEST +action = drop +topic = + +[0x0580] +msg_id = MSG_ID_TD_VOLTAGE_OVERRIDE_REQUEST +action = drop +topic = + +[0x05A0] +msg_id = MSG_ID_DD_VALVE_SENSED_STATE_OVERRIDE_REQUEST +action = drop +topic = + +[0x05B0] +msg_id = MSG_ID_FP_VALVE_SENSED_STATE_OVERRIDE_REQUEST +action = drop +topic = + +[0x0600] +msg_id = MSG_ID_UI_ALARM_USER_ACTION_REQUEST +action = drop +topic = + +[0x0680] +msg_id = MSG_ID_TD_BUBBLE_PUBLISH_INTERVAL_OVERRIDE_REQUEST +action = drop +topic = + +[0x06A0] +msg_id = MSG_ID_DD_PRESSURE_SENSOR_READINGS_OVERRIDE_REQUEST +action = drop +topic = + +[0x06B0] +msg_id = MSG_ID_FP_FLUID_PUMP_SET_PWM_REQUEST +action = drop +topic = + +[0x0700] +msg_id = MSG_ID_TD_ALARM_INFORMATION_DATA +action = drop +topic = + +[0x0780] +msg_id = MSG_ID_TD_PRESSURE_OVERRIDE_REQUEST +action = drop +topic = + +[0x07A0] +msg_id = MSG_ID_DD_PRESSURE_SENSOR_TEMPERATURE_OVERRIDE_REQUEST +action = drop +topic = + +[0x07B0] +msg_id = MSG_ID_FP_FLUID_PUMP_READ_PWM_OVERRIDE_REQUEST +action = drop +topic = + +[0x0800] +msg_id = MSG_ID_DD_ALARM_INFO_DATA +action = drop +topic = + +[0x0880] +msg_id = MSG_ID_TD_AIR_PUMP_SET_STATE_REQUEST +action = drop +topic = + +[0x08A0] +msg_id = MSG_ID_DD_PRESSURE_SENSOR_READ_COUNTER_OVERRIDE_REQUEST +action = drop +topic = + +[0x08B0] +msg_id = MSG_ID_FP_FLUID_PUMP_SPEED_OVERRIDE_REQUEST +action = drop +topic = + +[0x0900] +msg_id = MSG_ID_UI_ACTIVE_ALARMS_LIST_REQUEST +action = drop +topic = + +[0x0980] +msg_id = MSG_ID_TD_AIR_PUMP_PUBLISH_INTERVAL_OVERRIDE_REQUEST +action = drop +topic = + +[0x09A0] +msg_id = MSG_ID_DD_PRESSURE_SENSOR_ERROR_COUNTER_OVERRIDE_REQUEST +action = drop +topic = + +[0x09B0] +msg_id = MSG_ID_FP_RO_PUMP_PUBLISH_INTERVAL_OVERRIDE_REQUEST +action = drop +topic = + +[0x0A00] +msg_id = MSG_ID_TD_ACTIVE_ALARMS_LIST_REQUEST_RESPONSE +action = drop +topic = + +[0x0A80] +msg_id = MSG_ID_TD_SWITCHES_PUBLISH_INTERVAL_OVERRIDE_REQUEST +action = drop +topic = + +[0x0AA0] +msg_id = MSG_ID_DD_PRESSURE_SENSOR_PUBLISH_INTERVAL_OVERRIDE_REQUEST +action = drop +topic = + +[0x0AB0] +msg_id = MSG_ID_FP_PRESSURE_OVERRIDE_REQUEST +action = drop +topic = + +[0x0B00] +msg_id = MSG_ID_UI_SET_ALARM_AUDIO_VOLUME_LEVEL_CMD_REQUEST +action = drop +topic = + +[0x0B80] +msg_id = MSG_ID_TD_SWITCH_STATE_OVERRIDE_REQUEST +action = drop +topic = + +[0x0BA0] +msg_id = MSG_ID_DD_PRESSURE_SENSOR_FILTER_READINGS_OVERRIDE_REQUEST +action = drop +topic = + +[0x0BB0] +msg_id = MSG_ID_FP_PRESSURE_TEMP_OVERRIDE_REQUEST +action = drop +topic = + +[0x0C00] +msg_id = MSG_ID_TD_ALARM_AUDIO_VOLUME_SET_RESPONSE +action = drop +topic = + +[0x0C80] +msg_id = MSG_ID_TD_OFF_BUTTON_OVERRIDE_REQUEST +action = drop +topic = + +[0x0CA0] +msg_id = MSG_ID_DD_PRESSURE_SENSOR_FILTER_TEMPERATURE_OVERRIDE_REQUEST +action = drop +topic = + +[0x0CB0] +msg_id = MSG_ID_FP_PRESSURE_SENSOR_FILTER_READINGS_OVERRIDE_REQUEST +action = drop +topic = + +[0x0D00] +msg_id = MSG_ID_FW_VERSIONS_REQUEST +action = drop +topic = + +[0x0D80] +msg_id = MSG_ID_TD_STOP_BUTTON_OVERRIDE_REQUEST +action = drop +topic = + +[0x0DA0] +msg_id = MSG_ID_DD_CONDUCTIVITY_SENSOR_READINGS_OVERRIDE_REQUEST +action = drop +topic = + +[0x0DB0] +msg_id = MSG_ID_FP_PRESSURE_SENSOR_FILTER_TEMPERATURE_OVERRIDE_REQUEST +action = drop +topic = + +[0x0E00] +msg_id = MSG_ID_TD_VERSION_RESPONSE +action = drop +topic = + +[0x0E80] +msg_id = MSG_ID_TD_ALARM_LAMP_PATTERN_OVERRIDE_REQUEST +action = drop +topic = + +[0x0EA0] +msg_id = MSG_ID_DD_CONDUCTIVITY_SENSOR_TEMPERATURE_OVERRIDE_REQUEST +action = drop +topic = + +[0x0EB0] +msg_id = MSG_ID_FP_PRESSURE_PUBLISH_INTERVAL_OVERRIDE_REQUEST +action = drop +topic = + +[0x0F00] +msg_id = MSG_ID_DD_VERSION_RESPONSE +action = drop +topic = + +[0x0F80] +msg_id = MSG_ID_TD_ALARM_AUDIO_LEVEL_OVERRIDE_REQUEST +action = drop +topic = + +[0x0FA0] +msg_id = MSG_ID_DD_CONDUCTIVITY_SENSOR_CONDUCTIVITY_READ_COUNTER_OVERRIDE_REQUEST +action = drop +topic = + +[0x0FB0] +msg_id = MSG_ID_FP_LEVEL_PUBLISH_INTERVAL_OVERRIDE_REQUEST +action = drop +topic = + +[0x1000] +msg_id = MSG_ID_UI_CHECK_IN +action = drop +topic = + +[0x1080] +msg_id = MSG_ID_TD_ALARM_AUDIO_CURRENT_HG_OVERRIDE_REQUEST +action = drop +topic = + +[0x10A0] +msg_id = MSG_ID_DD_CONDUCTIVITY_SENSOR_CONDUCTIVITY_ERROR_COUNTER_OVERRIDE_REQUEST +action = drop +topic = + +[0x10B0] +msg_id = MSG_ID_FP_FLOATER_LEVEL_OVERRIDE_REQUEST +action = drop +topic = + +[0x1100] +msg_id = MSG_ID_TD_BLOOD_PUMP_DATA +action = drop +topic = + +[0x1180] +msg_id = MSG_ID_TD_ALARM_AUDIO_CURRENT_LG_OVERRIDE_REQUEST +action = drop +topic = + +[0x11A0] +msg_id = MSG_ID_DD_CONDUCTIVITY_SENSOR_PUBLISH_INTERVAL_OVERRIDE_REQUEST +action = drop +topic = + +[0x11B0] +msg_id = MSG_ID_FP_FLOWS_PUBLISH_INTERVAL_OVERRIDE_REQUEST +action = drop +topic = + +[0x1200] +msg_id = MSG_ID_TD_OP_MODE_DATA +action = drop +topic = + +[0x1280] +msg_id = MSG_ID_TD_BACKUP_ALARM_AUDIO_CURRENT_OVERRIDE_REQUEST +action = drop +topic = + +[0x12A0] +msg_id = MSG_ID_DD_CONCENTRATE_PUMP_PUBLISH_INTERVAL_OVERRIDE_REQUEST +action = drop +topic = + +[0x12B0] +msg_id = MSG_ID_FP_FLOW_RATE_OVERRIDE_REQUEST +action = drop +topic = + +[0x1300] +msg_id = MSG_ID_DD_OP_MODE_DATA +action = drop +topic = + +[0x1380] +msg_id = MSG_ID_TD_PRESSURE_PUBLISH_INTERVAL_OVERRIDE_REQUEST +action = drop +topic = + +[0x13A0] +msg_id = MSG_ID_DD_CONCENTRATE_PUMP_TARGET_SPEED_OVERRIDE_REQUEST +action = drop +topic = + +[0x13B0] +msg_id = MSG_ID_FP_FLOW_TEMP_OVERRIDE_REQUEST +action = drop +topic = + +[0x1400] +msg_id = MSG_ID_DD_COMMAND_RESPONSE +action = drop +topic = + +[0x1480] +msg_id = MSG_ID_TD_AIR_TRAP_LEVEL_OVERRIDE_REQUEST +action = drop +topic = + +[0x14A0] +msg_id = MSG_ID_DD_CONCENTRATE_PUMP_MEASURED_SPEED_OVERRIDE_REQUEST +action = drop +topic = + +[0x14B0] +msg_id = MSG_ID_FP_CONDUCTIVITY_PUBLISH_INTERVAL_OVERRIDE_REQUEST +action = drop +topic = + +[0x1500] +msg_id = MSG_ID_TD_UI_VERSION_INFO_REQUEST +action = drop +topic = + +[0x1580] +msg_id = MSG_ID_TD_AIR_TRAP_LEVEL_RAW_OVERRIDE_REQUEST +action = drop +topic = + +[0x15A0] +msg_id = MSG_ID_DD_CONCENTRATE_PUMP_PARKED_OVERRIDE_REQUEST +action = drop +topic = + +[0x15B0] +msg_id = MSG_ID_FP_CONDUCTIVITY_SENSOR_READINGS_OVERRIDE_REQUEST +action = drop +topic = + +[0x1600] +msg_id = MSG_ID_UI_VERSION_INFO_RESPONSE +action = drop +topic = + +[0x1680] +msg_id = MSG_ID_TD_AIR_TRAP_PUBLISH_INTERVAL_OVERRIDE_REQUEST +action = drop +topic = + +[0x16A0] +msg_id = MSG_ID_DD_CONCENTRATE_PUMP_PARK_FAULT_OVERRIDE_REQUEST +action = drop +topic = + +[0x16B0] +msg_id = MSG_ID_FP_CONDUCTIVITY_SENSOR_TEMPERATURE_OVERRIDE_REQUEST +action = drop +topic = + +[0x1700] +msg_id = MSG_ID_TD_EVENT +action = drop +topic = + +[0x1780] +msg_id = MSG_ID_TD_3_WAY_VALVE_SET_STATE_REQUEST +action = drop +topic = + +[0x17A0] +msg_id = MSG_ID_DD_CONCENTRATE_PUMP_PARK_REQUEST_OVERRIDE_REQUEST +action = drop +topic = + +[0x17B0] +msg_id = MSG_ID_FP_CONDUCTIVITY_SENSOR_CONDUCTIVITY_READ_COUNT_OVERRIDE_REQUEST +action = drop +topic = + +[0x1800] +msg_id = MSG_ID_DD_EVENT +action = drop +topic = + +[0x1880] +msg_id = MSG_ID_TD_ROTARY_PINCH_VALVE_SET_POS_REQUEST +action = drop +topic = + +[0x18A0] +msg_id = MSG_ID_DD_TEMPERATURE_SENSOR_PUBLISH_INTERVAL_OVERRIDE_REQUEST +action = drop +topic = + +[0x18B0] +msg_id = MSG_ID_FP_CONDUCTIVITY_SENSOR_CONDUCTIVITY_ERROR_COUNT_OVERRIDE_REQUEST +action = drop +topic = + +[0x1900] +msg_id = MSG_ID_TD_DD_ALARMS_REQUEST +action = drop +topic = + +[0x1980] +msg_id = MSG_ID_TD_ROTARY_PINCH_VALVE_STATUS_OVERRIDE_REQUEST +action = drop +topic = + +[0x19A0] +msg_id = MSG_ID_DD_TEMPERATURE_SENSOR_MEASURED_TEMPERATURE_OVERRIDE_REQUEST +action = drop +topic = + +[0x19B0] +msg_id = MSG_ID_FP_TEMPERATURE_OVERRIDE_REQUEST +action = drop +topic = + +[0x1A00] +msg_id = MSG_ID_UI_TD_RESET_IN_SERVICE_MODE_REQUEST +action = drop +topic = + +[0x1A80] +msg_id = MSG_ID_TD_ROTARY_PINCH_VALVE_POSITION_OVERRIDE_REQUEST +action = drop +topic = + +[0x1AA0] +msg_id = MSG_ID_DD_TEMPERATURE_SENSOR_READ_COUNTER_OVERRIDE_REQUEST +action = drop +topic = + +[0x1AB0] +msg_id = MSG_ID_FP_FILTERED_FLOW_RATE_OVERRIDE_REQUEST +action = drop +topic = + +[0x1B00] +msg_id = MSG_ID_DD_VALVES_STATES_DATA +action = drop +topic = + +[0x1B80] +msg_id = MSG_ID_TD_VALVES_PUBLISH_INTERVAL_OVERRIDE_REQUEST +action = drop +topic = + +[0x1BA0] +msg_id = MSG_ID_DD_TEMPERATURE_SENSOR_FILTERED_TEMP_OVERRIDE_REQUEST +action = drop +topic = + +[0x1BB0] +msg_id = MSG_ID_FP_FILTERED_FLOW_TEMP_OVERRIDE_REQUEST +action = drop +topic = + +[0x1C00] +msg_id = MSG_ID_DD_PRESSURES_DATA +action = drop +topic = + +[0x1C80] +msg_id = MSG_ID_TD_ALARM_STATUS_PUBLISH_INTERVAL_OVERRIDE_REQUEST +action = drop +topic = + +[0x1CA0] +msg_id = MSG_ID_DD_SET_OPERATION_SUB_MODE_OVERRIDE_REQUEST +action = drop +topic = + +[0x1CB0] +msg_id = MSG_ID_FP_PRE_GEN_PUBLISH_INTERVAL_OVERRIDE_REQUEST +action = drop +topic = + +[0x1D00] +msg_id = MSG_ID_TD_VOLTAGES_DATA +action = drop +topic = + +[0x1D80] +msg_id = MSG_ID_TD_ALARM_INFO_PUBLISH_INTERVAL_OVERRIDE_REQUEST +action = drop +topic = + +[0x1DA0] +msg_id = MSG_ID_DD_DIALYSATE_PUMPS_PUBLISH_INTERVAL_OVERRIDE_REQUEST +action = drop +topic = + +[0x1DB0] +msg_id = MSG_ID_FP_SET_OPERATION_MODE_REQUEST +action = drop +topic = + +[0x1E00] +msg_id = MSG_ID_TD_BUBBLES_DATA +action = drop +topic = + +[0x1E80] +msg_id = MSG_ID_TD_ALARM_START_TIME_OVERRIDE_REQUEST +action = drop +topic = + +[0x1EA0] +msg_id = MSG_ID_DD_DIALYSATE_PUMPS_TARGET_SPEED_OVERRIDE_REQUEST +action = drop +topic = + +[0x1EB0] +msg_id = MSG_ID_FP_OPERATION_MODE_PUBLISH_INTERVAL_OVERRIDE_REQUEST +action = drop +topic = + +[0x1F00] +msg_id = MSG_ID_DD_CONDUCTIVITY_DATA +action = drop +topic = + +[0x1F80] +msg_id = MSG_ID_TD_ALARM_CLEAR_ALL_ALARMS_REQUEST +action = drop +topic = + +[0x1FA0] +msg_id = MSG_ID_DD_DIALYSATE_PUMPS_MEASURED_SPEED_OVERRIDE_REQUEST +action = drop +topic = + +[0x1FB0] +msg_id = MSG_ID_FP_TEMPERATURE_SENSOR_PUBLISH_INTERVAL_OVERRIDE_REQUEST +action = drop +topic = + +[0x2000] +msg_id = MSG_ID_TD_AIR_PUMP_DATA +action = drop +topic = + +[0x2080] +msg_id = MSG_ID_TD_WATCHDOG_OVERRIDE_REQUEST +action = drop +topic = + +[0x20A0] +msg_id = MSG_ID_DD_DIALYSATE_PUMPS_TARGET_PRESSURE_OVERRIDE_REQUEST +action = drop +topic = + +[0x20B0] +msg_id = MSG_ID_FP_RO_PUMP_TARGET_PRESSURE_OVERRIDE_REQUEST +action = drop +topic = + +[0x2100] +msg_id = MSG_ID_TD_SWITCHES_DATA +action = drop +topic = + +[0x2180] +msg_id = MSG_ID_TD_ALARM_STATE_OVERRIDE_REQUEST +action = drop +topic = + +[0x21A0] +msg_id = MSG_ID_DD_DIALYSATE_PUMPS_MEASURED_CURRENT_OVERRIDE_REQUEST +action = drop +topic = + +[0x21B0] +msg_id = MSG_ID_FP_RO_PUMP_TARGET_FLOW_OVERRIDE_REQUEST +action = drop +topic = + +[0x2200] +msg_id = MSG_ID_POWER_OFF_WARNING +action = drop +topic = + +[0x2280] +msg_id = MSG_ID_TD_SAFETY_SHUTDOWN_OVERRIDE_REQUEST +action = drop +topic = + +[0x22A0] +msg_id = MSG_ID_DD_DIALYSATE_PUMPS_MEASURED_DIRECTION_OVERRIDE_REQUEST +action = drop +topic = + +[0x22B0] +msg_id = MSG_ID_FP_RO_PUMP_TARGET_PWM_OVERRIDE_REQUEST +action = drop +topic = + +[0x2300] +msg_id = MSG_ID_OFF_BUTTON_PRESS_REQUEST +action = drop +topic = + +[0x2380] +msg_id = MSG_ID_TD_PINCH_VALVE_SET_POSITION_REQUEST +action = drop +topic = + +[0x23A0] +msg_id = MSG_ID_DD_HEATERS_PUBLISH_INTERVAL_OVERRIDE_REQUEST +action = drop +topic = + +[0x23B0] +msg_id = MSG_ID_FP_BOOST_PUMP_PUBLISH_INTERVAL_OVERRIDE_REQUEST +action = drop +topic = + +[0x2400] +msg_id = MSG_ID_TD_PRESSURE_DATA +action = drop +topic = + +[0x2480] +msg_id = MSG_ID_TD_PINCH_VALVE_HOME_REQUEST +action = drop +topic = + +[0x24A0] +msg_id = MSG_ID_DD_HEATERS_DUTY_CYCLE_OVERRIDE_REQUEST +action = drop +topic = + +[0x24B0] +msg_id = MSG_ID_FP_BOOST_PUMP_TARGET_PRESSURE_OVERRIDE_REQUEST +action = drop +topic = + +[0x2500] +msg_id = MSG_ID_DD_CONCENTRATE_PUMP_DATA +action = drop +topic = + +[0x2580] +msg_id = MSG_ID_TD_BLOOD_PUMP_PUBLISH_INTERVAL_OVERRIDE_REQUEST +action = drop +topic = + +[0x25A0] +msg_id = MSG_ID_DD_LEVELS_PUBLISH_INTERVAL_OVERRIDE_REQUEST +action = drop +topic = + +[0x25B0] +msg_id = MSG_ID_FP_BOOST_PUMP_TARGET_FLOW_OVERRIDE_REQUEST +action = drop +topic = + +[0x2600] +msg_id = MSG_ID_DD_TEMPERATURE_DATA +action = drop +topic = + +[0x2680] +msg_id = MSG_ID_TD_BLOOD_PUMP_SET_FLOW_RATE_REQUEST +action = drop +topic = + +[0x26A0] +msg_id = MSG_ID_DD_LEVELS_STATUS_OVERRIDE_REQUEST +action = drop +topic = + +[0x26B0] +msg_id = MSG_ID_FP_BOOST_PUMP_TARGET_PWM_OVERRIDE_REQUEST +action = drop +topic = + +[0x2700] +msg_id = MSG_ID_DIALYSATE_PUMPS_DATA +action = drop +topic = + +[0x2780] +msg_id = MSG_ID_TD_BLOOD_PUMP_SET_SPEED_REQUEST +action = drop +topic = + +[0x27B0] +msg_id = MSG_ID_FP_BOOST_PUMP_STOP_REQUEST +action = drop +topic = + +[0x2800] +msg_id = MSG_ID_DD_HEATERS_DATA +action = drop +topic = + +[0x2880] +msg_id = MSG_ID_TD_BLOOD_PUMP_MEASURED_FLOW_RATE_OVERRIDE_REQUEST +action = drop +topic = + +[0x28A0] +msg_id = MSG_ID_DD_OP_MODE_STATUS_OVERRIDE_REQUEST +action = drop +topic = + +[0x28B0] +msg_id = MSG_ID_FP_RO_PUMP_STOP_REQUEST +action = drop +topic = + +[0x2900] +msg_id = MSG_ID_DD_LEVEL_DATA +action = drop +topic = + +[0x2980] +msg_id = MSG_ID_TD_BLOOD_PUMP_MEASURED_MOTOR_SPEED_OVERRIDE_REQUEST +action = drop +topic = + +[0x29A0] +msg_id = MSG_ID_DD_SET_OPERATION_MODE_OVERRIDE_REQUEST +action = drop +topic = + +[0x29B0] +msg_id = MSG_ID_FP_SAFETY_SHUTDOWN_OVERRIDE_REQUEST +action = drop +topic = + +[0x2A00] +msg_id = MSG_ID_TD_AIR_TRAP_DATA +action = drop +topic = + +[0x2A80] +msg_id = MSG_ID_TD_BLOOD_PUMP_MEASURED_ROTOR_SPEED_OVERRIDE_REQUEST +action = drop +topic = + +[0x2AA0] +msg_id = MSG_ID_DD_UF_DATA_PUBLISH_OVERRIDE_REQUEST +action = drop +topic = + +[0x2AB0] +msg_id = MSG_ID_FP_PERMEATE_TANK_PUBLISH_INTERVAL_OVERRIDE_REQUEST +action = drop +topic = + +[0x2B00] +msg_id = MSG_ID_TD_VALVES_DATA +action = drop +topic = + +[0x2B80] +msg_id = MSG_ID_TD_BLOOD_PUMP_ROTOR_COUNT_OVERRIDE_REQUEST +action = drop +topic = + +[0x2BA0] +msg_id = MSG_ID_DD_DIALYSATE_PUMPS_START_STOP_OVERRIDE_REQUEST +action = drop +topic = + +[0x2BB0] +msg_id = MSG_ID_FP_ALARM_STATE_OVERRIDE_REQUEST +action = drop +topic = + +[0x2C00] +msg_id = MSG_ID_FP_EVENT +action = drop +topic = + +[0x2C80] +msg_id = MSG_ID_TD_TMP_PRESSURE_OVERRIDE_REQUEST +action = drop +topic = + +[0x2CA0] +msg_id = MSG_ID_DD_GEND_MODE_DATA_PUBLISH_OVERRIDE_REQUEST +action = drop +topic = + +[0x2CB0] +msg_id = MSG_ID_FP_ALARM_CLEAR_ALL_ALARMS_REQUEST +action = drop +topic = + +[0x2D00] +msg_id = MSG_ID_FP_ALARM_INFO_DATA +action = drop +topic = + +[0x2D80] +msg_id = MSG_ID_TD_REQ_CURRENT_TREATMENT_PARAMETERS +action = drop +topic = + +[0x2DA0] +msg_id = MSG_ID_DD_CONCENTRATE_PUMPS_START_STOP_OVERRIDE_REQUEST +action = drop +topic = + +[0x2DB0] +msg_id = MSG_ID_FP_SET_TEST_CONFIGURATION +action = drop +topic = + +[0x2E00] +msg_id = MSG_ID_DD_BAL_CHAMBER_DATA +action = drop +topic = + +[0x2E80] +msg_id = MSG_ID_TD_RSP_CURRENT_TREATMENT_PARAMETERS +action = drop +topic = + +[0x2EA0] +msg_id = MSG_ID_DD_HEATERS_START_STOP_OVERRIDE_REQUEST +action = drop +topic = + +[0x2EB0] +msg_id = MSG_ID_FP_GET_TEST_CONFIGURATION +action = drop +topic = + +[0x2F00] +msg_id = MSG_ID_DD_GEN_DIALYSATE_MODE_DATA +action = drop +topic = + +[0x2F80] +msg_id = MSG_ID_TD_SET_TREATMENT_PARAMETER +action = drop +topic = + +[0x2FA0] +msg_id = MSG_ID_DD_VALVES_OPEN_CLOSE_STATE_OVERRIDE_REQUEST +action = drop +topic = + +[0x2FB0] +msg_id = MSG_ID_FP_RESET_ALL_TEST_CONFIGURATIONS +action = drop +topic = + +[0x3000] +msg_id = MSG_ID_DD_GEN_DIALYSATE_REQUEST_DATA +action = drop +topic = + +[0x3080] +msg_id = MSG_ID_TD_OP_MODE_PUBLISH_INTERVAL_OVERRIDE_REQUEST +action = drop +topic = + +[0x30B0] +msg_id = MSG_ID_FP_INLET_PRES_PUBLISH_INTERVAL_OVERRIDE_REQUEST +action = drop +topic = + +[0x3100] +msg_id = MSG_ID_FP_VALVES_STATES_DATA +action = drop +topic = + +[0x3180] +msg_id = MSG_ID_TD_OP_MODE_OVERRIDE_REQUEST +action = drop +topic = + +[0x31A0] +msg_id = MSG_ID_DD_BAL_CHAMBER_DATA_PUBLISH_OVERRIDE_REQUEST +action = drop +topic = + +[0x31B0] +msg_id = MSG_ID_FP_INLET_PRES_CHECK_TIME_OVERRIDE_REQUEST +action = drop +topic = + +[0x3200] +msg_id = MSG_ID_FP_RO_PUMP_DATA +action = drop +topic = + +[0x3280] +msg_id = MSG_ID_TD_EJECTOR_MOTOR_SET_SPEED_REQUEST +action = drop +topic = + +[0x32A0] +msg_id = MSG_ID_DD_BAL_CHAMBER_SWITCH_FREQ_OVERRIDE_REQUEST +action = drop +topic = + +[0x32B0] +msg_id = MSG_ID_FP_FILTERED_COND_SENSOR_READINGS_OVERRIDE_REQUEST +action = drop +topic = + +[0x3300] +msg_id = MSG_ID_FP_OP_MODE_DATA +action = drop +topic = + +[0x3380] +msg_id = MSG_ID_TD_EJECTOR_COMMAND +action = drop +topic = + +[0x33A0] +msg_id = MSG_ID_DD_DIAL_DELIVERY_IN_PROGRESS_OVERRIDE_REQUEST +action = drop +topic = + +[0x33B0] +msg_id = MSG_ID_FP_FILTERED_COND_SENSOR_TEMPERATURE_OVERRIDE_REQUEST +action = drop +topic = + +[0x3400] +msg_id = MSG_ID_FP_PRESSURES_DATA +action = drop +topic = + +[0x3480] +msg_id = MSG_ID_TD_EJECTOR_PUBLISH_INTERVAL_OVERRIDE_REQUEST +action = drop +topic = + +[0x34A0] +msg_id = MSG_ID_DD_DIAL_DELIVERY_GOOD_TO_DELIVER_OVERRIDE_REQUEST +action = drop +topic = + +[0x34B0] +msg_id = MSG_ID_FP_SET_START_STOP_OVERRIDE_REQUEST +action = drop +topic = + +[0x3500] +msg_id = MSG_ID_FP_LEVEL_DATA +action = drop +topic = + +[0x3580] +msg_id = MSG_ID_TD_SET_AIR_TRAP_CONTROL +action = drop +topic = + +[0x35A0] +msg_id = MSG_ID_DD_HEATERS_TARGET_TEMPERATURE_OVERRIDE_REQUEST +action = drop +topic = + +[0x35B0] +msg_id = MSG_ID_FP_RO_REJECTION_RATIO_PUBLISH_INTERVAL_OVERRIDE_REQUEST +action = drop +topic = + +[0x3600] +msg_id = MSG_ID_FP_FLOW_DATA +action = drop +topic = + +[0x3680] +msg_id = MSG_ID_TD_HOME_BLOOD_PUMP +action = drop +topic = + +[0x36A0] +msg_id = MSG_ID_DD_BC_VALVE_STATES_OVERRIDE_REQUEST +action = drop +topic = + +[0x36B0] +msg_id = MSG_ID_FP_RO_FILTERED_REJECTION_RATIO_OVERRIDE_REQUEST +action = drop +topic = + +[0x3700] +msg_id = MSG_ID_FP_CONDUCTIVITY_DATA +action = drop +topic = + +[0x3780] +msg_id = MSG_ID_TD_BLOOD_FLOW_STROKE_VOLUME_OVERRIDE_REQUEST +action = drop +topic = + +[0x37A0] +msg_id = MSG_ID_DD_BC_SWITCH_ONLY_START_STOP_OVERRIDE_REQUEST +action = drop +topic = + +[0x37B0] +msg_id = MSG_ID_FP_RO_GET_CALCULATED_DUTY_CYCLE_REQUEST +action = drop +topic = + +[0x3800] +msg_id = MSG_ID_AVAILABLE_6 +action = drop +topic = + +[0x3880] +msg_id = MSG_ID_TD_BLOOD_FLOW_WEAR_A_TERM_OVERRIDE_REQUEST +action = drop +topic = + +[0x38A0] +msg_id = MSG_ID_DD_HYD_CHAMBER_TARGET_TEMP_OVERRIDE_REQUEST +action = drop +topic = + +[0x38B0] +msg_id = MSG_ID_FP_RO_CALCULATED_DUTY_CYCLE_RESPONSE +action = drop +topic = + +[0x3900] +msg_id = MSG_ID_FP_TEMPERATURE_DATA +action = drop +topic = + +[0x3980] +msg_id = MSG_ID_TD_BLOOD_FLOW_WEAR_B_TERM_OVERRIDE_REQUEST +action = drop +topic = + +[0x39A0] +msg_id = MSG_ID_DD_ACID_DOSING_VOLUME_OVERRIDE_REQUEST +action = drop +topic = + +[0x39B0] +msg_id = MSG_ID_FP_FLUSH_FILTER_PUBLISH_INTERVAL_OVERRIDE_REQUEST +action = drop +topic = + +[0x3A00] +msg_id = MSG_ID_FP_HEATER_DATA +action = drop +topic = + +[0x3A80] +msg_id = MSG_ID_TD_SET_TEST_CONFIGURATION +action = drop +topic = + +[0x3AA0] +msg_id = MSG_ID_DD_BICARB_DOSING_VOLUME_OVERRIDE_REQUEST +action = drop +topic = + +[0x3AB0] +msg_id = MSG_ID_FP_FLUSH_FILTER_TIMER_OVERRIDE_REQUEST +action = drop +topic = + +[0x3B00] +msg_id = MSG_ID_TD_TREATMENT_TIME_DATA +action = drop +topic = + +[0x3B80] +msg_id = MSG_ID_TD_GET_TEST_CONFIGURATION +action = drop +topic = + +[0x3BA0] +msg_id = MSG_ID_DD_GEND_EXEC_STATE_OVERRIDE_REQUEST +action = drop +topic = + +[0x3BB0] +msg_id = MSG_ID_FP_FLUSH_PERMEATE_PUBLISH_INTERVAL_OVERRIDE_REQUEST +action = drop +topic = + +[0x3C00] +msg_id = MSG_ID_TD_TREATMENT_STATE_DATA +action = drop +topic = + +[0x3C80] +msg_id = MSG_ID_TD_RESET_ALL_TEST_CONFIGURATIONS +action = drop +topic = + +[0x3CA0] +msg_id = MSG_ID_DD_HEATERS_PWM_PERIOD_OVERIDE_REQUEST +action = drop +topic = + +[0x3CB0] +msg_id = MSG_ID_FP_FLUSH_PERMEATE_TIMER_OVERRIDE_REQUEST +action = drop +topic = + +[0x3D00] +msg_id = MSG_ID_TD_FLUID_BOLUS_DATA +action = drop +topic = + +[0x3D80] +msg_id = MSG_ID_TD_AIR_PUMP_POWER_RAISE_OVERRIDE_REQUEST +action = drop +topic = + +[0x3DA0] +msg_id = MSG_ID_DD_PRE_GEND_MODE_DATA_PUBLISH_OVERRIDE_REQUEST +action = drop +topic = + +[0x3DB0] +msg_id = MSG_ID_FP_FLUSH_PERMEATE_ALARM_TIMER_OVERRIDE_REQUEST +action = drop +topic = + +[0x3E00] +msg_id = MSG_ID_TD_ULTRAFILTRATION_DATA +action = drop +topic = + +[0x3E80] +msg_id = MSG_ID_TD_AIR_PUMP_POWER_LOWER_OVERRIDE_REQUEST +action = drop +topic = + +[0x3EA0] +msg_id = MSG_ID_DD_POST_GEND_MODE_DATA_PUBLISH_OVERRIDE_REQUEST +action = drop +topic = + +[0x3EB0] +msg_id = MSG_ID_FP_FLUSH_CONCENTRATE_PUBLISH_INTERVAL_OVERRIDE_REQUEST +action = drop +topic = + +[0x3F00] +msg_id = MSG_ID_UI_TREATMENT_PARAMS_TO_VALIDATE +action = drop +topic = + +[0x3F80] +msg_id = MSG_ID_TD_HARD_STOP_BLOOD_PUMP +action = drop +topic = + +[0x3FA0] +msg_id = MSG_ID_DD_SEND_BLOOD_LEAK_EMB_MODE_RESPONSE +action = drop +topic = + +[0x3FB0] +msg_id = MSG_ID_FP_FLUSH_CONCENTRATE_TIMER_OVERRIDE_REQUEST +action = drop +topic = + +[0x4000] +msg_id = MSG_ID_TD_RESP_TREATMENT_PARAMS_TO_VALIDATE +action = drop +topic = + +[0x4080] +msg_id = MSG_ID_TD_BARO_MFG_CRC_OVERRIDE +action = drop +topic = + +[0x40A0] +msg_id = MSG_ID_DD_SPENT_CHAMB_FILL_DATA_PUBLISH_OVERRIDE_REQUEST +action = drop +topic = + +[0x40B0] +msg_id = MSG_ID_FP_DEF_FLUSH_FILTER_PUBLISH_INTERVAL_OVERRIDE_REQUEST +action = drop +topic = + +[0x4100] +msg_id = MSG_ID_UI_TREATMENT_UF_VOLUME_VALIDATE_REQUEST +action = drop +topic = + +[0x4180] +msg_id = MSG_ID_TD_BARO_PRESSURE_OVERRIDE +action = drop +topic = + +[0x41A0] +msg_id = MSG_ID_DD_AVAILABLE_TO_USE_4 +action = drop +topic = + +[0x41B0] +msg_id = MSG_ID_FP_DEF_FLUSH_FILTER_TIMER_OVERRIDE_REQUEST +action = drop +topic = + +[0x4200] +msg_id = MSG_ID_TD_TREATMENT_UF_VOLUME_VALIDATE_RESPONSE +action = drop +topic = + +[0x4280] +msg_id = MSG_ID_TD_TEMPERATURE_OVERRIDE +action = drop +topic = + +[0x42A0] +msg_id = MSG_ID_DD_SAFETY_SHUTDOWN_OVERRIDE_REQUEST +action = drop +topic = + +[0x42B0] +msg_id = MSG_ID_FP_DEF_PRE_GEN_PUBLISH_INTERVAL_OVERRIDE_REQUEST +action = drop +topic = + +[0x4300] +msg_id = MSG_ID_TD_TREATMENT_PARAM_RANGES +action = drop +topic = + +[0x4380] +msg_id = MSG_ID_TD_TEMPERATURE_PUBLISH_INTERVAL_OVERRIDE_REQUEST +action = drop +topic = + +[0x43A0] +msg_id = MSG_ID_DD_SET_TEST_CONFIGURATION +action = drop +topic = + +[0x43B0] +msg_id = MSG_ID_FP_DEF_GEN_PUBLISH_INTERVAL_OVERRIDE_REQUEST +action = drop +topic = + +[0x4400] +msg_id = MSG_ID_TD_VALIDATED_TREATMENT_PARAMS +action = drop +topic = + +[0x4480] +msg_id = MSG_ID_TD_EJECTOR_OPT_SENSOR_OVERRIDE_REQUEST +action = drop +topic = + +[0x44A0] +msg_id = MSG_ID_DD_GET_TEST_CONFIGURATION +action = drop +topic = + +[0x44B0] +msg_id = MSG_ID_FP_DEF_STATUS_REQUEST +action = drop +topic = + +[0x4500] +msg_id = MSG_ID_UI_INITIATE_TREATMENT_WORKFLOW +action = drop +topic = + +[0x4580] +msg_id = MSG_ID_TD_BLOOD_PRIME_VOLUME_OVERRIDE +action = drop +topic = + +[0x45A0] +msg_id = MSG_ID_DD_RESET_ALL_TEST_CONFIGURATIONS +action = drop +topic = + +[0x45B0] +msg_id = MSG_ID_FP_DEF_STATUS_RESPONSE +action = drop +topic = + +[0x4600] +msg_id = MSG_ID_TD_RESP_INITIATE_TREATMENT_WORKFLOW +action = drop +topic = + +[0x4680] +msg_id = MSG_ID_TD_BLOOD_PRIME_PUBLISH_INTERVAL_OVERRIDE_REQUEST +action = drop +topic = + +[0x46A0] +msg_id = MSG_ID_AVAILABLE_1 +action = drop +topic = + +[0x46B0] +msg_id = MSG_ID_FP_SET_OPERATION_SUB_MODE_REQUEST +action = drop +topic = + +[0x4700] +msg_id = MSG_ID_UI_UF_PAUSE_RESUME_REQUEST +action = drop +topic = + +[0x4780] +msg_id = MSG_ID_TD_ENABLE_VENOUS_BUBBLE_ALARM +action = drop +topic = + +[0x47A0] +msg_id = MSG_ID_DD_BLOOD_LEAK_DATA_PUBLISH_INTERVAL_OVERRIDE_REQUEST +action = drop +topic = + +[0x47B0] +msg_id = MSG_ID_FP_CONDUCTIVITY_SENSOR_RESISTANCE_OVERRIDE_REQUEST +action = drop +topic = + +[0x4800] +msg_id = MSG_ID_TD_UF_PAUSE_RESUME_RESPONSE +action = drop +topic = + +[0x4880] +msg_id = MSG_ID_TD_SYRINGE_PUMP_OPERATION_REQUEST +action = drop +topic = + +[0x48A0] +msg_id = MSG_ID_DD_BLOOD_LEAK_STATUS_OVERRIDE_REQUEST +action = drop +topic = + +[0x48B0] +msg_id = MSG_ID_FP_SET_RECOVERY_VALVES_REQUEST +action = drop +topic = + +[0x4900] +msg_id = MSG_ID_FP_GEN_WATER_MODE_DATA +action = drop +topic = + +[0x4980] +msg_id = MSG_ID_HD_SYRINGE_PUMP_PUBLISH_INTERVAL_OVERRIDE +action = drop +topic = + +[0x49A0] +msg_id = MSG_ID_DD_BLOOD_LEAK_SET_TO_EMBEDDED_MODE_REQUEST +action = drop +topic = + +[0x49B0] +msg_id = MSG_ID_FP_BOOST_PUMP_INSTALL_STATUS_REQUEST +action = drop +topic = + +[0x4A00] +msg_id = MSG_ID_DD_PRE_GEN_DIALYSATE_STATE_DATA +action = drop +topic = + +[0x4AA0] +msg_id = MSG_ID_DD_BLOOD_LEAK_SET_EMBEDDED_MODE_CMD_REQUEST +action = drop +topic = + +[0x4AB0] +msg_id = MSG_ID_FP_BOOST_PUMP_INSTALL_STATUS_RESPONSE +action = drop +topic = + +[0x4B00] +msg_id = MSG_ID_DD_POST_GEN_DIALYSATE_STATE_DATA +action = drop +topic = + +[0x4BA0] +msg_id = MSG_ID_DD_BLOOD_LEAK_EMBEDDED_MODE_INFO_OVERRIDE_REQUEST +action = drop +topic = + +[0x4C00] +msg_id = MSG_ID_DD_PRE_GEN_DIALYSATE_REQUEST_DATA +action = drop +topic = + +[0x4CA0] +msg_id = MSG_ID_DD_BLOOD_LEAK_INTENSITY_MOVING_AVERAGE_OVERRIDE_REQUEST +action = drop +topic = + +[0x4CB0] +msg_id = MSG_ID_FP_CONDUCTIVITY_SENSOR_VERSION_RESPONSE +action = drop +topic = + +[0x4D00] +msg_id = MSG_ID_FP_PRE_GEN_WATER_MODE_DATA +action = drop +topic = + +[0x4DA0] +msg_id = MSG_ID_DD_BLOOD_LEAK_ZEROING_INTERVAL_IN_MS_OVERRIDE_REQUEST +action = drop +topic = + +[0x4E00] +msg_id = MSG_ID_TD_EJECTOR_DATA +action = drop +topic = + +[0x4EA0] +msg_id = MSG_ID_DD_BLOOD_LEAK_ZERO_REQUEST +action = drop +topic = + +[0x4EB0] +msg_id = MSG_ID_FP_CONDUCTIVITY_SENSOR_CAL_RESPONSE +action = drop +topic = + +[0x4F00] +msg_id = MSG_ID_TD_TREATMENT_SET_POINTS +action = drop +topic = + +[0x4FA0] +msg_id = MSG_ID_DD_FILTERED_COND_SENSOR_READINGS_OVERRIDE_REQUEST +action = drop +topic = + +[0x5000] +msg_id = MSG_ID_FP_BOOST_PUMP_DATA +action = drop +topic = + +[0x5080] +msg_id = MSG_ID_TD_SYRINGE_PUMP_RATE_OVERRIDE_REQUEST +action = drop +topic = + +[0x50A0] +msg_id = MSG_ID_DD_FILTERED_COND_SENSOR_TEMPERATURE_OVERRIDE_REQUEST +action = drop +topic = + +[0x5100] +msg_id = MSG_ID_TD_SERIAL_RESPONSE +action = drop +topic = + +[0x5180] +msg_id = MSG_ID_TD_SYRINGE_PUMP_FORCE_OVERRIDE_REQUEST +action = drop +topic = + +[0x51A0] +msg_id = MSG_ID_DD_VOLTAGE_DATA_PUBLISH_INTERVAL_OVERRIDE_REQUEST +action = drop +topic = + +[0x5200] +msg_id = MSG_ID_DD_SERIAL_RESPONSE +action = drop +topic = + +[0x5280] +msg_id = MSG_ID_TD_SYRINGE_PUMP_HOME_OVERRIDE_REQUEST +action = drop +topic = + +[0x52A0] +msg_id = MSG_ID_DD_MONITORED_VOLTAGE_OVERRIDE_REQUEST +action = drop +topic = + +[0x5300] +msg_id = MSG_ID_TD_TEMPERATURE_DATA +action = drop +topic = + +[0x5380] +msg_id = MSG_ID_TD_SYRINGE_PUMP_POSITION_OVERRIDE_REQUEST +action = drop +topic = + +[0x53A0] +msg_id = MSG_ID_DD_RINSE_PUMP_DATA_PUBLISH_INTERVAL_OVERRIDE_REQUEST +action = drop +topic = + +[0x5400] +msg_id = MSG_ID_TD_BATTERY_DATA +action = drop +topic = + +[0x5480] +msg_id = MSG_ID_TD_SYRINGE_PUMP_VOLUME_OVERRIDE_REQUEST +action = drop +topic = + +[0x54A0] +msg_id = MSG_ID_DD_RINSE_PUMP_PWM_PERCENT_OVERRIDE_REQUEST +action = drop +topic = + +[0x5500] +msg_id = MSG_ID_UI_PATIENT_DISCONNECT_CONFIRM_REQUEST +action = drop +topic = + +[0x5580] +msg_id = MSG_ID_TD_SYRINGE_PUMP_STATUS_OVERRIDE_REQUEST +action = drop +topic = + +[0x55A0] +msg_id = MSG_ID_DD_RINSE_PUMP_TURN_ON_OFF_REQUEST +action = drop +topic = + +[0x5600] +msg_id = MSG_ID_TD_PATIENT_DISCONNECT_CONFIRM_RESPONSE +action = drop +topic = + +[0x5680] +msg_id = MSG_ID_TD_SYRINGE_PUMP_ENCODER_STATUS_OVERRIDE_REQUEST +action = drop +topic = + +[0x56A0] +msg_id = MSG_ID_DD_DRY_BICART_DATA_PUBLISH_INTERVAL_OVERRIDE_REQUEST +action = drop +topic = + +[0x5700] +msg_id = MSG_ID_FP_CONCENTRATE_FLUSH_DATA +action = drop +topic = + +[0x5780] +msg_id = MSG_ID_TD_SYRINGE_PUMP_ADC_DAC_STATUS_OVERRIDE_REQUEST +action = drop +topic = + +[0x57A0] +msg_id = MSG_ID_DD_DRY_BICART_FILL_CYCLE_MAX_OVERRIDE_REQUEST +action = drop +topic = + +[0x5800] +msg_id = MSG_ID_FP_GENP_DEF_DATA +action = drop +topic = + +[0x5880] +msg_id = MSG_ID_TD_SYRINGE_PUMP_ADC_READ_COUNTER_OVERRIDE_REQUEST +action = drop +topic = + +[0x58A0] +msg_id = MSG_ID_DD_DRY_BICART_FILL_REQUEST_OVERRIDE_REQUEST +action = drop +topic = + +[0x5900] +msg_id = MSG_ID_FP_PRE_GEN_DEF_DATA +action = drop +topic = + +[0x5980] +msg_id = MSG_ID_TD_HEPARIN_BOLUS_TARGET_RATE_OVERRIDE_REQUEST +action = drop +topic = + +[0x59A0] +msg_id = MSG_ID_DD_BICARB_CHAMBER_FILL_REQUEST_OVERRIDE_REQUEST +action = drop +topic = + +[0x5A00] +msg_id = MSG_ID_FP_VERSION_RESPONSE +action = drop +topic = + +[0x5AA0] +msg_id = MSG_ID_DD_BICART_DRAIN_REQUEST_OVERRIDE_REQUEST +action = drop +topic = + +[0x5B00] +msg_id = MSG_ID_TD_TREATMENT_PAUSED_TIMER_DATA +action = drop +topic = + +[0x5BA0] +msg_id = MSG_ID_DD_BICART_CARTRIDGE_SELECT_OVERRIDE_REQUEST +action = drop +topic = + +[0x5C00] +msg_id = MSG_ID_DD_UF_DATA +action = drop +topic = + +[0x5CA0] +msg_id = MSG_ID_DD_SET_CONDUCTIVITY_MODEL_REQUEST +action = drop +topic = + +[0x5D00] +msg_id = MSG_ID_FP_PERMEATE_TANK_DATA +action = drop +topic = + +[0x5DA0] +msg_id = MSG_ID_DD_CONDUCTIVITY_SENSOR_RESISTANCE_OVERRIDE_REQUEST +action = drop +topic = + +[0x5E00] +msg_id = MSG_ID_DD_SPENT_CHAMBER_FILL_DATA +action = drop +topic = + +[0x5F00] +msg_id = MSG_ID_UI_FLUID_BOLUS_REQUEST +action = drop +topic = + +[0x5FA0] +msg_id = MSG_ID_DD_CONDUCTIVITY_SENSOR_VERSION_RESPONSE +action = drop +topic = + +[0x6000] +msg_id = MSG_ID_TD_FLUID_BOLUS_RESPONSE +action = drop +topic = + +[0x6080] +msg_id = MSG_ID_TD_SYRINGE_PUMP_FORCE_SENSOR_CALIBRATION_REQUEST +action = drop +topic = + +[0x60A0] +msg_id = MSG_ID_DD_BICARB_MIX_VOL_KP_GAIN_COEFF_OVERRIDE_REQUEST +action = drop +topic = + +[0x6100] +msg_id = MSG_ID_DD_BLOOD_LEAK_DATA +action = drop +topic = + +[0x6180] +msg_id = MSG_ID_TD_GET_ALARM_PROPERTIES_REQUEST +action = drop +topic = + +[0x61A0] +msg_id = MSG_ID_DD_BICARB_MIX_VOL_KI_GAIN_COEFF_OVERRIDE_REQUEST +action = drop +topic = + +[0x6200] +msg_id = MSG_ID_FP_INLET_PRESSURE_CHECK_DATA +action = drop +topic = + +[0x6280] +msg_id = MSG_ID_TD_ALARM_PROPERTIES_RESPONSE +action = drop +topic = + +[0x62A0] +msg_id = MSG_ID_DD_ACID_MIX_VOL_KP_GAIN_COEFF_OVERRIDE_REQUEST +action = drop +topic = + +[0x6300] +msg_id = MSG_ID_UI_BLOOD_PRESSURE_REQUEST +action = drop +topic = + +[0x63A0] +msg_id = MSG_ID_DD_ACID_MIX_VOL_KI_GAIN_COEFF_OVERRIDE_REQUEST +action = drop +topic = + +[0x6400] +msg_id = MSG_ID_TD_BLOOD_PRESSURE_READING +action = drop +topic = + +[0x64A0] +msg_id = MSG_ID_DD_ACID_MIX_VOL_OVERRIDE_REQUEST +action = drop +topic = + +[0x6500] +msg_id = MSG_ID_TD_BLOOD_PRESSURE_DATA +action = drop +topic = + +[0x65A0] +msg_id = MSG_ID_DD_BICARB_MIX_VOL_OVERRIDE_REQUEST +action = drop +topic = + +[0x6600] +msg_id = MSG_ID_UI_ULTRAFILTRATION_CHANGE_CONFIRM_REQUEST +action = drop +topic = + +[0x66A0] +msg_id = MSG_ID_DD_BICARB_TARGET_CONDUCTIVITY_OVERRIDE_REQUEST +action = drop +topic = + +[0x6700] +msg_id = MSG_ID_TD_ULTRAFILTRATION_CHANGE_CONFIRM_RESPONSE +action = drop +topic = + +[0x67A0] +msg_id = MSG_ID_DD_BICARB_DELTA_CONDUCTIVITY_OVERRIDE_REQUEST +action = drop +topic = + +[0x6800] +msg_id = MSG_ID_DD_VOLTAGES_DATA +action = drop +topic = + +[0x68A0] +msg_id = MSG_ID_DD_DIALYSATE_TARGET_CONDUCTIVITY_OVERRIDE_REQUEST +action = drop +topic = + +[0x6900] +msg_id = MSG_ID_DD_RINSE_PUMP_DATA +action = drop +topic = + +[0x69A0] +msg_id = MSG_ID_DD_DIALYSATE_DELTA_CONDUCTIVITY_OVERRIDE_REQUEST +action = drop +topic = + +[0x6A00] +msg_id = MSG_ID_TD_TREATMENT_LOG_ALARM_EVENT +action = drop +topic = + +[0x6AA0] +msg_id = MSG_ID_DD_BICART_UPPER_PRESSURE_OVERRIDE_REQUEST +action = drop +topic = + +[0x6B00] +msg_id = MSG_ID_TD_TREATMENT_LOG_EVENT +action = drop +topic = + +[0x6BA0] +msg_id = MSG_ID_DD_BICART_LOWER_PRESSURE_OVERRIDE_REQUEST +action = drop +topic = + +[0x6C00] +msg_id = MSG_ID_TD_DATE_AND_TIME_REQUEST +action = drop +topic = + +[0x6CA0] +msg_id = MSG_ID_DD_FLOATER_LEVEL_OVERRIDE_REQUEST +action = drop +topic = + +[0x6D00] +msg_id = MSG_ID_TD_DATE_AND_TIME_RESPONSE +action = drop +topic = + +[0x6DA0] +msg_id = MSG_ID_DD_SUBSTITUTION_PUMP_START_STOP_OVERRIDE_REQUEST +action = drop +topic = + +[0x6E00] +msg_id = MSG_ID_DD_DATE_AND_TIME_REQUEST +action = drop +topic = + +[0x6EA0] +msg_id = MSG_ID_DD_SUBSTITUTION_PUMP_BROADCAST_INTERVAL_OVERRIDE_REQUEST +action = drop +topic = + +[0x6F00] +msg_id = MSG_ID_DD_DATE_AND_TIME_RESPONSE +action = drop +topic = + +[0x6FA0] +msg_id = MSG_ID_DD_SUBSTITUTION_PUMP_TARGET_RATE_OVERRIDE_REQUEST +action = drop +topic = + +[0x7000] +msg_id = MSG_ID_DD_DRY_BICART_DATA +action = drop +topic = + +[0x7100] +msg_id = MSG_ID_FP_RO_REJECTION_RATIO_DATA +action = drop +topic = + +[0x71A0] +msg_id = MSG_ID_DD_CONDUCTIVITY_SENSOR_CAL_RESPONSE +action = drop +topic = + +[0x7200] +msg_id = MSG_ID_UI_PRESSURE_LIMITS_CHANGE_REQUEST +action = drop +topic = + +[0x72A0] +msg_id = MSG_ID_DD_MIXING_CONTROL_DATA +action = drop +topic = + +[0x7300] +msg_id = MSG_ID_TD_PRESSURE_LIMITS_CHANGE_RESPONSE +action = drop +topic = + +[0x73A0] +msg_id = MSG_ID_DD_MIXING_CONTROL_DATA_PUBLISH_INTERVAL_OVERRIDE_REQUEST +action = drop +topic = + +[0x7400] +msg_id = MSG_ID_UI_BOLUS_VOLUME_CHANGE_REQUEST +action = drop +topic = + +[0x74A0] +msg_id = MSG_ID_DD_BICART_DEPRESSURISE_REQUEST_OVERRIDE_REQUEST +action = drop +topic = + +[0x7500] +msg_id = MSG_ID_TD_BOLUS_VOLUME_CHANGE_RESPONSE +action = drop +topic = + +[0x75A0] +msg_id = MSG_ID_DD_TREATMENT_PARAMS_OVERRIDE_REQUEST +action = drop +topic = + +[0x7600] +msg_id = MSG_ID_UI_DURATION_VALIDATE_REQUEST +action = drop +topic = + +[0x7700] +msg_id = MSG_ID_TD_DURATION_VALIDATE_RESPONSE +action = drop +topic = + +[0x7800] +msg_id = MSG_ID_UI_DURATION_CONFIRM_REQUEST +action = drop +topic = + +[0x7900] +msg_id = MSG_ID_TD_DURATION_CONFIRM_RESPONSE +action = drop +topic = + +[0x7A00] +msg_id = MSG_ID_UI_TREATMENT_SET_POINTS_CHANGE_REQUEST +action = drop +topic = + +[0x7B00] +msg_id = MSG_ID_TD_TREATMENT_SET_POINTS_CHANGE_RESPONSE +action = drop +topic = + +[0x7C00] +msg_id = MSG_ID_UI_TREATMENT_SET_POINT_BLOOD_FLOW_CHANGE_REQUEST +action = drop +topic = + +[0x7D00] +msg_id = MSG_ID_TD_TREATMENT_SET_POINT_BLOOD_FLOW_CHANGE_RESPONSE +action = drop +topic = + +[0x7E00] +msg_id = MSG_ID_UI_TREATMENT_SET_POINT_DIALYSATE_FLOW_CHANGE_REQUEST +action = drop +topic = + +[0x7F00] +msg_id = MSG_ID_TD_TREATMENT_SET_POINT_DIALYSATE_FLOW_CHANGE_RESPONSE +action = drop +topic = + +[0x8000] +msg_id = MSG_ID_UI_TREATMENT_SET_POINT_DIALYSATE_TEMP_CHANGE_REQUEST +action = drop +topic = + +[0x8100] +msg_id = MSG_ID_TD_TREATMENT_SET_POINT_DIALYSATE_TEMP_CHANGE_RESPONSE +action = drop +topic = + +[0x8200] +msg_id = MSG_ID_TD_INSTITUTIONAL_RECORD_REQUEST +action = drop +topic = + +[0x8300] +msg_id = MSG_ID_TD_INSTITUTIONAL_RECORD_RESPONSE +action = drop +topic = + +[0x8400] +msg_id = MSG_ID_TD_ADJUST_INSTITUTIONAL_RECORD_REQUEST +action = drop +topic = + +[0x8500] +msg_id = MSG_ID_TD_ADJUST_INSTITUTIONAL_RECORD_RESPONSE +action = drop +topic = + +[0x8600] +msg_id = MSG_ID_TD_ADVANCED_INSTITUTIONAL_RECORD_REQUEST +action = drop +topic = + +[0x8700] +msg_id = MSG_ID_TD_ADVANCED_INSTITUTIONAL_RECORD_RESPONSE +action = drop +topic = + +[0x8800] +msg_id = MSG_ID_TD_ADVANCED_ADJUST_INSTITUTIONAL_RECORD_REQUEST +action = drop +topic = + +[0x8900] +msg_id = MSG_ID_TD_ADVANCED_ADJUST_INSTITUTIONAL_RECORD_RESPONSE +action = drop +topic = + +[0x8A00] +msg_id = MSG_ID_TD_HEPARIN_REQUEST +action = drop +topic = + +[0x8B00] +msg_id = MSG_ID_TD_HEPARIN_RESPONSE +action = drop +topic = + +[0x8C00] +msg_id = MSG_ID_TD_HEPARIN_DATA +action = drop +topic = + +[0x8D00] +msg_id = MSG_ID_TD_END_TREATMENT_REQUEST +action = drop +topic = + +[0x8E00] +msg_id = MSG_ID_TD_END_TREATMENT_RESPONSE +action = drop +topic = + +[0x8F00] +msg_id = MSG_ID_TD_RINSEBACK_PROGRESS +action = drop +topic = + +[0x9000] +msg_id = MSG_ID_UI_RINSEBACK_CMD_REQUEST +action = drop +topic = + +[0x9100] +msg_id = MSG_ID_TD_RINSEBACK_CMD_RESPONSE +action = drop +topic = + +[0x9200] +msg_id = MSG_ID_UI_ADJUST_DISPOSABLES_CONFIRM_REQUEST +action = drop +topic = + +[0x9300] +msg_id = MSG_ID_TD_ADJUST_DISPOSABLES_CONFIRM_RESPONSE +action = drop +topic = + +[0x9400] +msg_id = MSG_ID_UI_ADJUST_DISPOSABLES_REMOVAL_CONFIRM_REQUEST +action = drop +topic = + +[0x9500] +msg_id = MSG_ID_TD_ADJUST_DISPOSABLES_REMOVAL_CONFIRM_RESPONSE +action = drop +topic = + +[0x9600] +msg_id = MSG_ID_FP_FILTER_FLUSH_DEF_DATA +action = drop +topic = + +[0x9700] +msg_id = MSG_ID_TD_BLOOD_PRIME_PROGRESS_DATA +action = drop +topic = + +[0x9800] +msg_id = MSG_ID_UI_BLOOD_PRIME_CMD_REQUEST +action = drop +topic = + +[0x9900] +msg_id = MSG_ID_TD_BLOOD_PRIME_CMD_RESPONSE +action = drop +topic = + +[0x9A00] +msg_id = MSG_ID_TD_ISOLATED_UF_DATA +action = drop +topic = + +[0x9B00] +msg_id = MSG_ID_UI_ISOLATED_UF_DURATION_CHANGE_REQUEST +action = drop +topic = + +[0x9C00] +msg_id = MSG_ID_TD_ISOLATED_UF_DURATION_CHANGE_RESPONSE +action = drop +topic = + +[0x9D00] +msg_id = MSG_ID_UI_ISOLATED_UF_VOLUME_GOAL_CHANGE_REQUEST +action = drop +topic = + +[0x9E00] +msg_id = MSG_ID_TD_ISOLATED_UF_VOLUME_GOAL_CHANGE_RESPONSE +action = drop +topic = + +[0x9F00] +msg_id = MSG_ID_UI_ISOLATED_UF_CONFIRM_REQUEST +action = drop +topic = + +[0xA000] +msg_id = MSG_ID_TD_ISOLATED_UF_CONFIRM_RESPONSE +action = drop +topic = + +[0xA100] +msg_id = MSG_ID_UI_ADJUST_START_TREATMENT_REQUEST +action = drop +topic = + +[0xA200] +msg_id = MSG_ID_TD_ADJUST_START_TREATMENT_RESPONSE +action = drop +topic = + +[0xA300] +msg_id = MSG_ID_UI_WATER_SAMPLE_RESULT_REQUEST +action = drop +topic = + +[0xA400] +msg_id = MSG_ID_UI_PRESSURE_LIMIT_WIDEN_REQUEST +action = drop +topic = + +[0xA500] +msg_id = MSG_ID_TD_PRESSURE_LIMIT_WIDEN_RESPONSE +action = drop +topic = + +[0xA600] +msg_id = MSG_ID_UI_RECIRCULATE_REQUEST +action = drop +topic = + +[0xA700] +msg_id = MSG_ID_TD_RECIRCULATE_RESPONSE +action = drop +topic = + +[0xA800] +msg_id = MSG_ID_TD_RECIRCULATE_DATA +action = drop +topic = + +[0xA900] +msg_id = MSG_ID_UI_ADJUST_TREATMENT_LOGS_REQUEST +action = drop +topic = + +[0xAA00] +msg_id = MSG_ID_TD_ADJUST_TREATMENT_LOGS_RESPONSE +action = drop +topic = + +[0xAB00] +msg_id = MSG_ID_TD_WATER_SAMPLE_RESULT_RESPONSE +action = drop +topic = + +[0xAC00] +msg_id = MSG_ID_TD_WATER_SAMPLE_DATA +action = drop +topic = + +[0xAD00] +msg_id = MSG_ID_TD_TREATMENT_LOG_AVERAGE_DATA +action = drop +topic = + +[0xAE00] +msg_id = MSG_ID_TD_DRY_SELF_TEST_PROGRESS_DATA +action = drop +topic = + +[0xAF00] +msg_id = MSG_ID_TD_TUBE_SET_AUTHENTICATION_REQUEST +action = drop +topic = + +[0xB000] +msg_id = MSG_ID_TD_TUBE_SET_AUTHENTICATION_ACK_RESPONSE +action = drop +topic = + +[0xB100] +msg_id = MSG_ID_TD_SYRINGE_PUMP_DATA +action = drop +topic = + +[0xB200] +msg_id = MSG_ID_TD_HEPARIN_PAUSE_RESUME_RESPONSE +action = drop +topic = + +[0xB300] +msg_id = MSG_ID_FFU_SIGNAL_TD_UPDATE_AVAILABLE +action = drop +topic = + +[0xB400] +msg_id = MSG_ID_FFU_SIGNAL_DD_UPDATE_AVAILABLE +action = drop +topic = + +[0xB500] +msg_id = MSG_ID_TD_UI_GENERIC_CONFIRMATION_REQUEST +action = drop +topic = + +[0xB600] +msg_id = MSG_ID_UI_GENERIC_CONFIRMATION_RESULT_RESPONSE +action = drop +topic = + +[0xB700] +msg_id = MSG_ID_AVAILABLE_B7 +action = drop +topic = + +[0xB800] +msg_id = MSG_ID_UI_VITALS_ADJUSTMENT_REQUEST +action = drop +topic = + +[0xB900] +msg_id = MSG_ID_TD_VITALS_ADJUSTMENT_RESPONSE +action = drop +topic = + +[0xD600] +msg_id = MSG_ID_UI_SETUP_TUBING_SET_CONNECTIONS_CONFIRM_REQUEST +action = drop +topic = + +[0xD700] +msg_id = MSG_ID_TD_SETUP_TUBING_SET_CONNECTIONS_CONFIRM_RESPONSE +action = drop +topic = + +[0xDB00] +msg_id = MSG_ID_DD_SUBSTITUTION_PUMP_DATA +action = drop +topic = + +[0xDC00] +msg_id = MSG_ID_DD_CONDUCTIVITY_SENSOR_RESISTANCE_DATA +action = drop +topic = + +[0xDD00] +msg_id = MSG_ID_FP_FILTER_FLUSH_DATA +action = drop +topic = + +[0xDE00] +msg_id = MSG_ID_FP_PERMEATE_FLUSH_DATA +action = drop +topic = + +[0xF1FF] +msg_id = MSG_ID_TD_DEBUG_EVENT +action = drop +topic = + +[0xF2FF] +msg_id = MSG_ID_DD_DEBUG_EVENT +action = drop +topic = + +[0xF3FF] +msg_id = MSG_ID_FP_DEBUG_EVENT +action = drop +topic = + +[0xFFFF] +msg_id = MSG_ID_ACK_MESSAGE_THAT_REQUIRES_ACK +action = drop +topic = + Index: CloudConnect/main.cpp =================================================================== diff -u --- CloudConnect/main.cpp (revision 0) +++ CloudConnect/main.cpp (revision b915ccc1a72fcca21908c35140af7ac7df1f1f37) @@ -0,0 +1,74 @@ +#include +#include +#include + +#include +#include +#include +#include +#include +#include + +#include "CloudConnectController.h" + +#define log qDebug().noquote() + +int main(int argc, char *argv[]) +{ + // Block SIGINT and SIGTERM from normal delivery; redirect them to a fd. + sigset_t mask; + sigemptyset(&mask); + sigaddset(&mask, SIGINT); + sigaddset(&mask, SIGTERM); + sigprocmask(SIG_BLOCK, &mask, nullptr); + + const int sfd = signalfd(-1, &mask, SFD_CLOEXEC); + if (sfd == -1) { + qCritical("Failed to create signalfd"); + return 1; + } + + QCoreApplication app(argc, argv); + app.setApplicationName("CloudConnect"); + app.setApplicationVersion("1.0"); + + // Notifier runs on the main thread inside the event loop — safe to call quit(). + QSocketNotifier notifier(sfd, QSocketNotifier::Read); + QObject::connect(¬ifier, &QSocketNotifier::activated, [&](int fd) { + struct signalfd_siginfo info{}; + (void)read(fd, &info, sizeof(info)); + if (info.ssi_signo == SIGINT) { + log << "Application terminated by SIGINT"; + } + else if (info.ssi_signo == SIGTERM) { + log << "Application terminated by SIGTERM"; + } + app.quit(); + }); + + QCommandLineParser parser; + parser.setApplicationDescription("Leahi Real-time Cloud Data Transmission daemon."); + parser.addHelpOption(); + parser.addVersionOption(); + + QCommandLineOption configOption( + {"c", "config"}, "Path to the configuration INI file.", "config", + QDir(app.applicationDirPath()).filePath("config/CloudConnect.ini") + ); + QCommandLineOption msgHandlingOption( + {"m", "msg_handling"}, "Path to the message handling INI file.", "msg_handling", + QDir(app.applicationDirPath()).filePath("config/LeahiMsgHandling.ini") + ); + parser.addOption(configOption); + parser.addOption(msgHandlingOption); + parser.process(app); + + CloudConnectController rtController(parser.value(configOption), + parser.value(msgHandlingOption)); + rtController.connectToAgent(); + if (!rtController.listenForApp()) { + return 1; + } + + return app.exec(); +} Fisheye: Tag b915ccc1a72fcca21908c35140af7ac7df1f1f37 refers to a dead (removed) revision in file `LeahiRt/CMakeLists.txt'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag b915ccc1a72fcca21908c35140af7ac7df1f1f37 refers to a dead (removed) revision in file `LeahiRt/LeahiRt.pro'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag b915ccc1a72fcca21908c35140af7ac7df1f1f37 refers to a dead (removed) revision in file `LeahiRt/LeahiRtController.cpp'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag b915ccc1a72fcca21908c35140af7ac7df1f1f37 refers to a dead (removed) revision in file `LeahiRt/LeahiRtController.h'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag b915ccc1a72fcca21908c35140af7ac7df1f1f37 refers to a dead (removed) revision in file `LeahiRt/config/LeahiRt.ini'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag b915ccc1a72fcca21908c35140af7ac7df1f1f37 refers to a dead (removed) revision in file `LeahiRt/config/LeahiRtMsgHandling.ini'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag b915ccc1a72fcca21908c35140af7ac7df1f1f37 refers to a dead (removed) revision in file `LeahiRt/main.cpp'. Fisheye: No comparison available. Pass `N' to diff? Index: docs/SDD/Class_Overview.puml =================================================================== diff -u -ra5781739bcbe58c754aff8861561495624bc5b67 -rb915ccc1a72fcca21908c35140af7ac7df1f1f37 --- docs/SDD/Class_Overview.puml (.../Class_Overview.puml) (revision a5781739bcbe58c754aff8861561495624bc5b67) +++ docs/SDD/Class_Overview.puml (.../Class_Overview.puml) (revision b915ccc1a72fcca21908c35140af7ac7df1f1f37) @@ -8,8 +8,8 @@ BackgroundColor<> LightCyan } -package "LeahiRt (process)" { - class LeahiRtController { +package "CloudConnect (process)" { + class CloudConnectController { -_settings: QSettings -_canInterface: Can::CanInterface -_canThread: QThread @@ -20,7 +20,7 @@ -_agentThread: QThread -_txSequence: quint16 __ - +LeahiRtController(configPath, msgHandlingPath) + +CloudConnectController(configPath, msgHandlingPath) +connectToAgent() -loadMsgHandling(msgHandlingPath) __ @@ -158,9 +158,9 @@ } ' --- composition --- -LeahiRtController *-- CanInterface -LeahiRtController *-- RtInterface -LeahiRtController *-- MessageDispatcher +CloudConnectController *-- CanInterface +CloudConnectController *-- RtInterface +CloudConnectController *-- MessageDispatcher ' --- internal composition --- MessageDispatcher *-- MessageBuilder Index: docs/SDD/CodeGenPipeline.puml =================================================================== diff -u -r5703cc9be0f77b0fb405d60767a76033d8f9d2cb -rb915ccc1a72fcca21908c35140af7ac7df1f1f37 --- docs/SDD/CodeGenPipeline.puml (.../CodeGenPipeline.puml) (revision 5703cc9be0f77b0fb405d60767a76033d8f9d2cb) +++ docs/SDD/CodeGenPipeline.puml (.../CodeGenPipeline.puml) (revision b915ccc1a72fcca21908c35140af7ac7df1f1f37) @@ -53,15 +53,15 @@ |MsgUtils Python| :MsgHandlingIni loads .conf —\nseeds each msgId with\naction=drop, topic=; - :loadIni() merges existing\nLeahiRtMsgHandling.ini —\npreserves hand-edited\naction + topic values; + :loadIni() merges existing\nLeahiMsgHandling.ini —\npreserves hand-edited\naction + topic values; |Jinja2 Templates| - :MsgHandlingIni.jinja renders\nLeahiRtMsgHandling.ini\n(per-msgId: msg_id, action, topic); + :MsgHandlingIni.jinja renders\nLeahiMsgHandling.ini\n(per-msgId: msg_id, action, topic); end fork |Runtime| -:LeahiRtController::loadMsgHandling()\nreads LeahiRtMsgHandling.ini at startup; +:CloudConnectController::loadMsgHandling()\nreads LeahiMsgHandling.ini at startup; :onMessageReceive() looks up msgId\nin _msgHandling → drop / send_always /\nsend_delta policy, MQTT topic; :canMessageToProtobufByteArray()\nconverts CAN → protobuf bytes; :msgIdString() used in log output; @@ -71,7 +71,7 @@ Pipelines A and B are triggered by the MsgUtils library cmake target; Pipeline C is triggered by the - LeahiRt executable cmake target. + CloudConnect executable cmake target. All three regenerate whenever the .conf file changes. end note Index: docs/SDD/Comms_Overview.puml =================================================================== diff -u -ra5781739bcbe58c754aff8861561495624bc5b67 -rb915ccc1a72fcca21908c35140af7ac7df1f1f37 --- docs/SDD/Comms_Overview.puml (.../Comms_Overview.puml) (revision a5781739bcbe58c754aff8861561495624bc5b67) +++ docs/SDD/Comms_Overview.puml (.../Comms_Overview.puml) (revision b915ccc1a72fcca21908c35140af7ac7df1f1f37) @@ -3,7 +3,7 @@ title Leahi Real-time CDT — Signal/Slot Wiring Overview participant "Can::CanInterface" as CANI -participant "LeahiRtController" as LRC +participant "CloudConnectController" as LRC participant "Can::MessageDispatcher" as MDISP participant "RtInterface" as AI participant "Unix Domain\nSocket" as UDS Index: docs/SDD/Seq_RealtimeDataTransfer.puml =================================================================== diff -u -ra5781739bcbe58c754aff8861561495624bc5b67 -rb915ccc1a72fcca21908c35140af7ac7df1f1f37 --- docs/SDD/Seq_RealtimeDataTransfer.puml (.../Seq_RealtimeDataTransfer.puml) (revision a5781739bcbe58c754aff8861561495624bc5b67) +++ docs/SDD/Seq_RealtimeDataTransfer.puml (.../Seq_RealtimeDataTransfer.puml) (revision b915ccc1a72fcca21908c35140af7ac7df1f1f37) @@ -4,7 +4,7 @@ participant "CANDumpPlayer" as CDP participant "CAN Bus\n(SocketCAN)" as CANBUS -participant "LeahiRt\n(LeahiRtController)" as LRC +participant "CloudConnect\n(CloudConnectController)" as LRC participant "Unix Domain\nSocket" as UDS participant "AgentSim\n(AgentSimController)" as ASC Index: docs/SDD/SoftwareArchitecture.puml =================================================================== diff -u -ra5781739bcbe58c754aff8861561495624bc5b67 -rb915ccc1a72fcca21908c35140af7ac7df1f1f37 --- docs/SDD/SoftwareArchitecture.puml (.../SoftwareArchitecture.puml) (revision a5781739bcbe58c754aff8861561495624bc5b67) +++ docs/SDD/SoftwareArchitecture.puml (.../SoftwareArchitecture.puml) (revision b915ccc1a72fcca21908c35140af7ac7df1f1f37) @@ -11,8 +11,8 @@ node "Leahi Device" { - node "LeahiRt (process)" { - component "LeahiRtController" as LRC + node "CloudConnect (process)" { + component "CloudConnectController" as LRC component "Can::CanInterface" as CAN component "RtInterface" as AI } Index: leahi-realtime-cdt.pro =================================================================== diff -u -ra5781739bcbe58c754aff8861561495624bc5b67 -rb915ccc1a72fcca21908c35140af7ac7df1f1f37 --- leahi-realtime-cdt.pro (.../leahi-realtime-cdt.pro) (revision a5781739bcbe58c754aff8861561495624bc5b67) +++ leahi-realtime-cdt.pro (.../leahi-realtime-cdt.pro) (revision b915ccc1a72fcca21908c35140af7ac7df1f1f37) @@ -6,14 +6,14 @@ MsgUtils \ AgentSim \ CANDumpPlayer \ - LeahiRt + CloudConnect -Comms.subdir = lib/Comms -MsgUtils.subdir = lib/MsgUtils -AgentSim.subdir = tools/AgentSim -CANDumpPlayer.subdir = tools/CANDumpPlayer -LeahiRt.subdir = LeahiRt +Comms.subdir = lib/Comms +MsgUtils.subdir = lib/MsgUtils +AgentSim.subdir = tools/AgentSim +CANDumpPlayer.subdir = tools/CANDumpPlayer +CloudConnect.subdir = CloudConnect -MsgUtils.depends = Comms -AgentSim.depends = Comms MsgUtils -LeahiRt.depends = Comms MsgUtils +MsgUtils.depends = Comms +AgentSim.depends = Comms MsgUtils +CloudConnect.depends = Comms MsgUtils Index: lib/Comms/include/MessageDispatcher.h =================================================================== diff -u -ra5781739bcbe58c754aff8861561495624bc5b67 -rb915ccc1a72fcca21908c35140af7ac7df1f1f37 --- lib/Comms/include/MessageDispatcher.h (.../MessageDispatcher.h) (revision a5781739bcbe58c754aff8861561495624bc5b67) +++ lib/Comms/include/MessageDispatcher.h (.../MessageDispatcher.h) (revision b915ccc1a72fcca21908c35140af7ac7df1f1f37) @@ -92,7 +92,7 @@ Q_OBJECT // Singleton - // SINGLETON(MessageDispatcher) // SQ commented out: not a singleton here, owned by LeahiRtController + // SINGLETON(MessageDispatcher) // SQ commented out: not a singleton here, owned by CloudConnectController // friends // friend class ::tst_canbus; // SQ commented out: luis test friends @@ -107,7 +107,7 @@ MessageBuilder _builder; // MessageInterpreter _interpreter; // SQ commented out: GUI message interpretation - // QThread *_thread = nullptr; // SQ commented out: thread owned by LeahiRtController + // QThread *_thread = nullptr; // SQ commented out: thread owned by CloudConnectController // bool _init = false; // SQ commented out: init()/thread mgmt removed // SQ commented out: list of transmit(request) messages that require AckBack -- GUI/action specific. @@ -131,7 +131,7 @@ // void enableConsoleOut(bool vEnable) { _builder.enableConsoleOut(vEnable); } // SQ commented out: console-out passthrough private: - // void initConnections(); // SQ commented out: wiring now done in LeahiRtController + // void initConnections(); // SQ commented out: wiring now done in CloudConnectController // void initThread(QThread &vThread); // SQ commented out: thread mgmt removed // void quitThread(); Index: lib/Comms/include/RtMessage.h =================================================================== diff -u -ra5781739bcbe58c754aff8861561495624bc5b67 -rb915ccc1a72fcca21908c35140af7ac7df1f1f37 --- lib/Comms/include/RtMessage.h (.../RtMessage.h) (revision a5781739bcbe58c754aff8861561495624bc5b67) +++ lib/Comms/include/RtMessage.h (.../RtMessage.h) (revision b915ccc1a72fcca21908c35140af7ac7df1f1f37) @@ -15,7 +15,7 @@ #include /*! - * \brief LeahiRt to Connectivity Agent message framing + * \brief CloudConnect to Connectivity Agent message framing * \details Transport-agnostic binary framing. build() makes a wire-ready frame; * feed() parses inbound bytes (see FeedResult). On Complete, read * msgId()/sequence()/payload(), then reset(). Index: lib/Comms/include/RtServer.h =================================================================== diff -u -ra5781739bcbe58c754aff8861561495624bc5b67 -rb915ccc1a72fcca21908c35140af7ac7df1f1f37 --- lib/Comms/include/RtServer.h (.../RtServer.h) (revision a5781739bcbe58c754aff8861561495624bc5b67) +++ lib/Comms/include/RtServer.h (.../RtServer.h) (revision b915ccc1a72fcca21908c35140af7ac7df1f1f37) @@ -29,7 +29,7 @@ * Parser state is cleared automatically when the client disconnects. * * Intended to be inherited by controllers (e.g. AgentSimController, - * LeahiRtController) that need to accept a connection and exchange + * CloudConnectController) that need to accept a connection and exchange * framed messages over a local socket. */ class RtServer : public QObject Index: lib/Comms/src/MessageDispatcher.cpp =================================================================== diff -u -ra5781739bcbe58c754aff8861561495624bc5b67 -rb915ccc1a72fcca21908c35140af7ac7df1f1f37 --- lib/Comms/src/MessageDispatcher.cpp (.../MessageDispatcher.cpp) (revision a5781739bcbe58c754aff8861561495624bc5b67) +++ lib/Comms/src/MessageDispatcher.cpp (.../MessageDispatcher.cpp) (revision b915ccc1a72fcca21908c35140af7ac7df1f1f37) @@ -41,7 +41,7 @@ */ MessageDispatcher::MessageDispatcher(QObject *parent) : QObject(parent) { } -// SQ commented out: init()/quit() thread lifecycle -- LeahiRtController owns threading. +// SQ commented out: init()/quit() thread lifecycle -- CloudConnectController owns threading. #if 0 /*! * \brief Message Handler initializer Index: lib/MsgUtils/codegen.pri =================================================================== diff -u -ra5781739bcbe58c754aff8861561495624bc5b67 -rb915ccc1a72fcca21908c35140af7ac7df1f1f37 --- lib/MsgUtils/codegen.pri (.../codegen.pri) (revision a5781739bcbe58c754aff8861561495624bc5b67) +++ lib/MsgUtils/codegen.pri (.../codegen.pri) (revision b915ccc1a72fcca21908c35140af7ac7df1f1f37) @@ -1,5 +1,5 @@ # Project Python venv and generator script paths. -# Included by the components that generate code (e.g. MsgUtils and LeahiRt). +# Included by the components that generate code (e.g. MsgUtils and CloudConnect). # # qmake evaluates system() at qmake time, while QMAKE_EXTRA_COMPILERS / # QMAKE_EXTRA_TARGETS run at make time. The venv is created here (once, shared); Index: tools/AgentSim/main.cpp =================================================================== diff -u -rb8c2474ae637b7757b673d332a7b578636f232b6 -rb915ccc1a72fcca21908c35140af7ac7df1f1f37 --- tools/AgentSim/main.cpp (.../main.cpp) (revision b8c2474ae637b7757b673d332a7b578636f232b6) +++ tools/AgentSim/main.cpp (.../main.cpp) (revision b915ccc1a72fcca21908c35140af7ac7df1f1f37) @@ -24,7 +24,7 @@ app.setApplicationVersion("1.0"); QCommandLineParser parser; - parser.setApplicationDescription("Simulates the Connectivity Agent UDS server for testing LeahiRt."); + parser.setApplicationDescription("Simulates the Connectivity Agent UDS server for testing CloudConnect."); parser.addHelpOption(); parser.addVersionOption();