Skip to content

Commit

Permalink
Merge pull request #4 from bissell-homecare-inc/client_server_name_up…
Browse files Browse the repository at this point in the history
…date

implement modbus client-server nomenclature
  • Loading branch information
Marcus10110 authored Feb 17, 2022
2 parents df1b1b2 + 59e0233 commit 687dfaa
Show file tree
Hide file tree
Showing 7 changed files with 182 additions and 182 deletions.
82 changes: 41 additions & 41 deletions src/ModbusAnalyzer.cpp

Large diffs are not rendered by default.

10 changes: 5 additions & 5 deletions src/ModbusAnalyzerModbusExtension.h
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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
Expand Down
174 changes: 87 additions & 87 deletions src/ModbusAnalyzerResults.cpp

Large diffs are not rendered by default.

10 changes: 5 additions & 5 deletions src/ModbusAnalyzerSettings.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -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" );
Expand All @@ -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 );

Expand Down
12 changes: 6 additions & 6 deletions src/ModbusAnalyzerSettings.h
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
72 changes: 36 additions & 36 deletions src/ModbusSimulationDataGenerator.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -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 ) );
Expand Down Expand Up @@ -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 );
Expand Down Expand Up @@ -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 };
Expand Down Expand Up @@ -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 );
Expand All @@ -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
Expand Down Expand Up @@ -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
Expand Down Expand Up @@ -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
Expand Down Expand Up @@ -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
Expand Down Expand Up @@ -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
Expand Down Expand Up @@ -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
Expand Down Expand Up @@ -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
Expand Down Expand Up @@ -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
Expand Down Expand Up @@ -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
Expand Down Expand Up @@ -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
Expand Down Expand Up @@ -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
Expand Down Expand Up @@ -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
Expand Down Expand Up @@ -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
Expand Down Expand Up @@ -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
Expand Down Expand Up @@ -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
Expand Down Expand Up @@ -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
Expand Down Expand Up @@ -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
Expand Down Expand Up @@ -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
Expand Down Expand Up @@ -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
Expand Down
Loading

0 comments on commit 687dfaa

Please sign in to comment.