From 6f00b792c97432d2ea38eb00124beeb37ecc60cf Mon Sep 17 00:00:00 2001 From: Dave VanKampen Date: Thu, 3 Feb 2022 11:16:45 -0500 Subject: [PATCH 1/3] implement modbus client-server nomenclature --- src/ModbusAnalyzer.cpp | 82 ++++++------ src/ModbusAnalyzerModbusExtension.h | 10 +- src/ModbusAnalyzerResults.cpp | 174 +++++++++++++------------- src/ModbusAnalyzerSettings.cpp | 10 +- src/ModbusAnalyzerSettings.h | 12 +- src/ModbusSimulationDataGenerator.cpp | 72 +++++------ src/ModbusSimulationDataGenerator.h | 4 +- 7 files changed, 182 insertions(+), 182 deletions(-) diff --git a/src/ModbusAnalyzer.cpp b/src/ModbusAnalyzer.cpp index 268c484..353226d 100644 --- a/src/ModbusAnalyzer.cpp +++ b/src/ModbusAnalyzer.cpp @@ -93,9 +93,9 @@ void ModbusAnalyzer::WorkerThread() mModbus->AdvanceToNextEdge(); // if Modbus isn't selected, use the other code untouched - if( mSettings->mModbusMode != ModbusAnalyzerEnums::ModbusRTUMaster && mSettings->mModbusMode != ModbusAnalyzerEnums::ModbusRTUSlave && - mSettings->mModbusMode != ModbusAnalyzerEnums::ModbusASCIIMaster && - mSettings->mModbusMode != ModbusAnalyzerEnums::ModbusASCIISlave ) + if( mSettings->mModbusMode != ModbusAnalyzerEnums::ModbusRTUClient && mSettings->mModbusMode != ModbusAnalyzerEnums::ModbusRTUServer && + mSettings->mModbusMode != ModbusAnalyzerEnums::ModbusASCIIClient && + mSettings->mModbusMode != ModbusAnalyzerEnums::ModbusASCIIServer ) { AnalyzerHelpers::Assert( "The Modbus analyzer can't be used in a non-modbus mode." ); ////todo: delete all this code. @@ -248,10 +248,10 @@ void ModbusAnalyzer::WorkerThread() //} } // Analyze using Modbus extension - else if( mSettings->mModbusMode == ModbusAnalyzerEnums::ModbusRTUMaster || - mSettings->mModbusMode == ModbusAnalyzerEnums::ModbusRTUSlave || - mSettings->mModbusMode == ModbusAnalyzerEnums::ModbusASCIIMaster || - mSettings->mModbusMode == ModbusAnalyzerEnums::ModbusASCIISlave ) + else if( mSettings->mModbusMode == ModbusAnalyzerEnums::ModbusRTUClient || + mSettings->mModbusMode == ModbusAnalyzerEnums::ModbusRTUServer || + mSettings->mModbusMode == ModbusAnalyzerEnums::ModbusASCIIClient || + mSettings->mModbusMode == ModbusAnalyzerEnums::ModbusASCIIServer ) { for( ;; ) { @@ -267,8 +267,8 @@ void ModbusAnalyzer::WorkerThread() U64 Checksum; // if analyzer is in ASCII mode, we need to make sure we catch the ':' byte as the start of frame, RTU just uses silence - if( mSettings->mModbusMode == ModbusAnalyzerEnums::ModbusASCIIMaster || - mSettings->mModbusMode == ModbusAnalyzerEnums::ModbusASCIISlave ) + if( mSettings->mModbusMode == ModbusAnalyzerEnums::ModbusASCIIClient || + mSettings->mModbusMode == ModbusAnalyzerEnums::ModbusASCIIServer ) { char rawdata = 0x00; do @@ -286,13 +286,13 @@ void ModbusAnalyzer::WorkerThread() // Then comes the Function Code U64 funccode = GetNextByteModbus( num_bits, bit_mask, starting_frame, ending_frame ); - // Now we'll process the rest of the data based on whether the transmission is coming from the master or a slave device - if( mSettings->mModbusMode == ModbusAnalyzerEnums::ModbusRTUMaster || - mSettings->mModbusMode == ModbusAnalyzerEnums::ModbusASCIIMaster ) + // Now we'll process the rest of the data based on whether the transmission is coming from the client or a server device + if( mSettings->mModbusMode == ModbusAnalyzerEnums::ModbusRTUClient || + mSettings->mModbusMode == ModbusAnalyzerEnums::ModbusASCIIClient ) { frame.mFlags = FLAG_REQUEST_FRAME; - // It's a master device doing the talking + // It's a client device doing the talking switch( funccode ) { // use fall through to process similar requests with the same code @@ -310,7 +310,7 @@ void ModbusAnalyzer::WorkerThread() Payload2[ 0 ] = GetNextByteModbus( num_bits, bit_mask, starting_frame, ending_frame ); Payload2[ 1 ] = GetNextByteModbus( num_bits, bit_mask, starting_frame, ending_frame ); - if( mSettings->mModbusMode == ModbusAnalyzerEnums::ModbusRTUMaster ) + if( mSettings->mModbusMode == ModbusAnalyzerEnums::ModbusRTUClient ) { RecChecksum[ 0 ] = GetNextByteModbus( num_bits, bit_mask, starting_frame, ending_frame ); RecChecksum[ 1 ] = GetNextByteModbus( num_bits, bit_mask, starting_frame, ending_frame ); @@ -362,7 +362,7 @@ void ModbusAnalyzer::WorkerThread() case FUNCCODE_READ_EXCEPTION_STATUS: case FUNCCODE_GET_COM_EVENT_COUNTER: case FUNCCODE_GET_COM_EVENT_LOG: - case FUNCCODE_REPORT_SLAVE_ID: + case FUNCCODE_REPORT_SERVER_ID: Payload1[ 0 ] = 0x00; Payload1[ 1 ] = 0x00; @@ -370,7 +370,7 @@ void ModbusAnalyzer::WorkerThread() Payload2[ 0 ] = 0x00; Payload2[ 1 ] = 0x00; - if( mSettings->mModbusMode == ModbusAnalyzerEnums::ModbusRTUMaster ) + if( mSettings->mModbusMode == ModbusAnalyzerEnums::ModbusRTUClient ) { RecChecksum[ 0 ] = GetNextByteModbus( num_bits, bit_mask, starting_frame, ending_frame ); RecChecksum[ 1 ] = GetNextByteModbus( num_bits, bit_mask, starting_frame, ending_frame ); @@ -420,7 +420,7 @@ void ModbusAnalyzer::WorkerThread() ByteCount[ 0 ] = GetNextByteModbus( num_bits, bit_mask, starting_frame, ending_frame ); ByteCount[ 1 ] = 0x00; - if( mSettings->mModbusMode == ModbusAnalyzerEnums::ModbusRTUMaster ) + if( mSettings->mModbusMode == ModbusAnalyzerEnums::ModbusRTUClient ) { frame.mData1 = ( devaddr << 56 ) + ( funccode << 48 ) + ( Payload1[ 0 ] << 40 ) + ( Payload1[ 1 ] << 32 ) + ( Payload2[ 0 ] << 24 ) + ( Payload2[ 1 ] << 16 ) + ( ByteCount[ 1 ] << 8 ) + ByteCount[ 0 ]; @@ -534,7 +534,7 @@ void ModbusAnalyzer::WorkerThread() ByteCount[ 0 ] = GetNextByteModbus( num_bits, bit_mask, starting_frame, ending_frame ); ByteCount[ 1 ] = 0x00; - if( mSettings->mModbusMode == ModbusAnalyzerEnums::ModbusRTUMaster ) + if( mSettings->mModbusMode == ModbusAnalyzerEnums::ModbusRTUClient ) { frame.mData1 = ( devaddr << 56 ) + ( funccode << 48 ) + ( Payload1[ 0 ] << 40 ) + ( Payload1[ 1 ] << 32 ) + ( Payload2[ 0 ] << 24 ) + ( Payload2[ 1 ] << 16 ) + ( ByteCount[ 1 ] << 8 ) + ByteCount[ 0 ]; @@ -650,7 +650,7 @@ void ModbusAnalyzer::WorkerThread() ByteCount[ 0 ] = GetNextByteModbus( num_bits, bit_mask, starting_frame, ending_frame ); ByteCount[ 1 ] = 0x00; - if( mSettings->mModbusMode == ModbusAnalyzerEnums::ModbusRTUMaster ) + if( mSettings->mModbusMode == ModbusAnalyzerEnums::ModbusRTUClient ) { frame.mData1 = ( devaddr << 56 ) + ( funccode << 48 ) + ( Payload1[ 1 ] << 40 ) + ( Payload1[ 0 ] << 32 ) + ( Payload2[ 1 ] << 24 ) + ( Payload2[ 0 ] << 16 ) + ( ByteCount[ 1 ] << 8 ) + ByteCount[ 0 ]; @@ -799,7 +799,7 @@ void ModbusAnalyzer::WorkerThread() ByteCount[ 0 ] = GetNextByteModbus( num_bits, bit_mask, starting_frame, ending_frame ); ByteCount[ 1 ] = 0x00; - if( mSettings->mModbusMode == ModbusAnalyzerEnums::ModbusRTUMaster ) + if( mSettings->mModbusMode == ModbusAnalyzerEnums::ModbusRTUClient ) { frame.mData1 = ( devaddr << 56 ) + ( funccode << 48 ) + ( Payload1[ 1 ] << 40 ) + ( Payload1[ 0 ] << 32 ) + ( Payload2[ 1 ] << 24 ) + ( Payload2[ 0 ] << 16 ) + ( ByteCount[ 1 ] << 8 ) + ByteCount[ 0 ]; @@ -992,7 +992,7 @@ void ModbusAnalyzer::WorkerThread() Payload3[ 0 ] = GetNextByteModbus( num_bits, bit_mask, starting_frame, ending_frame ); Payload3[ 1 ] = GetNextByteModbus( num_bits, bit_mask, starting_frame, ending_frame ); - if( mSettings->mModbusMode == ModbusAnalyzerEnums::ModbusRTUMaster ) + if( mSettings->mModbusMode == ModbusAnalyzerEnums::ModbusRTUClient ) { RecChecksum[ 0 ] = GetNextByteModbus( num_bits, bit_mask, starting_frame, ending_frame ); RecChecksum[ 1 ] = GetNextByteModbus( num_bits, bit_mask, starting_frame, ending_frame ); @@ -1046,7 +1046,7 @@ void ModbusAnalyzer::WorkerThread() } break; case FUNCCODE_READWRITE_MULTIPLE_REGISTERS: - // code this section and master is done.. wooo + // code this section and client is done.. wooo // Read Starting Address Payload1[ 0 ] = GetNextByteModbus( num_bits, bit_mask, starting_frame, ending_frame ); @@ -1068,7 +1068,7 @@ void ModbusAnalyzer::WorkerThread() ByteCount[ 0 ] = GetNextByteModbus( num_bits, bit_mask, starting_frame, ending_frame ); ByteCount[ 1 ] = 0x00; - if( mSettings->mModbusMode == ModbusAnalyzerEnums::ModbusRTUMaster ) + if( mSettings->mModbusMode == ModbusAnalyzerEnums::ModbusRTUClient ) { frame.mData1 = ( devaddr << 56 ) + ( funccode << 48 ) + ( Payload1[ 0 ] << 40 ) + ( Payload1[ 1 ] << 32 ) + ( Payload2[ 0 ] << 24 ) + ( Payload2[ 1 ] << 16 ) + ( ByteCount[ 1 ] << 8 ) + ByteCount[ 0 ]; @@ -1191,7 +1191,7 @@ void ModbusAnalyzer::WorkerThread() Payload2[ 0 ] = 0x00; Payload2[ 1 ] = 0x00; - if( mSettings->mModbusMode == ModbusAnalyzerEnums::ModbusRTUMaster ) + if( mSettings->mModbusMode == ModbusAnalyzerEnums::ModbusRTUClient ) { RecChecksum[ 0 ] = GetNextByteModbus( num_bits, bit_mask, starting_frame, ending_frame ); RecChecksum[ 1 ] = GetNextByteModbus( num_bits, bit_mask, starting_frame, ending_frame ); @@ -1241,7 +1241,7 @@ void ModbusAnalyzer::WorkerThread() } else { - // slave mode + // server mode // check if it's a normal response or a Nak/Error if( funccode & 0x80 ) { @@ -1254,7 +1254,7 @@ void ModbusAnalyzer::WorkerThread() Payload2[ 0 ] = 0x00; Payload2[ 1 ] = 0x00; - if( mSettings->mModbusMode == ModbusAnalyzerEnums::ModbusRTUSlave ) + if( mSettings->mModbusMode == ModbusAnalyzerEnums::ModbusRTUServer ) { RecChecksum[ 0 ] = GetNextByteModbus( num_bits, bit_mask, starting_frame, ending_frame ); RecChecksum[ 1 ] = GetNextByteModbus( num_bits, bit_mask, starting_frame, ending_frame ); @@ -1300,7 +1300,7 @@ void ModbusAnalyzer::WorkerThread() // it's a valid response frame.mFlags = FLAG_RESPONSE_FRAME; - // It's a master device doing the talking + // It's a client device doing the talking switch( funccode ) { // use fall through to process similar requests with the same code @@ -1316,7 +1316,7 @@ void ModbusAnalyzer::WorkerThread() ByteCount[ 0 ] = GetNextByteModbus( num_bits, bit_mask, starting_frame, ending_frame ); ByteCount[ 1 ] = 0x00; - if( mSettings->mModbusMode == ModbusAnalyzerEnums::ModbusRTUSlave ) + if( mSettings->mModbusMode == ModbusAnalyzerEnums::ModbusRTUServer ) { frame.mData1 = ( devaddr << 56 ) + ( funccode << 48 ) + ( Payload1[ 1 ] << 40 ) + ( Payload1[ 0 ] << 32 ) + ( Payload2[ 1 ] << 24 ) + ( Payload2[ 0 ] << 16 ) + ( ByteCount[ 1 ] << 8 ) + ByteCount[ 0 ]; @@ -1425,7 +1425,7 @@ void ModbusAnalyzer::WorkerThread() ByteCount[ 0 ] = GetNextByteModbus( num_bits, bit_mask, starting_frame, ending_frame ); ByteCount[ 1 ] = 0x00; - if( mSettings->mModbusMode == ModbusAnalyzerEnums::ModbusRTUSlave ) + if( mSettings->mModbusMode == ModbusAnalyzerEnums::ModbusRTUServer ) { frame.mData1 = ( devaddr << 56 ) + ( funccode << 48 ) + ( Payload1[ 1 ] << 40 ) + ( Payload1[ 0 ] << 32 ) + ( Payload2[ 1 ] << 24 ) + ( Payload2[ 0 ] << 16 ) + ( ByteCount[ 1 ] << 8 ) + ByteCount[ 0 ]; @@ -1536,7 +1536,7 @@ void ModbusAnalyzer::WorkerThread() Payload2[ 0 ] = GetNextByteModbus( num_bits, bit_mask, starting_frame, ending_frame ); Payload2[ 1 ] = GetNextByteModbus( num_bits, bit_mask, starting_frame, ending_frame ); - if( mSettings->mModbusMode == ModbusAnalyzerEnums::ModbusRTUSlave ) + if( mSettings->mModbusMode == ModbusAnalyzerEnums::ModbusRTUServer ) { RecChecksum[ 0 ] = GetNextByteModbus( num_bits, bit_mask, starting_frame, ending_frame ); RecChecksum[ 1 ] = GetNextByteModbus( num_bits, bit_mask, starting_frame, ending_frame ); @@ -1591,7 +1591,7 @@ void ModbusAnalyzer::WorkerThread() Payload2[ 0 ] = 0x00; Payload2[ 1 ] = 0x00; - if( mSettings->mModbusMode == ModbusAnalyzerEnums::ModbusRTUSlave ) + if( mSettings->mModbusMode == ModbusAnalyzerEnums::ModbusRTUServer ) { RecChecksum[ 0 ] = GetNextByteModbus( num_bits, bit_mask, starting_frame, ending_frame ); RecChecksum[ 1 ] = GetNextByteModbus( num_bits, bit_mask, starting_frame, ending_frame ); @@ -1632,7 +1632,7 @@ void ModbusAnalyzer::WorkerThread() ( Payload2[ 0 ] << 24 ) + ( Payload2[ 1 ] << 16 ) + ( RecChecksum[ 1 ] << 8 ) + RecChecksum[ 0 ]; } break; - case FUNCCODE_REPORT_SLAVE_ID: + case FUNCCODE_REPORT_SERVER_ID: Payload1[ 0 ] = 0x00; Payload1[ 1 ] = 0x00; @@ -1643,7 +1643,7 @@ void ModbusAnalyzer::WorkerThread() ByteCount[ 0 ] = GetNextByteModbus( num_bits, bit_mask, starting_frame, ending_frame ); ByteCount[ 1 ] = 0x00; - if( mSettings->mModbusMode == ModbusAnalyzerEnums::ModbusRTUSlave ) + if( mSettings->mModbusMode == ModbusAnalyzerEnums::ModbusRTUServer ) { frame.mData1 = ( devaddr << 56 ) + ( funccode << 48 ) + ( Payload1[ 1 ] << 40 ) + ( Payload1[ 0 ] << 32 ) + ( Payload2[ 1 ] << 24 ) + ( Payload2[ 0 ] << 16 ) + ( ByteCount[ 1 ] << 8 ) + ByteCount[ 0 ]; @@ -1756,7 +1756,7 @@ void ModbusAnalyzer::WorkerThread() Payload4[ 0 ] = GetNextByteModbus( num_bits, bit_mask, starting_frame, ending_frame ); Payload4[ 1 ] = GetNextByteModbus( num_bits, bit_mask, starting_frame, ending_frame ); - if( mSettings->mModbusMode == ModbusAnalyzerEnums::ModbusRTUSlave ) + if( mSettings->mModbusMode == ModbusAnalyzerEnums::ModbusRTUServer ) { frame.mData1 = ( devaddr << 56 ) + ( funccode << 48 ) + ( Payload1[ 0 ] << 40 ) + ( Payload1[ 1 ] << 32 ) + ( Payload2[ 0 ] << 24 ) + ( Payload2[ 1 ] << 16 ) + ( ByteCount[ 1 ] << 8 ) + ByteCount[ 0 ]; @@ -1876,7 +1876,7 @@ void ModbusAnalyzer::WorkerThread() ByteCount[ 0 ] = GetNextByteModbus( num_bits, bit_mask, starting_frame, ending_frame ); ByteCount[ 1 ] = 0x00; - if( mSettings->mModbusMode == ModbusAnalyzerEnums::ModbusRTUSlave ) + if( mSettings->mModbusMode == ModbusAnalyzerEnums::ModbusRTUServer ) { frame.mData1 = ( devaddr << 56 ) + ( funccode << 48 ) + ( Payload1[ 1 ] << 40 ) + ( Payload1[ 0 ] << 32 ) + ( Payload2[ 1 ] << 24 ) + ( Payload2[ 0 ] << 16 ) + ( ByteCount[ 1 ] << 8 ) + ByteCount[ 0 ]; @@ -2054,7 +2054,7 @@ void ModbusAnalyzer::WorkerThread() ByteCount[ 0 ] = GetNextByteModbus( num_bits, bit_mask, starting_frame, ending_frame ); ByteCount[ 1 ] = 0x00; - if( mSettings->mModbusMode == ModbusAnalyzerEnums::ModbusRTUSlave ) + if( mSettings->mModbusMode == ModbusAnalyzerEnums::ModbusRTUServer ) { frame.mData1 = ( devaddr << 56 ) + ( funccode << 48 ) + ( Payload1[ 1 ] << 40 ) + ( Payload1[ 0 ] << 32 ) + ( Payload2[ 1 ] << 24 ) + ( Payload2[ 0 ] << 16 ) + ( ByteCount[ 1 ] << 8 ) + ByteCount[ 0 ]; @@ -2248,7 +2248,7 @@ void ModbusAnalyzer::WorkerThread() Payload3[ 0 ] = GetNextByteModbus( num_bits, bit_mask, starting_frame, ending_frame ); Payload3[ 1 ] = GetNextByteModbus( num_bits, bit_mask, starting_frame, ending_frame ); - if( mSettings->mModbusMode == ModbusAnalyzerEnums::ModbusRTUSlave ) + if( mSettings->mModbusMode == ModbusAnalyzerEnums::ModbusRTUServer ) { RecChecksum[ 0 ] = GetNextByteModbus( num_bits, bit_mask, starting_frame, ending_frame ); RecChecksum[ 1 ] = GetNextByteModbus( num_bits, bit_mask, starting_frame, ending_frame ); @@ -2313,7 +2313,7 @@ void ModbusAnalyzer::WorkerThread() Payload1[ 0 ] = 0x00; Payload1[ 1 ] = 0x00; - if( mSettings->mModbusMode == ModbusAnalyzerEnums::ModbusRTUSlave ) + if( mSettings->mModbusMode == ModbusAnalyzerEnums::ModbusRTUServer ) { frame.mData1 = ( devaddr << 56 ) + ( funccode << 48 ) + ( Payload1[ 1 ] << 40 ) + ( Payload1[ 0 ] << 32 ) + ( Payload2[ 1 ] << 24 ) + ( Payload2[ 0 ] << 16 ) + ( ByteCount[ 1 ] << 8 ) + ByteCount[ 0 ]; @@ -2425,8 +2425,8 @@ void ModbusAnalyzer::WorkerThread() } // in ASCII mode, the frame ends with a \n \r termination, in RTU mode, just silence - if( mSettings->mModbusMode == ModbusAnalyzerEnums::ModbusASCIIMaster || - mSettings->mModbusMode == ModbusAnalyzerEnums::ModbusASCIISlave ) + if( mSettings->mModbusMode == ModbusAnalyzerEnums::ModbusASCIIClient || + mSettings->mModbusMode == ModbusAnalyzerEnums::ModbusASCIIServer ) { char StopFrame[ 2 ]; StopFrame[ 0 ] = GetNextByteModbus( num_bits, bit_mask, starting_frame, ending_frame ); @@ -2524,7 +2524,7 @@ void DestroyAnalyzer( Analyzer* analyzer ) U64 ModbusAnalyzer::GetNextByteModbus( U32 num_bits, U64 bit_mask, U64& frame_starting_sample, U64& frame_ending_sample ) { - if( mSettings->mModbusMode == ModbusAnalyzerEnums::ModbusRTUMaster || mSettings->mModbusMode == ModbusAnalyzerEnums::ModbusRTUSlave ) + if( mSettings->mModbusMode == ModbusAnalyzerEnums::ModbusRTUClient || mSettings->mModbusMode == ModbusAnalyzerEnums::ModbusRTUServer ) { mModbus->AdvanceToNextEdge(); diff --git a/src/ModbusAnalyzerModbusExtension.h b/src/ModbusAnalyzerModbusExtension.h index 5e8247f..6bdae94 100644 --- a/src/ModbusAnalyzerModbusExtension.h +++ b/src/ModbusAnalyzerModbusExtension.h @@ -19,7 +19,7 @@ #define FUNCCODE_DIAGNOSTIC 0x08 #define FUNCCODE_GET_COM_EVENT_COUNTER 0x0B #define FUNCCODE_GET_COM_EVENT_LOG 0x0C -#define FUNCCODE_REPORT_SLAVE_ID 0x11 +#define FUNCCODE_REPORT_SERVER_ID 0x11 #define FUNCCODE_READ_DEVICE_ID 0x2B #define VALUE_FRAME 0xFF @@ -35,10 +35,10 @@ #define RETURN_BUS_MESSAGE_COUNT 0x0B #define RETURN_BUS_COMM_ERROR_COUNT 0x0C #define RETURN_BUS_EXCEPTION_ERROR_COUNT 0x0D -#define RETURN_SLAVE_MESSAGE_COUNT 0x0E -#define RETURN_SLAVE_NO_RESPONSE_COUNT 0x0F -#define RETURN_SLAVE_NAK_COUNT 0x10 -#define RETURN_SLAVE_BUSY_COUNT 0x11 +#define RETURN_SERVER_MESSAGE_COUNT 0x0E +#define RETURN_SERVER_NO_RESPONSE_COUNT 0x0F +#define RETURN_SERVER_NAK_COUNT 0x10 +#define RETURN_SERVER_BUSY_COUNT 0x11 #define RETURN_BUS_CHAR_OVERRUN_COUNT 0x12 // 0x13 RESERVED #define CLEAR_OVERRUN_COUNTER_AND_FLAG 0x14 diff --git a/src/ModbusAnalyzerResults.cpp b/src/ModbusAnalyzerResults.cpp index f28e7ad..cb494e5 100644 --- a/src/ModbusAnalyzerResults.cpp +++ b/src/ModbusAnalyzerResults.cpp @@ -37,9 +37,9 @@ void ModbusAnalyzerResults::GenerateBubbleText( U64 frame_index, Channel& /*chan if( mSettings->mModbusMode != ModbusAnalyzerEnums::Normal ) bits_per_transfer--; - if( mSettings->mModbusMode == ModbusAnalyzerEnums::ModbusASCIIMaster || - mSettings->mModbusMode == ModbusAnalyzerEnums::ModbusASCIISlave || mSettings->mModbusMode == ModbusAnalyzerEnums::ModbusRTUMaster || - mSettings->mModbusMode == ModbusAnalyzerEnums::ModbusRTUSlave ) + if( mSettings->mModbusMode == ModbusAnalyzerEnums::ModbusASCIIClient || + mSettings->mModbusMode == ModbusAnalyzerEnums::ModbusASCIIServer || mSettings->mModbusMode == ModbusAnalyzerEnums::ModbusRTUClient || + mSettings->mModbusMode == ModbusAnalyzerEnums::ModbusRTUServer ) { char DeviceAddrStr[ 128 ]; U8 DeviceAddr = ( frame.mData1 & 0xFF00000000000000 ) >> 56; @@ -171,28 +171,28 @@ void ModbusAnalyzerResults::GenerateBubbleText( U64 frame_index, Channel& /*chan sprintf( result_str, "DeviceID: %s, Func: Diagnostics (%s), SubFunc: Bus Excpt Err Cnt (%s), Data: %s, ChkSum: %s", DeviceAddrStr, FunctionCodeStr, Payload1Str, Payload2Str, ChecksumStr ); break; - case RETURN_SLAVE_MESSAGE_COUNT: + case RETURN_SERVER_MESSAGE_COUNT: AddResultString( "Diagnostics" ); - AddResultString( "Diagnostics - Slave Msg Cnt" ); - sprintf( result_str, "DeviceID: %s, Func: Diagnostics (%s), SubFunc: Slave Msg Cnt (%s), Data: %s, ChkSum: %s", + AddResultString( "Diagnostics - Server Msg Cnt" ); + sprintf( result_str, "DeviceID: %s, Func: Diagnostics (%s), SubFunc: Server Msg Cnt (%s), Data: %s, ChkSum: %s", DeviceAddrStr, FunctionCodeStr, Payload1Str, Payload2Str, ChecksumStr ); break; - case RETURN_SLAVE_NO_RESPONSE_COUNT: + case RETURN_SERVER_NO_RESPONSE_COUNT: AddResultString( "Diagnostics" ); - AddResultString( "Diagnostics - Slave No Resp Cnt" ); - sprintf( result_str, "DeviceID: %s, Func: Diagnostics (%s), SubFunc: Slave No Resp Cnt (%s), Data: %s, ChkSum: %s", + AddResultString( "Diagnostics - Server No Resp Cnt" ); + sprintf( result_str, "DeviceID: %s, Func: Diagnostics (%s), SubFunc: Server No Resp Cnt (%s), Data: %s, ChkSum: %s", DeviceAddrStr, FunctionCodeStr, Payload1Str, Payload2Str, ChecksumStr ); break; - case RETURN_SLAVE_NAK_COUNT: + case RETURN_SERVER_NAK_COUNT: AddResultString( "Diagnostics" ); - AddResultString( "Diagnostics - Slave NAK Cnt" ); - sprintf( result_str, "DeviceID: %s, Func: Diagnostics (%s), SubFunc: Slave NAK Cnt (%s), Data: %s, ChkSum: %s", + AddResultString( "Diagnostics - Server NAK Cnt" ); + sprintf( result_str, "DeviceID: %s, Func: Diagnostics (%s), SubFunc: Server NAK Cnt (%s), Data: %s, ChkSum: %s", DeviceAddrStr, FunctionCodeStr, Payload1Str, Payload2Str, ChecksumStr ); break; - case RETURN_SLAVE_BUSY_COUNT: + case RETURN_SERVER_BUSY_COUNT: AddResultString( "Diagnostics" ); - AddResultString( "Diagnostics - Slave Busy Cnt" ); - sprintf( result_str, "DeviceID: %s, Func: Diagnostics (%s), SubFunc: Slave Busy Cnt (%s), Data: %s, ChkSum: %s", + AddResultString( "Diagnostics - Server Busy Cnt" ); + sprintf( result_str, "DeviceID: %s, Func: Diagnostics (%s), SubFunc: Server Busy Cnt (%s), Data: %s, ChkSum: %s", DeviceAddrStr, FunctionCodeStr, Payload1Str, Payload2Str, ChecksumStr ); break; case RETURN_BUS_CHAR_OVERRUN_COUNT: @@ -229,9 +229,9 @@ void ModbusAnalyzerResults::GenerateBubbleText( U64 frame_index, Channel& /*chan sprintf( result_str, "DeviceID: %s, Func: Write Multiple Registers (%s), StartAddr: %s, Qty: %s, ByteCount: %s", DeviceAddrStr, FunctionCodeStr, Payload1Str, Payload2Str, ChecksumStr ); break; - case FUNCCODE_REPORT_SLAVE_ID: - AddResultString( "Report Slave ID" ); - sprintf( result_str, "DeviceID: %s, Func: Report Slave ID (%s), ChkSum: %s", DeviceAddrStr, FunctionCodeStr, ChecksumStr ); + case FUNCCODE_REPORT_SERVER_ID: + AddResultString( "Report Server ID" ); + sprintf( result_str, "DeviceID: %s, Func: Report Server ID (%s), ChkSum: %s", DeviceAddrStr, FunctionCodeStr, ChecksumStr ); break; case FUNCCODE_READ_FILE_RECORD: AddResultString( "Read File Record" ); @@ -371,29 +371,29 @@ void ModbusAnalyzerResults::GenerateBubbleText( U64 frame_index, Channel& /*chan "DeviceID: %s, Func: Diagnostics [ACK] (%s), SubFunc: Bus Excpt Err Cnt (%s), Data: %s, ChkSum: %s", DeviceAddrStr, FunctionCodeStr, Payload1Str, Payload2Str, ChecksumStr ); break; - case RETURN_SLAVE_MESSAGE_COUNT: + case RETURN_SERVER_MESSAGE_COUNT: AddResultString( "Diagnostics [ACK]" ); - AddResultString( "Diagnostics [ACK] - Slave Msg Cnt" ); - sprintf( result_str, "DeviceID: %s, Func: Diagnostics [ACK] (%s), SubFunc: Slave Msg Cnt (%s), Data: %s, ChkSum: %s", + AddResultString( "Diagnostics [ACK] - Server Msg Cnt" ); + sprintf( result_str, "DeviceID: %s, Func: Diagnostics [ACK] (%s), SubFunc: Server Msg Cnt (%s), Data: %s, ChkSum: %s", DeviceAddrStr, FunctionCodeStr, Payload1Str, Payload2Str, ChecksumStr ); break; - case RETURN_SLAVE_NO_RESPONSE_COUNT: + case RETURN_SERVER_NO_RESPONSE_COUNT: AddResultString( "Diagnostics [ACK]" ); - AddResultString( "Diagnostics [ACK] - Slave No Resp Cnt" ); + AddResultString( "Diagnostics [ACK] - Server No Resp Cnt" ); sprintf( result_str, - "DeviceID: %s, Func: Diagnostics [ACK] (%s), SubFunc: Slave No Resp Cnt (%s), Data: %s, ChkSum: %s", + "DeviceID: %s, Func: Diagnostics [ACK] (%s), SubFunc: Server No Resp Cnt (%s), Data: %s, ChkSum: %s", DeviceAddrStr, FunctionCodeStr, Payload1Str, Payload2Str, ChecksumStr ); break; - case RETURN_SLAVE_NAK_COUNT: + case RETURN_SERVER_NAK_COUNT: AddResultString( "Diagnostics [ACK]" ); - AddResultString( "Diagnostics [ACK] - Slave NAK Cnt" ); - sprintf( result_str, "DeviceID: %s, Func: Diagnostics [ACK] (%s), SubFunc: Slave NAK Cnt (%s), Data: %s, ChkSum: %s", + AddResultString( "Diagnostics [ACK] - Server NAK Cnt" ); + sprintf( result_str, "DeviceID: %s, Func: Diagnostics [ACK] (%s), SubFunc: Server NAK Cnt (%s), Data: %s, ChkSum: %s", DeviceAddrStr, FunctionCodeStr, Payload1Str, Payload2Str, ChecksumStr ); break; - case RETURN_SLAVE_BUSY_COUNT: + case RETURN_SERVER_BUSY_COUNT: AddResultString( "Diagnostics [ACK]" ); - AddResultString( "Diagnostics [ACK] - Slave Busy Cnt" ); - sprintf( result_str, "DeviceID: %s, Func: Diagnostics [ACK] (%s), SubFunc: Slave Busy Cnt (%s), Data: %s, ChkSum: %s", + AddResultString( "Diagnostics [ACK] - Server Busy Cnt" ); + sprintf( result_str, "DeviceID: %s, Func: Diagnostics [ACK] (%s), SubFunc: Server Busy Cnt (%s), Data: %s, ChkSum: %s", DeviceAddrStr, FunctionCodeStr, Payload1Str, Payload2Str, ChecksumStr ); break; case RETURN_BUS_CHAR_OVERRUN_COUNT: @@ -433,9 +433,9 @@ void ModbusAnalyzerResults::GenerateBubbleText( U64 frame_index, Channel& /*chan sprintf( result_str, "DeviceID: %s, Func: Write Multiple Registers [ACK] (%s), StartAddr: %s, Qty: %s, ChkSum: %s", DeviceAddrStr, FunctionCodeStr, Payload1Str, Payload2Str, ChecksumStr ); break; - case FUNCCODE_REPORT_SLAVE_ID: - AddResultString( "Report Slave ID [ACK]" ); - sprintf( result_str, "DeviceID: %s, Func: Report Slave ID [ACK] (%s), ByteCount: %s", DeviceAddrStr, FunctionCodeStr, + case FUNCCODE_REPORT_SERVER_ID: + AddResultString( "Report Server ID [ACK]" ); + sprintf( result_str, "DeviceID: %s, Func: Report Server ID [ACK] (%s), ByteCount: %s", DeviceAddrStr, FunctionCodeStr, ChecksumStr ); break; case FUNCCODE_READ_FILE_RECORD: @@ -536,9 +536,9 @@ void ModbusAnalyzerResults::GenerateBubbleText( U64 frame_index, Channel& /*chan sprintf( result_str, "DeviceID: %s, Func: Write Multiple Registers [NACK] (%s), ExceptionCode: %s, ChkSum: %s", DeviceAddrStr, FunctionCodeStr, Payload1Str, ChecksumStr ); break; - case FUNCCODE_REPORT_SLAVE_ID: - AddResultString( "Report Slave ID [NACK]" ); - sprintf( result_str, "DeviceID: %s, Func: Report Slave ID [NACK] (%s), ExceptionCode: %s, ChkSum: %s", DeviceAddrStr, + case FUNCCODE_REPORT_SERVER_ID: + AddResultString( "Report Server ID [NACK]" ); + sprintf( result_str, "DeviceID: %s, Func: Report Server ID [NACK] (%s), ExceptionCode: %s, ChkSum: %s", DeviceAddrStr, FunctionCodeStr, Payload1Str, ChecksumStr ); break; case FUNCCODE_READ_FILE_RECORD: @@ -712,10 +712,10 @@ void ModbusAnalyzerResults::GenerateExportFile( const char* file, DisplayBase di } } } - else if( mSettings->mModbusMode == ModbusAnalyzerEnums::ModbusRTUMaster || - mSettings->mModbusMode == ModbusAnalyzerEnums::ModbusRTUSlave || - mSettings->mModbusMode == ModbusAnalyzerEnums::ModbusASCIIMaster || - mSettings->mModbusMode == ModbusAnalyzerEnums::ModbusASCIISlave ) + else if( mSettings->mModbusMode == ModbusAnalyzerEnums::ModbusRTUClient || + mSettings->mModbusMode == ModbusAnalyzerEnums::ModbusRTUServer || + mSettings->mModbusMode == ModbusAnalyzerEnums::ModbusASCIIClient || + mSettings->mModbusMode == ModbusAnalyzerEnums::ModbusASCIIServer ) { // Modbus Mode ss << "Time [s], DeviceID, Function Code, Message" << std::endl; @@ -829,20 +829,20 @@ void ModbusAnalyzerResults::GenerateExportFile( const char* file, DisplayBase di sprintf( result_str, "%s, Diagnostics (%s), SubFunc: Bus Excpt Err Cnt (%s), Data: %s, ChkSum: %s", DeviceAddrStr, FunctionCodeStr, Payload1Str, Payload2Str, ChecksumStr ); break; - case RETURN_SLAVE_MESSAGE_COUNT: - sprintf( result_str, "%s, Diagnostics (%s), SubFunc: Slave Msg Cnt (%s), Data: %s, ChkSum: %s", DeviceAddrStr, + case RETURN_SERVER_MESSAGE_COUNT: + sprintf( result_str, "%s, Diagnostics (%s), SubFunc: Server Msg Cnt (%s), Data: %s, ChkSum: %s", DeviceAddrStr, FunctionCodeStr, Payload1Str, Payload2Str, ChecksumStr ); break; - case RETURN_SLAVE_NO_RESPONSE_COUNT: - sprintf( result_str, "%s, Diagnostics (%s), SubFunc: Slave No Resp Cnt (%s), Data: %s, ChkSum: %s", DeviceAddrStr, + case RETURN_SERVER_NO_RESPONSE_COUNT: + sprintf( result_str, "%s, Diagnostics (%s), SubFunc: Server No Resp Cnt (%s), Data: %s, ChkSum: %s", DeviceAddrStr, FunctionCodeStr, Payload1Str, Payload2Str, ChecksumStr ); break; - case RETURN_SLAVE_NAK_COUNT: - sprintf( result_str, "%s, Diagnostics (%s), SubFunc: Slave NAK Cnt (%s), Data: %s, ChkSum: %s", DeviceAddrStr, + case RETURN_SERVER_NAK_COUNT: + sprintf( result_str, "%s, Diagnostics (%s), SubFunc: Server NAK Cnt (%s), Data: %s, ChkSum: %s", DeviceAddrStr, FunctionCodeStr, Payload1Str, Payload2Str, ChecksumStr ); break; - case RETURN_SLAVE_BUSY_COUNT: - sprintf( result_str, "%s, Diagnostics (%s), SubFunc: Slave Busy Cnt (%s), Data: %s, ChkSum: %s", DeviceAddrStr, + case RETURN_SERVER_BUSY_COUNT: + sprintf( result_str, "%s, Diagnostics (%s), SubFunc: Server Busy Cnt (%s), Data: %s, ChkSum: %s", DeviceAddrStr, FunctionCodeStr, Payload1Str, Payload2Str, ChecksumStr ); break; case RETURN_BUS_CHAR_OVERRUN_COUNT: @@ -869,8 +869,8 @@ void ModbusAnalyzerResults::GenerateExportFile( const char* file, DisplayBase di sprintf( result_str, "%s, Write Multiple Registers (%s), StartAddr: %s, Qty: %s, ByteCount: %s", DeviceAddrStr, FunctionCodeStr, Payload1Str, Payload2Str, ChecksumStr ); break; - case FUNCCODE_REPORT_SLAVE_ID: - sprintf( result_str, "%s, Report Slave ID (%s), ChkSum: %s", DeviceAddrStr, FunctionCodeStr, ChecksumStr ); + case FUNCCODE_REPORT_SERVER_ID: + sprintf( result_str, "%s, Report Server ID (%s), ChkSum: %s", DeviceAddrStr, FunctionCodeStr, ChecksumStr ); break; case FUNCCODE_READ_FILE_RECORD: sprintf( result_str, "%s, Read File Record (%s), ByteCount: %s", DeviceAddrStr, FunctionCodeStr, ChecksumStr ); @@ -967,20 +967,20 @@ void ModbusAnalyzerResults::GenerateExportFile( const char* file, DisplayBase di sprintf( result_str, "%s, Diagnostics [ACK] (%s), SubFunc: Bus Excpt Err Cnt (%s), Data: %s, ChkSum: %s", DeviceAddrStr, FunctionCodeStr, Payload1Str, Payload2Str, ChecksumStr ); break; - case RETURN_SLAVE_MESSAGE_COUNT: - sprintf( result_str, "%s, Diagnostics [ACK] (%s), SubFunc: Slave Msg Cnt (%s), Data: %s, ChkSum: %s", DeviceAddrStr, + case RETURN_SERVER_MESSAGE_COUNT: + sprintf( result_str, "%s, Diagnostics [ACK] (%s), SubFunc: Server Msg Cnt (%s), Data: %s, ChkSum: %s", DeviceAddrStr, FunctionCodeStr, Payload1Str, Payload2Str, ChecksumStr ); break; - case RETURN_SLAVE_NO_RESPONSE_COUNT: - sprintf( result_str, "%s, Diagnostics [ACK] (%s), SubFunc: Slave No Resp Cnt (%s), Data: %s, ChkSum: %s", + case RETURN_SERVER_NO_RESPONSE_COUNT: + sprintf( result_str, "%s, Diagnostics [ACK] (%s), SubFunc: Server No Resp Cnt (%s), Data: %s, ChkSum: %s", DeviceAddrStr, FunctionCodeStr, Payload1Str, Payload2Str, ChecksumStr ); break; - case RETURN_SLAVE_NAK_COUNT: - sprintf( result_str, "%s, Diagnostics [ACK] (%s), SubFunc: Slave NAK Cnt (%s), Data: %s, ChkSum: %s", DeviceAddrStr, + case RETURN_SERVER_NAK_COUNT: + sprintf( result_str, "%s, Diagnostics [ACK] (%s), SubFunc: Server NAK Cnt (%s), Data: %s, ChkSum: %s", DeviceAddrStr, FunctionCodeStr, Payload1Str, Payload2Str, ChecksumStr ); break; - case RETURN_SLAVE_BUSY_COUNT: - sprintf( result_str, "%s, Diagnostics [ACK] (%s), SubFunc: Slave Busy Cnt (%s), Data: %s, ChkSum: %s", + case RETURN_SERVER_BUSY_COUNT: + sprintf( result_str, "%s, Diagnostics [ACK] (%s), SubFunc: Server Busy Cnt (%s), Data: %s, ChkSum: %s", DeviceAddrStr, FunctionCodeStr, Payload1Str, Payload2Str, ChecksumStr ); break; case RETURN_BUS_CHAR_OVERRUN_COUNT: @@ -1009,8 +1009,8 @@ void ModbusAnalyzerResults::GenerateExportFile( const char* file, DisplayBase di sprintf( result_str, "%s, Write Multiple Registers [ACK] (%s), StartAddr: %s, Qty: %s, ChkSum: %s", DeviceAddrStr, FunctionCodeStr, Payload1Str, Payload2Str, ChecksumStr ); break; - case FUNCCODE_REPORT_SLAVE_ID: - sprintf( result_str, "%s, Report Slave ID [ACK] (%s), ByteCount: %s", DeviceAddrStr, FunctionCodeStr, ChecksumStr ); + case FUNCCODE_REPORT_SERVER_ID: + sprintf( result_str, "%s, Report Server ID [ACK] (%s), ByteCount: %s", DeviceAddrStr, FunctionCodeStr, ChecksumStr ); break; case FUNCCODE_READ_FILE_RECORD: sprintf( result_str, "%s, Read File Record [ACK] (%s), ByteCount: %s", DeviceAddrStr, FunctionCodeStr, ChecksumStr ); @@ -1088,8 +1088,8 @@ void ModbusAnalyzerResults::GenerateExportFile( const char* file, DisplayBase di sprintf( result_str, "%s, Write Multiple Registers [NACK] (%s), ExceptionCode: %s, ChkSum: %s", DeviceAddrStr, FunctionCodeStr, Payload1Str, ChecksumStr ); break; - case FUNCCODE_REPORT_SLAVE_ID: - sprintf( result_str, "%s, Report Slave ID [NACK] (%s), ExceptionCode: %s, ChkSum: %s", DeviceAddrStr, FunctionCodeStr, + case FUNCCODE_REPORT_SERVER_ID: + sprintf( result_str, "%s, Report Server ID [NACK] (%s), ExceptionCode: %s, ChkSum: %s", DeviceAddrStr, FunctionCodeStr, Payload1Str, ChecksumStr ); break; case FUNCCODE_READ_FILE_RECORD: @@ -1227,9 +1227,9 @@ void ModbusAnalyzerResults::GenerateFrameTabularText( U64 frame_index, DisplayBa if( mSettings->mModbusMode != ModbusAnalyzerEnums::Normal ) bits_per_transfer--; - if( mSettings->mModbusMode == ModbusAnalyzerEnums::ModbusASCIIMaster || - mSettings->mModbusMode == ModbusAnalyzerEnums::ModbusASCIISlave || mSettings->mModbusMode == ModbusAnalyzerEnums::ModbusRTUMaster || - mSettings->mModbusMode == ModbusAnalyzerEnums::ModbusRTUSlave ) + if( mSettings->mModbusMode == ModbusAnalyzerEnums::ModbusASCIIClient || + mSettings->mModbusMode == ModbusAnalyzerEnums::ModbusASCIIServer || mSettings->mModbusMode == ModbusAnalyzerEnums::ModbusRTUClient || + mSettings->mModbusMode == ModbusAnalyzerEnums::ModbusRTUServer ) { char DeviceAddrStr[ 128 ]; U8 DeviceAddr = ( frame.mData1 & 0xFF00000000000000 ) >> 56; @@ -1336,20 +1336,20 @@ void ModbusAnalyzerResults::GenerateFrameTabularText( U64 frame_index, DisplayBa sprintf( result_str, "DeviceID: %s, Func: Diagnostics (%s), SubFunc: Bus Excpt Err Cnt (%s), Data: %s, ChkSum: %s", DeviceAddrStr, FunctionCodeStr, Payload1Str, Payload2Str, ChecksumStr ); break; - case RETURN_SLAVE_MESSAGE_COUNT: - sprintf( result_str, "DeviceID: %s, Func: Diagnostics (%s), SubFunc: Slave Msg Cnt (%s), Data: %s, ChkSum: %s", + case RETURN_SERVER_MESSAGE_COUNT: + sprintf( result_str, "DeviceID: %s, Func: Diagnostics (%s), SubFunc: Server Msg Cnt (%s), Data: %s, ChkSum: %s", DeviceAddrStr, FunctionCodeStr, Payload1Str, Payload2Str, ChecksumStr ); break; - case RETURN_SLAVE_NO_RESPONSE_COUNT: - sprintf( result_str, "DeviceID: %s, Func: Diagnostics (%s), SubFunc: Slave No Resp Cnt (%s), Data: %s, ChkSum: %s", + case RETURN_SERVER_NO_RESPONSE_COUNT: + sprintf( result_str, "DeviceID: %s, Func: Diagnostics (%s), SubFunc: Server No Resp Cnt (%s), Data: %s, ChkSum: %s", DeviceAddrStr, FunctionCodeStr, Payload1Str, Payload2Str, ChecksumStr ); break; - case RETURN_SLAVE_NAK_COUNT: - sprintf( result_str, "DeviceID: %s, Func: Diagnostics (%s), SubFunc: Slave NAK Cnt (%s), Data: %s, ChkSum: %s", + case RETURN_SERVER_NAK_COUNT: + sprintf( result_str, "DeviceID: %s, Func: Diagnostics (%s), SubFunc: Server NAK Cnt (%s), Data: %s, ChkSum: %s", DeviceAddrStr, FunctionCodeStr, Payload1Str, Payload2Str, ChecksumStr ); break; - case RETURN_SLAVE_BUSY_COUNT: - sprintf( result_str, "DeviceID: %s, Func: Diagnostics (%s), SubFunc: Slave Busy Cnt (%s), Data: %s, ChkSum: %s", + case RETURN_SERVER_BUSY_COUNT: + sprintf( result_str, "DeviceID: %s, Func: Diagnostics (%s), SubFunc: Server Busy Cnt (%s), Data: %s, ChkSum: %s", DeviceAddrStr, FunctionCodeStr, Payload1Str, Payload2Str, ChecksumStr ); break; case RETURN_BUS_CHAR_OVERRUN_COUNT: @@ -1378,8 +1378,8 @@ void ModbusAnalyzerResults::GenerateFrameTabularText( U64 frame_index, DisplayBa sprintf( result_str, "DeviceID: %s, Func: Write Multiple Registers (%s), StartAddr: %s, Qty: %s, ByteCount: %s", DeviceAddrStr, FunctionCodeStr, Payload1Str, Payload2Str, ChecksumStr ); break; - case FUNCCODE_REPORT_SLAVE_ID: - sprintf( result_str, "DeviceID: %s, Func: Report Slave ID (%s), ChkSum: %s", DeviceAddrStr, FunctionCodeStr, ChecksumStr ); + case FUNCCODE_REPORT_SERVER_ID: + sprintf( result_str, "DeviceID: %s, Func: Report Server ID (%s), ChkSum: %s", DeviceAddrStr, FunctionCodeStr, ChecksumStr ); break; case FUNCCODE_READ_FILE_RECORD: sprintf( result_str, "DeviceID: %s, Func: Read File Record (%s), ByteCount: %s", DeviceAddrStr, FunctionCodeStr, @@ -1488,21 +1488,21 @@ void ModbusAnalyzerResults::GenerateFrameTabularText( U64 frame_index, DisplayBa "DeviceID: %s, Func: Diagnostics [ACK] (%s), SubFunc: Bus Excpt Err Cnt (%s), Data: %s, ChkSum: %s", DeviceAddrStr, FunctionCodeStr, Payload1Str, Payload2Str, ChecksumStr ); break; - case RETURN_SLAVE_MESSAGE_COUNT: - sprintf( result_str, "DeviceID: %s, Func: Diagnostics [ACK] (%s), SubFunc: Slave Msg Cnt (%s), Data: %s, ChkSum: %s", + case RETURN_SERVER_MESSAGE_COUNT: + sprintf( result_str, "DeviceID: %s, Func: Diagnostics [ACK] (%s), SubFunc: Server Msg Cnt (%s), Data: %s, ChkSum: %s", DeviceAddrStr, FunctionCodeStr, Payload1Str, Payload2Str, ChecksumStr ); break; - case RETURN_SLAVE_NO_RESPONSE_COUNT: + case RETURN_SERVER_NO_RESPONSE_COUNT: sprintf( result_str, - "DeviceID: %s, Func: Diagnostics [ACK] (%s), SubFunc: Slave No Resp Cnt (%s), Data: %s, ChkSum: %s", + "DeviceID: %s, Func: Diagnostics [ACK] (%s), SubFunc: Server No Resp Cnt (%s), Data: %s, ChkSum: %s", DeviceAddrStr, FunctionCodeStr, Payload1Str, Payload2Str, ChecksumStr ); break; - case RETURN_SLAVE_NAK_COUNT: - sprintf( result_str, "DeviceID: %s, Func: Diagnostics [ACK] (%s), SubFunc: Slave NAK Cnt (%s), Data: %s, ChkSum: %s", + case RETURN_SERVER_NAK_COUNT: + sprintf( result_str, "DeviceID: %s, Func: Diagnostics [ACK] (%s), SubFunc: Server NAK Cnt (%s), Data: %s, ChkSum: %s", DeviceAddrStr, FunctionCodeStr, Payload1Str, Payload2Str, ChecksumStr ); break; - case RETURN_SLAVE_BUSY_COUNT: - sprintf( result_str, "DeviceID: %s, Func: Diagnostics [ACK] (%s), SubFunc: Slave Busy Cnt (%s), Data: %s, ChkSum: %s", + case RETURN_SERVER_BUSY_COUNT: + sprintf( result_str, "DeviceID: %s, Func: Diagnostics [ACK] (%s), SubFunc: Server Busy Cnt (%s), Data: %s, ChkSum: %s", DeviceAddrStr, FunctionCodeStr, Payload1Str, Payload2Str, ChecksumStr ); break; case RETURN_BUS_CHAR_OVERRUN_COUNT: @@ -1534,8 +1534,8 @@ void ModbusAnalyzerResults::GenerateFrameTabularText( U64 frame_index, DisplayBa sprintf( result_str, "DeviceID: %s, Func: Write Multiple Registers [ACK] (%s), StartAddr: %s, Qty: %s, ChkSum: %s", DeviceAddrStr, FunctionCodeStr, Payload1Str, Payload2Str, ChecksumStr ); break; - case FUNCCODE_REPORT_SLAVE_ID: - sprintf( result_str, "DeviceID: %s, Func: Report Slave ID [ACK] (%s), ByteCount: %s", DeviceAddrStr, FunctionCodeStr, + case FUNCCODE_REPORT_SERVER_ID: + sprintf( result_str, "DeviceID: %s, Func: Report Server ID [ACK] (%s), ByteCount: %s", DeviceAddrStr, FunctionCodeStr, ChecksumStr ); break; case FUNCCODE_READ_FILE_RECORD: @@ -1617,8 +1617,8 @@ void ModbusAnalyzerResults::GenerateFrameTabularText( U64 frame_index, DisplayBa sprintf( result_str, "DeviceID: %s, Func: Write Multiple Registers [NACK] (%s), ExceptionCode: %s, ChkSum: %s", DeviceAddrStr, FunctionCodeStr, Payload1Str, ChecksumStr ); break; - case FUNCCODE_REPORT_SLAVE_ID: - sprintf( result_str, "DeviceID: %s, Func: Report Slave ID [NACK] (%s), ExceptionCode: %s, ChkSum: %s", DeviceAddrStr, + case FUNCCODE_REPORT_SERVER_ID: + sprintf( result_str, "DeviceID: %s, Func: Report Server ID [NACK] (%s), ExceptionCode: %s, ChkSum: %s", DeviceAddrStr, FunctionCodeStr, Payload1Str, ChecksumStr ); break; case FUNCCODE_READ_FILE_RECORD: diff --git a/src/ModbusAnalyzerSettings.cpp b/src/ModbusAnalyzerSettings.cpp index 88d68e4..7c9e3df 100644 --- a/src/ModbusAnalyzerSettings.cpp +++ b/src/ModbusAnalyzerSettings.cpp @@ -16,7 +16,7 @@ ModbusAnalyzerSettings::ModbusAnalyzerSettings() mParity( ModbusAnalyzerEnums::ParityAndStopbits::EvenOne ), mInverted( false ), mUseAutobaud( false ), - mModbusMode( ModbusAnalyzerEnums::ModbusRTUMaster ) + mModbusMode( ModbusAnalyzerEnums::ModbusRTUClient ) { mParityInterface.reset( new AnalyzerSettingInterfaceNumberList() ); mParityInterface->SetTitleAndTooltip( "Parity Bit", "Specify None, Even, or Odd Parity" ); @@ -35,11 +35,11 @@ ModbusAnalyzerSettings::ModbusAnalyzerSettings() mModbusModeInterface.reset( new AnalyzerSettingInterfaceNumberList() ); mModbusModeInterface->SetTitleAndTooltip( "Modbus Mode", "Specify which mode of Modbus this is" ); - mModbusModeInterface->AddNumber( ModbusAnalyzerEnums::ModbusRTUMaster, "RTU - Master", "Messages are transmitted in binary" ); - mModbusModeInterface->AddNumber( ModbusAnalyzerEnums::ModbusRTUSlave, "RTU - Slave", "Messages are transmitted in binary" ); - mModbusModeInterface->AddNumber( ModbusAnalyzerEnums::ModbusASCIIMaster, "ASCII - Master", + mModbusModeInterface->AddNumber( ModbusAnalyzerEnums::ModbusRTUClient, "RTU - Client", "Messages are transmitted in binary" ); + mModbusModeInterface->AddNumber( ModbusAnalyzerEnums::ModbusRTUServer, "RTU - Server", "Messages are transmitted in binary" ); + mModbusModeInterface->AddNumber( ModbusAnalyzerEnums::ModbusASCIIClient, "ASCII - Client", "Messages are transmitted in ASCII-readable format" ); - mModbusModeInterface->AddNumber( ModbusAnalyzerEnums::ModbusASCIISlave, "ASCII - Slave", + mModbusModeInterface->AddNumber( ModbusAnalyzerEnums::ModbusASCIIServer, "ASCII - Server", "Messages are transmitted in ASCII-readable format" ); mModbusModeInterface->SetNumber( mModbusMode ); diff --git a/src/ModbusAnalyzerSettings.h b/src/ModbusAnalyzerSettings.h index 2e11cf2..7e41abf 100644 --- a/src/ModbusAnalyzerSettings.h +++ b/src/ModbusAnalyzerSettings.h @@ -11,14 +11,14 @@ namespace ModbusAnalyzerEnums // Note: There is another definition of enum Mode in the cpp file. { - // enum Mode { Normal, MpModeMsbZeroMeansAddress, MpModeMsbOneMeansAddress, ModbusRTUMaster, ModbusRTUSlave, ModbusASCIIMaster, - // ModbusASCIISlave }; + // enum Mode { Normal, MpModeMsbZeroMeansAddress, MpModeMsbOneMeansAddress, ModbusRTUClient, ModbusRTUServer, ModbusASCIIClient, + // ModbusASCIIServer }; enum Mode { - ModbusRTUMaster, - ModbusRTUSlave, - ModbusASCIIMaster, - ModbusASCIISlave, + ModbusRTUClient, + ModbusRTUServer, + ModbusASCIIClient, + ModbusASCIIServer, Normal, MpModeMsbZeroMeansAddress, MpModeMsbOneMeansAddress diff --git a/src/ModbusSimulationDataGenerator.cpp b/src/ModbusSimulationDataGenerator.cpp index 37285e7..58beb08 100644 --- a/src/ModbusSimulationDataGenerator.cpp +++ b/src/ModbusSimulationDataGenerator.cpp @@ -55,10 +55,10 @@ U32 ModbusSimulationDataGenerator::GenerateSimulationData( U64 largest_sample_re while( mModbusSimulationData.GetCurrentSampleNumber() < adjusted_largest_sample_requested ) { - if( mSettings->mModbusMode == ModbusAnalyzerEnums::ModbusRTUMaster || - mSettings->mModbusMode == ModbusAnalyzerEnums::ModbusASCIIMaster ) + if( mSettings->mModbusMode == ModbusAnalyzerEnums::ModbusRTUClient || + mSettings->mModbusMode == ModbusAnalyzerEnums::ModbusASCIIClient ) { - // Simulate the Master Device on a Modbus channel + // Simulate the Client Device on a Modbus channel SendGenericRequest( 0x01, 0x01, 0x0013, 0x0013 ); mModbusSimulationData.Advance( mClockGenerator.AdvanceByTimeS( .125 ) ); @@ -112,16 +112,16 @@ U32 ModbusSimulationDataGenerator::GenerateSimulationData( U64 largest_sample_re SendRequest_Diagnostics( 0x01, RETURN_BUS_EXCEPTION_ERROR_COUNT, 0x0000 ); mModbusSimulationData.Advance( mClockGenerator.AdvanceByTimeS( .125 ) ); - SendRequest_Diagnostics( 0x01, RETURN_SLAVE_MESSAGE_COUNT, 0x0000 ); + SendRequest_Diagnostics( 0x01, RETURN_SERVER_MESSAGE_COUNT, 0x0000 ); mModbusSimulationData.Advance( mClockGenerator.AdvanceByTimeS( .125 ) ); - SendRequest_Diagnostics( 0x01, RETURN_SLAVE_NO_RESPONSE_COUNT, 0x0000 ); + SendRequest_Diagnostics( 0x01, RETURN_SERVER_NO_RESPONSE_COUNT, 0x0000 ); mModbusSimulationData.Advance( mClockGenerator.AdvanceByTimeS( .125 ) ); - SendRequest_Diagnostics( 0x01, RETURN_SLAVE_NAK_COUNT, 0x0000 ); + SendRequest_Diagnostics( 0x01, RETURN_SERVER_NAK_COUNT, 0x0000 ); mModbusSimulationData.Advance( mClockGenerator.AdvanceByTimeS( .125 ) ); - SendRequest_Diagnostics( 0x01, RETURN_SLAVE_BUSY_COUNT, 0x0000 ); + SendRequest_Diagnostics( 0x01, RETURN_SERVER_BUSY_COUNT, 0x0000 ); mModbusSimulationData.Advance( mClockGenerator.AdvanceByTimeS( .125 ) ); SendRequest_Diagnostics( 0x01, RETURN_BUS_CHAR_OVERRUN_COUNT, 0x0000 ); @@ -172,10 +172,10 @@ U32 ModbusSimulationDataGenerator::GenerateSimulationData( U64 largest_sample_re SendReadFIFOQueueRequest( 0x01, 0x04DE ); mModbusSimulationData.Advance( mClockGenerator.AdvanceByTimeS( .125 ) ); } - else if( mSettings->mModbusMode == ModbusAnalyzerEnums::ModbusRTUSlave || - mSettings->mModbusMode == ModbusAnalyzerEnums::ModbusASCIISlave ) + else if( mSettings->mModbusMode == ModbusAnalyzerEnums::ModbusRTUServer || + mSettings->mModbusMode == ModbusAnalyzerEnums::ModbusASCIIServer ) { - // Simulate a Slave Device on a Modbus/RTU channel + // Simulate a Server Device on a Modbus/RTU channel mModbusSimulationData.Advance( mClockGenerator.AdvanceByTimeS( .075 ) ); U8 bytes[ 3 ] = { 0xCD, 0x6B, 0x05 }; @@ -238,16 +238,16 @@ U32 ModbusSimulationDataGenerator::GenerateSimulationData( U64 largest_sample_re SendRequest_Diagnostics( 0x01, RETURN_BUS_EXCEPTION_ERROR_COUNT, 0x0003 ); mModbusSimulationData.Advance( mClockGenerator.AdvanceByTimeS( .125 ) ); - SendRequest_Diagnostics( 0x01, RETURN_SLAVE_MESSAGE_COUNT, 0x0002 ); + SendRequest_Diagnostics( 0x01, RETURN_SERVER_MESSAGE_COUNT, 0x0002 ); mModbusSimulationData.Advance( mClockGenerator.AdvanceByTimeS( .125 ) ); - SendRequest_Diagnostics( 0x01, RETURN_SLAVE_NO_RESPONSE_COUNT, 0x0001 ); + SendRequest_Diagnostics( 0x01, RETURN_SERVER_NO_RESPONSE_COUNT, 0x0001 ); mModbusSimulationData.Advance( mClockGenerator.AdvanceByTimeS( .125 ) ); - SendRequest_Diagnostics( 0x01, RETURN_SLAVE_NAK_COUNT, 0x0002 ); + SendRequest_Diagnostics( 0x01, RETURN_SERVER_NAK_COUNT, 0x0002 ); mModbusSimulationData.Advance( mClockGenerator.AdvanceByTimeS( .125 ) ); - SendRequest_Diagnostics( 0x01, RETURN_SLAVE_BUSY_COUNT, 0x0003 ); + SendRequest_Diagnostics( 0x01, RETURN_SERVER_BUSY_COUNT, 0x0003 ); mModbusSimulationData.Advance( mClockGenerator.AdvanceByTimeS( .125 ) ); SendRequest_Diagnostics( 0x01, RETURN_BUS_CHAR_OVERRUN_COUNT, 0x0004 ); @@ -273,9 +273,9 @@ U32 ModbusSimulationDataGenerator::GenerateSimulationData( U64 largest_sample_re mModbusSimulationData.Advance( mClockGenerator.AdvanceByTimeS( .125 ) ); // This one is device specific, but here's a sample implementation for decode purposes - // SlaveID is "Saleae" followed by 0xFF (ON) - U8 SlaveID[] = { 0x53, 0x61, 0x6C, 0x65, 0x61, 0x65, 0xFF }; - SendReportSlaveIDResponse( 0x01, 0x07, SlaveID ); + // ServerID is "Saleae" followed by 0xFF (ON) + U8 ServerID[] = { 0x53, 0x61, 0x6C, 0x65, 0x61, 0x65, 0xFF }; + SendReportServerIDResponse( 0x01, 0x07, ServerID ); mModbusSimulationData.Advance( mClockGenerator.AdvanceByTimeS( .125 ) ); // 0x14 here @@ -606,7 +606,7 @@ void ModbusSimulationDataGenerator::CreateModbusByte( U64 value ) void ModbusSimulationDataGenerator::SendGenericRequest( U8 DeviceID, U8 FuncCode, U16 StartingAddress, U16 Quantity ) { - if( mSettings->mModbusMode == ModbusAnalyzerEnums::ModbusRTUMaster || mSettings->mModbusMode == ModbusAnalyzerEnums::ModbusRTUSlave ) + if( mSettings->mModbusMode == ModbusAnalyzerEnums::ModbusRTUClient || mSettings->mModbusMode == ModbusAnalyzerEnums::ModbusRTUServer ) { CreateModbusByte( DeviceID ); mModbusSimulationData.Advance( mClockGenerator.AdvanceByHalfPeriod( 10.0 ) ); // insert 10 bit-periods of idle @@ -703,7 +703,7 @@ void ModbusSimulationDataGenerator::SendGenericRequest( U8 DeviceID, U8 FuncCode void ModbusSimulationDataGenerator::SendGenDiagnosticRequest( U8 DeviceID, U8 FuncCode ) { - if( mSettings->mModbusMode == ModbusAnalyzerEnums::ModbusRTUMaster ) + if( mSettings->mModbusMode == ModbusAnalyzerEnums::ModbusRTUClient ) { CreateModbusByte( DeviceID ); mModbusSimulationData.Advance( mClockGenerator.AdvanceByHalfPeriod( 10.0 ) ); // insert 10 bit-periods of idle @@ -761,7 +761,7 @@ void ModbusSimulationDataGenerator::SendGenDiagnosticRequest( U8 DeviceID, U8 Fu void ModbusSimulationDataGenerator::SendMaskWriteRegisterRequest( U8 DeviceID, U16 ReferenceAddress, U16 And_Mask, U16 Or_Mask ) { - if( mSettings->mModbusMode == ModbusAnalyzerEnums::ModbusRTUMaster || mSettings->mModbusMode == ModbusAnalyzerEnums::ModbusRTUSlave ) + if( mSettings->mModbusMode == ModbusAnalyzerEnums::ModbusRTUClient || mSettings->mModbusMode == ModbusAnalyzerEnums::ModbusRTUServer ) { CreateModbusByte( DeviceID ); mModbusSimulationData.Advance( mClockGenerator.AdvanceByHalfPeriod( 10.0 ) ); // insert 10 bit-periods of idle @@ -876,7 +876,7 @@ void ModbusSimulationDataGenerator::SendMaskWriteRegisterRequest( U8 DeviceID, U void ModbusSimulationDataGenerator::SendReadFIFOQueueRequest( U8 DeviceID, U16 FIFOAddress ) { - if( mSettings->mModbusMode == ModbusAnalyzerEnums::ModbusRTUMaster ) + if( mSettings->mModbusMode == ModbusAnalyzerEnums::ModbusRTUClient ) { CreateModbusByte( DeviceID ); mModbusSimulationData.Advance( mClockGenerator.AdvanceByHalfPeriod( 10.0 ) ); // insert 10 bit-periods of idle @@ -954,7 +954,7 @@ void ModbusSimulationDataGenerator::SendReadFIFOQueueRequest( U8 DeviceID, U16 F void ModbusSimulationDataGenerator::SendRequest_Diagnostics( U8 DeviceID, U16 SubFunction, U16 Data ) { - if( mSettings->mModbusMode == ModbusAnalyzerEnums::ModbusRTUMaster || mSettings->mModbusMode == ModbusAnalyzerEnums::ModbusRTUSlave ) + if( mSettings->mModbusMode == ModbusAnalyzerEnums::ModbusRTUClient || mSettings->mModbusMode == ModbusAnalyzerEnums::ModbusRTUServer ) { CreateModbusByte( DeviceID ); mModbusSimulationData.Advance( mClockGenerator.AdvanceByHalfPeriod( 10.0 ) ); // insert 10 bit-periods of idle @@ -1051,7 +1051,7 @@ void ModbusSimulationDataGenerator::SendRequest_Diagnostics( U8 DeviceID, U16 Su void ModbusSimulationDataGenerator::SendWriteMultipleCoilsRequest( U8 DeviceID, U16 StartingAddress, U16 Quantity, U8 ByteCount, U8 Values[] ) { - if( mSettings->mModbusMode == ModbusAnalyzerEnums::ModbusRTUMaster ) + if( mSettings->mModbusMode == ModbusAnalyzerEnums::ModbusRTUClient ) { CreateModbusByte( DeviceID ); mModbusSimulationData.Advance( mClockGenerator.AdvanceByHalfPeriod( 10.0 ) ); // insert 10 bit-periods of idle @@ -1183,7 +1183,7 @@ void ModbusSimulationDataGenerator::SendWriteMultipleCoilsRequest( U8 DeviceID, void ModbusSimulationDataGenerator::SendWriteMultipleRegistersRequest( U8 DeviceID, U16 StartingAddress, U16 Quantity, U8 ByteCount, U16 Values[] ) { - if( mSettings->mModbusMode == ModbusAnalyzerEnums::ModbusRTUMaster ) + if( mSettings->mModbusMode == ModbusAnalyzerEnums::ModbusRTUClient ) { CreateModbusByte( DeviceID ); mModbusSimulationData.Advance( mClockGenerator.AdvanceByHalfPeriod( 10.0 ) ); // insert 10 bit-periods of idle @@ -1324,7 +1324,7 @@ void ModbusSimulationDataGenerator::SendReadFileRecordRequest( U8 DeviceID, U8 B U16 SubReqFileNumbers[], U16 SubReqRecordNumbers[], U16 SubReqRecordLengths[] ) { - if( mSettings->mModbusMode == ModbusAnalyzerEnums::ModbusRTUMaster ) + if( mSettings->mModbusMode == ModbusAnalyzerEnums::ModbusRTUClient ) { CreateModbusByte( DeviceID ); mModbusSimulationData.Advance( mClockGenerator.AdvanceByHalfPeriod( 10.0 ) ); // insert 10 bit-periods of idle @@ -1476,7 +1476,7 @@ void ModbusSimulationDataGenerator::SendWriteFileRecordRequest( U8 DeviceID, U8 U16 SubReqFileNumbers[], U16 SubReqRecordNumbers[], U16 SubReqRecordLengths[], U16 SubReqRecordData[ 1 ][ 3 ] ) { - if( mSettings->mModbusMode == ModbusAnalyzerEnums::ModbusRTUMaster || mSettings->mModbusMode == ModbusAnalyzerEnums::ModbusRTUSlave ) + if( mSettings->mModbusMode == ModbusAnalyzerEnums::ModbusRTUClient || mSettings->mModbusMode == ModbusAnalyzerEnums::ModbusRTUServer ) { CreateModbusByte( DeviceID ); mModbusSimulationData.Advance( mClockGenerator.AdvanceByHalfPeriod( 10.0 ) ); // insert 10 bit-periods of idle @@ -1680,7 +1680,7 @@ void ModbusSimulationDataGenerator::SendReadWriteMultipleRegisters( U8 DeviceID, U16 WriteStartingAddress, U16 QuantityToWrite, U8 WriteByteCount, U16 Values[] ) { - if( mSettings->mModbusMode == ModbusAnalyzerEnums::ModbusRTUMaster ) + if( mSettings->mModbusMode == ModbusAnalyzerEnums::ModbusRTUClient ) { CreateModbusByte( DeviceID ); mModbusSimulationData.Advance( mClockGenerator.AdvanceByHalfPeriod( 10.0 ) ); // insert 10 bit-periods of idle @@ -1858,7 +1858,7 @@ void ModbusSimulationDataGenerator::SendReadWriteMultipleRegisters( U8 DeviceID, void ModbusSimulationDataGenerator::SendGenericResponse( U8 DeviceID, U8 FuncCode, U8 ByteCount, U8 Status[] ) { - if( mSettings->mModbusMode == ModbusAnalyzerEnums::ModbusRTUSlave ) + if( mSettings->mModbusMode == ModbusAnalyzerEnums::ModbusRTUServer ) { CreateModbusByte( DeviceID ); mModbusSimulationData.Advance( mClockGenerator.AdvanceByHalfPeriod( 10.0 ) ); // insert 10 bit-periods of idle @@ -1953,7 +1953,7 @@ void ModbusSimulationDataGenerator::SendGenericResponse( U8 DeviceID, U8 FuncCod void ModbusSimulationDataGenerator::SendGeneric2Response( U8 DeviceID, U8 FuncCode, U8 ByteCount, U16 Values[] ) { - if( mSettings->mModbusMode == ModbusAnalyzerEnums::ModbusRTUSlave ) + if( mSettings->mModbusMode == ModbusAnalyzerEnums::ModbusRTUServer ) { CreateModbusByte( DeviceID ); mModbusSimulationData.Advance( mClockGenerator.AdvanceByHalfPeriod( 10.0 ) ); // insert 10 bit-periods of idle @@ -2054,7 +2054,7 @@ void ModbusSimulationDataGenerator::SendGeneric2Response( U8 DeviceID, U8 FuncCo void ModbusSimulationDataGenerator::SendReadExceptionStatusResponse( U8 DeviceID, U8 FuncCode, U8 Data ) { - if( mSettings->mModbusMode == ModbusAnalyzerEnums::ModbusRTUSlave ) + if( mSettings->mModbusMode == ModbusAnalyzerEnums::ModbusRTUServer ) { CreateModbusByte( DeviceID ); mModbusSimulationData.Advance( mClockGenerator.AdvanceByHalfPeriod( 10.0 ) ); // insert 10 bit-periods of idle @@ -2123,7 +2123,7 @@ void ModbusSimulationDataGenerator::SendReadExceptionStatusResponse( U8 DeviceID void ModbusSimulationDataGenerator::SendReadFIFOQueueResponse( U8 DeviceID, U16 ByteCount, U16 FIFOCount, U16 Values[] ) { - if( mSettings->mModbusMode == ModbusAnalyzerEnums::ModbusRTUSlave ) + if( mSettings->mModbusMode == ModbusAnalyzerEnums::ModbusRTUServer ) { CreateModbusByte( DeviceID ); mModbusSimulationData.Advance( mClockGenerator.AdvanceByHalfPeriod( 10.0 ) ); // insert 10 bit-periods of idle @@ -2260,7 +2260,7 @@ void ModbusSimulationDataGenerator::SendReadFIFOQueueResponse( U8 DeviceID, U16 void ModbusSimulationDataGenerator::SendGetCommEventLogResponse( U8 DeviceID, U8 ByteCount, U16 Status, U16 EventCount, U16 MessageCount, U8 Events[] ) { - if( mSettings->mModbusMode == ModbusAnalyzerEnums::ModbusRTUSlave ) + if( mSettings->mModbusMode == ModbusAnalyzerEnums::ModbusRTUServer ) { CreateModbusByte( DeviceID ); mModbusSimulationData.Advance( mClockGenerator.AdvanceByHalfPeriod( 10.0 ) ); // insert 10 bit-periods of idle @@ -2420,9 +2420,9 @@ void ModbusSimulationDataGenerator::SendGetCommEventLogResponse( U8 DeviceID, U8 } } -void ModbusSimulationDataGenerator::SendReportSlaveIDResponse( U8 DeviceID, U8 ByteCount, U8 Data[] ) +void ModbusSimulationDataGenerator::SendReportServerIDResponse( U8 DeviceID, U8 ByteCount, U8 Data[] ) { - if( mSettings->mModbusMode == ModbusAnalyzerEnums::ModbusRTUSlave ) + if( mSettings->mModbusMode == ModbusAnalyzerEnums::ModbusRTUServer ) { CreateModbusByte( DeviceID ); mModbusSimulationData.Advance( mClockGenerator.AdvanceByHalfPeriod( 10.0 ) ); // insert 10 bit-periods of idle @@ -2517,7 +2517,7 @@ void ModbusSimulationDataGenerator::SendReportSlaveIDResponse( U8 DeviceID, U8 B void ModbusSimulationDataGenerator::SendWriteFileRecordResponse( U8 DeviceID, U8 ByteCount, U8 SubReqRecordLengths[], U8 SubReqReferenceTypes[], U16 SubReqRecordData[ 2 ][ 2 ] ) { - if( mSettings->mModbusMode == ModbusAnalyzerEnums::ModbusRTUMaster || mSettings->mModbusMode == ModbusAnalyzerEnums::ModbusRTUSlave ) + if( mSettings->mModbusMode == ModbusAnalyzerEnums::ModbusRTUClient || mSettings->mModbusMode == ModbusAnalyzerEnums::ModbusRTUServer ) { CreateModbusByte( DeviceID ); mModbusSimulationData.Advance( mClockGenerator.AdvanceByHalfPeriod( 10.0 ) ); // insert 10 bit-periods of idle @@ -2673,7 +2673,7 @@ void ModbusSimulationDataGenerator::SendWriteFileRecordResponse( U8 DeviceID, U8 void ModbusSimulationDataGenerator::SendException( U8 DeviceID, U8 FuncCode, U8 ExceptionCode ) { - if( mSettings->mModbusMode == ModbusAnalyzerEnums::ModbusRTUMaster || mSettings->mModbusMode == ModbusAnalyzerEnums::ModbusRTUSlave ) + if( mSettings->mModbusMode == ModbusAnalyzerEnums::ModbusRTUClient || mSettings->mModbusMode == ModbusAnalyzerEnums::ModbusRTUServer ) { CreateModbusByte( DeviceID ); mModbusSimulationData.Advance( mClockGenerator.AdvanceByHalfPeriod( 10.0 ) ); // insert 10 bit-periods of idle diff --git a/src/ModbusSimulationDataGenerator.h b/src/ModbusSimulationDataGenerator.h index cb7b575..3094284 100644 --- a/src/ModbusSimulationDataGenerator.h +++ b/src/ModbusSimulationDataGenerator.h @@ -57,7 +57,7 @@ class ModbusSimulationDataGenerator // 0x07 Read Exception Status // 0x0B Get Comm Event Counter // 0x0C Get Comm Event Log - // 0x11 Report Slave ID + // 0x11 Report Server ID void SendGenDiagnosticRequest( U8 DeviceID, U8 FuncCode ); // this function generates the request for the Mask Write Register (0x16) command @@ -94,7 +94,7 @@ class ModbusSimulationDataGenerator void SendReadExceptionStatusResponse( U8 DeviceID, U8 FuncCode, U8 Data ); void SendReadFIFOQueueResponse( U8 DeviceID, U16 ByteCount, U16 FIFOCount, U16 Values[] ); void SendGetCommEventLogResponse( U8 DeviceID, U8 ByteCount, U16 Status, U16 EventCount, U16 MessageCount, U8 Events[] ); - void SendReportSlaveIDResponse( U8 DeviceID, U8 ByteCount, U8 Data[] ); + void SendReportServerIDResponse( U8 DeviceID, U8 ByteCount, U8 Data[] ); // forced a constant value for the array size, no reason to implement dynamic memory for this, overkill for purpose of simulation void SendWriteFileRecordResponse( U8 DeviceID, U8 ByteCount, U8 SubReqRecordLengths[], U8 SubReqReferenceTypes[], U16 SubReqRecordData[ 2 ][ 2 ] ); From b73b448638c0d7db098b3ce84fd570cfc4e42677 Mon Sep 17 00:00:00 2001 From: Marcus10110 Date: Thu, 3 Feb 2022 09:31:27 -0800 Subject: [PATCH 2/3] automatic template update of Modbus Analyzer --- README.md | 9 +++++---- azure-pipelines.yml | 4 ++-- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index ed5b8c5..884e69c 100644 --- a/README.md +++ b/README.md @@ -8,7 +8,7 @@ Saleae Modbus Analyzer Dependencies: - XCode with command line tools -- CMake 3.11+ +- CMake 3.13+ Installing command line tools after XCode is installed: ``` @@ -38,7 +38,7 @@ cmake --build . ### Ubuntu 16.04 Dependencies: -- CMake 3.11+ +- CMake 3.13+ - gcc 4.8+ Misc dependencies: @@ -59,7 +59,7 @@ cmake --build . Dependencies: - Visual Studio 2015 Update 3 -- CMake 3.11+ +- CMake 3.13+ **Visual Studio 2015** @@ -78,8 +78,9 @@ https://cmake.org/download/ Building the analyzer: ``` mkdir build -cd build +cd build -A x64 cmake .. ``` Then, open the newly created solution file located here: `build\modbus_analyzer.sln` + diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 3c74c5d..bfb060e 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -33,7 +33,7 @@ jobs: CMAKE_ARGS: '-G "Visual Studio 15 Win64"' BUILD_ARGS: '--config RelWithDebInfo' linux: - imageName: 'ubuntu-16.04' + imageName: 'ubuntu-18.04' CMAKE_ARGS: '-DCMAKE_BUILD_TYPE=RelWithDebInfo' BUILD_ARGS: '' mac: @@ -76,7 +76,7 @@ jobs: - build displayName: 'deploy' pool: - vmImage: 'ubuntu-16.04' + vmImage: 'ubuntu-18.04' steps: - download: current artifact: AnalyzerLibLinux From 59e0233506439ebfa9fc6edbab0662ad36ed7b8d Mon Sep 17 00:00:00 2001 From: Marcus10110 Date: Thu, 3 Feb 2022 09:40:51 -0800 Subject: [PATCH 3/3] Copy of changes from https://github.com/saleae/modbus-analyzer/pull/1/files Not sure how to resolve conflicts with a PR from another repo, this is easier. --- src/ModbusAnalyzerResults.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/ModbusAnalyzerResults.cpp b/src/ModbusAnalyzerResults.cpp index cb494e5..9c3d998 100644 --- a/src/ModbusAnalyzerResults.cpp +++ b/src/ModbusAnalyzerResults.cpp @@ -598,7 +598,7 @@ void ModbusAnalyzerResults::GenerateBubbleText( U64 frame_index, Channel& /*chan } if( frame.mFlags & FLAG_CHECKSUM_ERROR ) - sprintf( result_str, "%s (Invalid Checksum!)", result_str ); + strcat( result_str, " (Invalid Checksum!)" ); AddResultString( result_str ); } @@ -1137,7 +1137,7 @@ void ModbusAnalyzerResults::GenerateExportFile( const char* file, DisplayBase di } if( frame.mFlags & FLAG_CHECKSUM_ERROR ) - sprintf( result_str, "%s (Invalid Checksum!)", result_str ); + strcat( result_str, " (Invalid Checksum!)" ); ss << time_str << "," << result_str << std::endl; @@ -1666,7 +1666,7 @@ void ModbusAnalyzerResults::GenerateFrameTabularText( U64 frame_index, DisplayBa } if( frame.mFlags & FLAG_CHECKSUM_ERROR ) - sprintf( result_str, "%s (Invalid Checksum!)", result_str ); + strcat( result_str, " (Invalid Checksum!)" ); AddTabularText( result_str ); }