Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 3 additions & 1 deletion src/mesh/generated/meshtastic/module_config.pb.h
Original file line number Diff line number Diff line change
Expand Up @@ -85,7 +85,9 @@ typedef enum _meshtastic_ModuleConfig_SerialConfig_Serial_Mode {
meshtastic_ModuleConfig_SerialConfig_Serial_Mode_VE_DIRECT = 7,
/* Used to configure and view some parameters of MeshSolar.
https://heltec.org/project/meshsolar/ */
meshtastic_ModuleConfig_SerialConfig_Serial_Mode_MS_CONFIG = 8
meshtastic_ModuleConfig_SerialConfig_Serial_Mode_MS_CONFIG = 8,
/* Text messages from detection sensor app port only */
meshtastic_ModuleConfig_SerialConfig_Serial_Mode_DETECTION_SENSOR_APP_TEXTMSG = 9
} meshtastic_ModuleConfig_SerialConfig_Serial_Mode;

/* TODO: REPLACE */
Expand Down
6 changes: 5 additions & 1 deletion src/modules/SerialModule.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -119,6 +119,9 @@ SerialModuleRadio::SerialModuleRadio() : MeshModule("SerialModuleRadio")
case meshtastic_ModuleConfig_SerialConfig_Serial_Mode_CALTOPO:
ourPortNum = meshtastic_PortNum_POSITION_APP;
break;
case meshtastic_ModuleConfig_SerialConfig_Serial_Mode_DETECTION_SENSOR_APP_TEXTMSG:
ourPortNum = meshtastic_PortNum_DETECTION_SENSOR_APP;
break;
default:
ourPortNum = meshtastic_PortNum_SERIAL_APP;
// restrict to the serial channel for rx
Expand Down Expand Up @@ -402,7 +405,8 @@ ProcessMessage SerialModuleRadio::handleReceived(const meshtastic_MeshPacket &mp
if (moduleConfig.serial.mode == meshtastic_ModuleConfig_SerialConfig_Serial_Mode_DEFAULT ||
moduleConfig.serial.mode == meshtastic_ModuleConfig_SerialConfig_Serial_Mode_SIMPLE) {
serialPrint->write(p.payload.bytes, p.payload.size);
} else if (moduleConfig.serial.mode == meshtastic_ModuleConfig_SerialConfig_Serial_Mode_TEXTMSG) {
} else if (moduleConfig.serial.mode == meshtastic_ModuleConfig_SerialConfig_Serial_Mode_TEXTMSG ||
moduleConfig.serial.mode == meshtastic_ModuleConfig_SerialConfig_Serial_Mode_DETECTION_SENSOR_APP_TEXTMSG) {
meshtastic_NodeInfoLite *node = nodeDB->getMeshNode(getFrom(&mp));
const char *sender = (node && node->has_user) ? node->user.short_name : "???";
serialPrint->println();
Expand Down
14 changes: 12 additions & 2 deletions test/test_serial/SerialModule.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -71,13 +71,19 @@ void test_serialConfigWithOverrideConsoleSimpleModeIsInvalid(void)
TEST_ASSERT_FALSE(SerialModule::isValidConfig(config));
}

// Test that configuration with override_console_serial_port and TEXTMSG mode is invalid.
// Test that configuration with override_console_serial_port and TEXTMSG or DETECTION_SENSOR_APP_TEXTMSG mode is invalid.
void test_serialConfigWithOverrideConsoleTextMsgModeIsInvalid(void)
{
meshtastic_ModuleConfig_SerialConfig config = {
meshtastic_ModuleConfig_SerialConfig config;
config = {
.enabled = true, .override_console_serial_port = true, .mode = meshtastic_ModuleConfig_SerialConfig_Serial_Mode_TEXTMSG};

TEST_ASSERT_FALSE(SerialModule::isValidConfig(config));

config = {
.enabled = true, .override_console_serial_port = true, .mode = meshtastic_ModuleConfig_SerialConfig_Serial_Mode_DETECTION_SENSOR_APP_TEXTMSG};

TEST_ASSERT_FALSE(SerialModule::isValidConfig(config));
}

// Test that configuration with override_console_serial_port and PROTO mode is invalid.
Expand Down Expand Up @@ -117,6 +123,10 @@ void test_serialConfigVariousModesWithoutOverrideAreValid(void)
// Test CALTOPO mode
config.mode = meshtastic_ModuleConfig_SerialConfig_Serial_Mode_CALTOPO;
TEST_ASSERT_TRUE(SerialModule::isValidConfig(config));

// Test DETECTION_SENSOR_APP_TEXTMSG mode
config.mode = meshtastic_ModuleConfig_SerialConfig_Serial_Mode_DETECTION_SENSOR_APP_TEXTMSG;
TEST_ASSERT_TRUE(SerialModule::isValidConfig(config));
}

#endif // Architecture check
Expand Down