ConOpSys V2970  P004.07
ANVILEX control operating system
Classes | Public Types | Public Member Functions | Private Member Functions | Private Attributes | List of all members
TProtocol_MODBUS_Over_UART Class Reference

Communication protocol MODBUS RTU over UART class. More...

#include <Protocol_MODBUS_Over_UART.h>

Inheritance diagram for TProtocol_MODBUS_Over_UART:
Inheritance graph
Collaboration diagram for TProtocol_MODBUS_Over_UART:
Collaboration graph

Classes

struct  TMODBUS_Event_Log_Record
 
struct  TParameter_Coil_Mapping_Entry
 MODBUS RTU coil mapping entry struct. More...
 
struct  TParameter_Input_Mapping_Entry
 MODBUS RTU input mapping entry struct. More...
 
struct  TParameter_Register_Mapping_Entry
 MODBUS RTU register mapping entry struct. More...
 

Public Types

enum  TMODBUS_State {
  enum_Init = 0 , enum_Idle = 1 , enum_Receiving = 2 , enum_Processing = 3 ,
  enum_Transmitting = 4
}
 MODBUS FSM state definition. More...
 

Public Member Functions

 TProtocol_MODBUS_Over_UART ()
 Class constructor method. More...
 
 ~TProtocol_MODBUS_Over_UART ()
 Class destructor method. More...
 
VOID Init ()
 MODBUS initialisation method. More...
 
VOID Done ()
 MODBUS finalisation method. More...
 
virtual VOID Execute_1ms ()
 MODBUS 1ms cyclic processing method. More...
 
virtual VOID Execute ()
 MODBUS cyclic processing method. More...
 
virtual VOID Send_Information (TProtocol_Base *object_Protocol)
 Method sends default driver information over specified communication channel. More...
 
virtual VOID Enter_Terminal_Mode ()
 Enter in terminal operation mode method. More...
 
virtual VOID Enter_Protocol_Mode ()
 Enter in protocol operation mode method. More...
 
virtual BOOL Is_Terminal_Mode ()
 Return terminal operation mode status method. More...
 
virtual BOOL Is_Protocol_Mode ()
 Return protocol operatuin mode status method. More...
 
VOID Show_System_Welcome_Message_Enable ()
 Enable show system welcome message method. More...
 
VOID Show_System_Welcome_Message_Disable ()
 Disable show system welcome message method. More...
 
VOID Show_System_Ready_Message_Enable ()
 Enable system ready message method. More...
 
VOID Show_System_Ready_Message_Disable ()
 Disable system ready message method. More...
 
virtual VOID Communication_Data_Receive (U8 u8_Receive_Value)
 Communication data receive method. More...
 
virtual VOID Communication_Data_Receive (VOID *void_Receive_Data)
 Communication data receive method. More...
 
virtual VOID Receive_String (C8 *c8_String)
 Receiveed string processing method. More...
 
virtual VOID Receive_String (C8 *c8_String, U32 u32_Length)
 Receiveed string processing method. More...
 
virtual BOOL Set_Address (U8 u8_Address)
 Set node address method. More...
 
VOID Transmit_Boot_Welcome_Message ()
 Transmit boot welcome message method. More...
 
VOID Transmit_System_Ready_Message ()
 Transmit boot ready message method. More...
 
- Public Member Functions inherited from TProtocol_Base
 TProtocol_Base ()
 Class constructor method. More...
 
 ~TProtocol_Base ()
 Class destructor method. More...
 
VOID Init ()
 Initialisation method. More...
 
VOID Done ()
 Finalisation method. More...
 
VOID Clear_Communication_Statistic ()
 Clear communication statistic. More...
 
VOID Enable_Parameter_Mapping ()
 Enable parameter mapping method. More...
 
VOID Disable_Parameter_Mapping ()
 Disable parameter mapping method. More...
 
VOID Transmit_Char (C8 c8_Character)
 Receive character. More...
 
VOID Transmit_String_Of_Char (C8 c8_Character, U32 u32_Count)
 
VOID Transmit_String_Of_Char (C8 c8_Character, U32 u32_Count, U32 u32_End_New_Line_Count)
 
VOID Transmit_String (C8 *c8_String)
 
VOID Transmit_String (U32 u32_Begin_New_Lines_Count, C8 *c8_String)
 
VOID Transmit_String (C8 *c8_String, U32 u32_End_New_Line_Count)
 
VOID Transmit_String (U32 u32_Begin_New_Lines_Count, C8 *c8_String, U32 u32_End_New_Line_Count)
 
VOID Transmit_New_Line ()
 Transmit new line. More...
 
VOID Transmit_New_Line (U32 u32_Count)
 Transmit new lines. More...
 
VOID Transmit_Connector_Value_As_Boolean (TBlock_Input_Connector *object_Connector)
 
VOID Transmit_Connector_Value_As_Boolean (TBlock_Input_Connector *object_Connector, U32 u32_End_New_Line_Count)
 
VOID Transmit_Connector_Value_As_Decimal (TBlock_Input_Connector *object_Connector)
 
VOID Transmit_Connector_Value_As_Decimal (TBlock_Input_Connector *object_Connector, U32 u32_End_New_Line_Count)
 
VOID Transmit_Connector_Value_As_Hex (TBlock_Input_Connector *object_Connector)
 
VOID Transmit_Connector_Value_As_Hex (TBlock_Input_Connector *object_Connector, U32 u32_End_New_Line_Count)
 
VOID Transmit_Connector_Value_As_Boolean (TBlock_Output_Connector *object_Connector)
 
VOID Transmit_Connector_Value_As_Boolean (TBlock_Output_Connector *object_Connector, U32 u32_End_New_Line_Count)
 
VOID Transmit_Connector_Value_As_Decimal (TBlock_Output_Connector *object_Connector)
 
VOID Transmit_Connector_Value_As_Decimal (TBlock_Output_Connector *object_Connector, U32 u32_End_New_Line_Count)
 
VOID Transmit_Connector_Value_As_Hex (TBlock_Output_Connector *object_Connector)
 
VOID Transmit_Connector_Value_As_Hex (TBlock_Output_Connector *object_Connector, U32 u32_End_New_Line_Count)
 
VOID Transmit_Variant_As_Hex (TConOpSys_Variant *object_Value)
 
VOID Transmit_Variant_As_Hex (TConOpSys_Variant *object_Value, U32 u32_End_New_Line_Count)
 
VOID Transmit_BOOL_Value_As_Decimal (BOOL bool_Value)
 
VOID Transmit_BOOL_Value_As_Decimal (BOOL bool_Value, U32 u32_End_New_Line_Count)
 
VOID Transmit_BOOL_Value_As_Hex (BOOL bool_Value)
 
VOID Transmit_BOOL_Value_As_Hex (BOOL bool_Value, U32 u32_End_New_Line_Count)
 
VOID Transmit_TRIL_Value_As_Decimal (TRIL tril_Value)
 
VOID Transmit_TRIL_Value_As_Decimal (TRIL tril_Value, U32 u32_End_New_Line_Count)
 
VOID Transmit_U8_Value_As_Decimal (U8 u8_Value)
 
VOID Transmit_U8_Value_As_Decimal (U8 u8_Value, U32 u32_End_New_Line_Count)
 
VOID Transmit_U8_Value_As_Hex (U8 u8_Value)
 
VOID Transmit_U8_Value_As_Hex (U8 u8_Value, U32 u32_End_New_Line_Count)
 
VOID Transmit_U8_Buffer (U8 *u8_Data_Buffer, U32 u32_Length)
 
VOID Transmit_I8_Value_As_Decimal (I8 i8_Value)
 
VOID Transmit_I8_Value_As_Decimal (I8 i8_Value, U32 u32_End_New_Line_Count)
 
VOID Transmit_I8_Value_As_Hex (I8 i8_Value)
 
VOID Transmit_I8_Value_As_Hex (I8 i8_Value, U32 u32_End_New_Line_Count)
 
VOID Transmit_U16_Value_As_Decimal (U16 u16_Value)
 
VOID Transmit_U16_Value_As_Decimal (U16 u16_Value, U32 u32_End_New_Line_Count)
 
VOID Transmit_U16_Value_As_Hex (U16 u16_Value)
 
VOID Transmit_U16_Value_As_Hex (U16 u16_Value, U32 u32_End_New_Line_Count)
 
VOID Transmit_I16_Value_As_Decimal (I16 i16_Value)
 
VOID Transmit_I16_Value_As_Decimal (I16 i16_Value, U32 u32_End_New_Line_Count)
 
VOID Transmit_I16_Value_As_Hex (I16 i16_Value)
 
VOID Transmit_I16_Value_As_Hex (I16 i16_Value, U32 u32_End_New_Line_Count)
 
VOID Transmit_U32_Value_As_Decimal (U32 u32_Value)
 
VOID Transmit_U32_Value_As_Decimal (U32 u32_Value, U32 u32_End_New_Line_Count)
 
VOID Transmit_U32_Value_As_Hex (U32 u32_Value)
 
VOID Transmit_U32_Value_As_Hex (U32 u32_Value, U32 u32_End_New_Line_Count)
 
VOID Transmit_I32_Value_As_Decimal (I32 i32_Value)
 
VOID Transmit_I32_Value_As_Decimal (I32 i32_Value, U32 u32_End_New_Line_Count)
 
VOID Transmit_I32_Value_As_Hex (I32 i32_Value)
 
VOID Transmit_I32_Value_As_Hex (I32 i32_Value, U32 u32_End_New_Line_Count)
 
VOID Transmit_U64_Value_As_Decimal (U64 u64_Value)
 
VOID Transmit_U64_Value_As_Decimal (U64 u64_Value, U32 u32_End_New_Line_Count)
 
VOID Transmit_U64_Value_As_Hex (U64 u64_Value)
 
VOID Transmit_U64_Value_As_Hex (U64 u64_Value, U32 u32_End_New_Line_Count)
 
VOID Transmit_I64_Value_As_Decimal (I64 i64_Value)
 
VOID Transmit_I64_Value_As_Decimal (I64 i64_Value, U32 u32_End_New_Line_Count)
 
VOID Transmit_I64_Value_As_Hex (I64 i64_Value)
 
VOID Transmit_I64_Value_As_Hex (I64 i64_Value, U32 u32_End_New_Line_Count)
 
VOID Transmit_F32_Value_As_Decimal (F32 f32_Value)
 
VOID Transmit_F32_Value_As_Decimal (F32 f32_Value, U32 u32_End_New_Line_Count)
 
VOID Transmit_F32_Value_As_Hex (F32 f32_Value)
 
VOID Transmit_F32_Value_As_Hex (F32 f32_Value, U32 u32_End_New_Line_Count)
 
VOID Transmit_F64_Value_As_Decimal (F64 f64_Value)
 
VOID Transmit_F64_Value_As_Decimal (F64 f64_Value, U32 u32_End_New_Line_Count)
 
VOID Transmit_F64_Value_As_Hex (F64 f64_Value)
 
VOID Transmit_F64_Value_As_Hex (F64 f64_Value, U32 u32_End_New_Line_Count)
 
VOID Transmit_DateTime_Structure_Value_As_String (TDate_Time::TDate_Time_Structure struct_DateTime_Structure)
 
VOID Transmit_DateTime_Structure_Value_As_String (TDate_Time::TDate_Time_Structure struct_DateTime_Structure, U32 u32_End_New_Line_Count)
 
VOID Transmit_Buffer_As_U8_Dump (U32 u32_Address, U32 u32_Size, U8 *u8_Buffer, BOOL bool_Align)
 
VOID Log_Bus_Message ()
 Log message event for statistics purpouses. More...
 
VOID Log_Bus_Communication_Error ()
 Log communication error event for statistics purpouses. More...
 
VOID Log_Bus_Character_Overrun ()
 Log character overrun error event for statistics purpouses. More...
 
VOID Log_Bus_Frame_Size_Error ()
 Log frame size error event for statistics purpouses. More...
 
VOID Log_Bus_CRC_Error ()
 Log CRC error event for statistics purpouses. More...
 
VOID Log_Slave_Exception_Error ()
 Log slave exception error event for statistics purpouses. More...
 
VOID Log_Slave_Message ()
 Log slave messege event for statistics purpouses. More...
 
VOID Log_Slave_Broadcast_Message ()
 Log slave broadcast messege event for statistics purpouses. More...
 
VOID Log_Slave_Unknown_Request_Error ()
 Log slave unknown request event for statistics purpouses. More...
 
VOID Log_Slave_No_Response ()
 Log slave no responce event for statistics purpouses. More...
 
VOID Log_Slave_No_Acknowledge ()
 Log slave no acknowledge event for statistics purpouses. More...
 
VOID Log_Slave_Busy ()
 Log slave busy event for statistics purpouses. More...
 
VOID Log_Parameter_Information_Request ()
 Log parameter information request event for statistics purpouses. More...
 
VOID Log_Parameter_Information_Request_Error ()
 Log parameter information request error event for statistics purpouses. More...
 
VOID Log_Parameter_Read_Request ()
 Log parameter read event for statistics purpouses. More...
 
VOID Log_Parameter_Read_Request_Error ()
 Log parameter read error event for statistics purpouses. More...
 
VOID Log_Parameter_Write_Request ()
 Log parameter write event for statistics purpouses. More...
 
VOID Log_Parameter_Write_Request_Error ()
 Log parameter write error event for statistics purpouses. More...
 
VOID Log_Event_Information_Request ()
 Log system event information request event for statistics purpouses. More...
 
VOID Log_Event_Information_Request_Error ()
 Log system event information request error event for statistics purpouses. More...
 

Private Member Functions

BOOL Get_ConOpSys_Parameter_Index_By_MODBUS_Register (U16 u16_Modbus_Address, U32 *u32_Parameter_ID)
 The method returns the conOpSys parameter index by modbus register. More...
 
BOOL Get_ConOpSys_Parameter_Index_By_MODBUS_Coil (U16 u16_MODBUS_RTU_Coil, U32 *u32_Parameter_ID)
 The method returns the conOpSys parameter index by modbus coil. More...
 
BOOL Get_ConOpSys_Parameter_Index_By_MODBUS_Input (U16 u16_MODBUS_RTU_Input, U32 *u32_Parameter_ID)
 The method returns the conOpSys parameter index by modbus coil. More...
 
BOOL Read_Coils ()
 Read coils request processing method. More...
 
BOOL Read_Discrete_Inputs ()
 Read discrete inputs request processing method. More...
 
BOOL Read_Holding_Registers ()
 Read holding registers inputs request processing method. More...
 
BOOL Read_Input_Register ()
 Read input register request processing method. More...
 
BOOL Write_Single_Coil ()
 Write single coil request processing method. More...
 
BOOL Write_Single_Register ()
 Write single register request processing method. More...
 
BOOL Read_Exception_Status ()
 Read exception status request method. More...
 
BOOL Diagnostic ()
 Diagnostics request processing method. More...
 
BOOL Get_Communication_Event_Counter ()
 Get communication event counter request processing method. More...
 
BOOL Get_Communication_Event_Log ()
 Get communication log request processing method. More...
 
BOOL Write_Multiple_Coils ()
 Write multiple coils request processing method. More...
 
BOOL Write_Multiple_Registers ()
 Write multiple registers processing method. More...
 
BOOL Report_Server_ID ()
 Report server ID processing method. More...
 
BOOL Read_File_Record ()
 Read file record processing method. More...
 
BOOL Write_File_Record ()
 Write file record processing method. More...
 
BOOL Mask_Write_Register ()
 Mask write register processing method. More...
 
BOOL Read_Write_Multiple_Registers ()
 Read mask register processing method. More...
 
BOOL Read_FIFO_Queue ()
 Read FIFO queue processing method. More...
 
BOOL Encapsulated_Interface_Transport ()
 Encapsulated interface transport processing method. More...
 
BOOL CANopen_General_Reference ()
 CANopen generala reference processing method. More...
 
BOOL Read_Device_Identefication ()
 Read device identification processing method. More...
 
VOID Log_Slave_Read_Input_Register_Error ()
 Log slave read input registers error processing method. More...
 

Private Attributes

U8 u8_RX_Buffer [256] = { (U8)0x00 }
 RX buffer. More...
 
U32 u32_RX_Buffer_Index = (U32)0
 RX buffer index. More...
 
TMODBUS_Request_PDU object_Request_PDU
 Request PDU object. More...
 
TMODBUS_Response_PDU object_Response_PDU
 Responce PDU object. More...
 
U8 u8_MODBUS_Address = (U8)1
 Actual MODBUS address. More...
 
U32 u32_MODBUS_Baudrate = (U32)9600
 Actual MODBUS baudrate. More...
 
U64 u64_Last_Symbol_Timestamp = (U64)0
 
TMODBUS_State fsm_MODBUS_State = enum_Init
 Modbus FSM state. More...
 
TMODBUS_Event_Log_Record struct_Event_Log [64]
 Event log buffer. More...
 
U32 u32_Communication_Event_Counter = (U32)0
 Communication event counter. More...
 
U32 u32_Slave_Read_Input_Register_Error_Counter = (U32)0
 Slave read input register error counter. More...
 
U32 u32_Functional_Code_0x01_Request_Counter = (U32)0
 Functional code 0x01 request counter. More...
 
U32 u32_Functional_Code_0x02_Request_Counter = (U32)0
 Functional code 0x02 request counter. More...
 
U32 u32_Functional_Code_0x03_Request_Counter = (U32)0
 Functional code 0x03 request counter. More...
 
U32 u32_Functional_Code_0x04_Request_Counter = (U32)0
 Functional code 0x04 request counter. More...
 
U32 u32_Functional_Code_0x05_Request_Counter = (U32)0
 Functional code 0x05 request counter. More...
 
U32 u32_Functional_Code_0x06_Request_Counter = (U32)0
 Functional code 0x06 request counter. More...
 
U32 u32_Functional_Code_0x07_Request_Counter = (U32)0
 Functional code 0x07 request counter. More...
 
U32 u32_Functional_Code_0x08_Request_Counter = (U32)0
 Functional code 0x08 request counter. More...
 
U32 u32_Functional_Code_0x08_0x00_Request_Counter = (U32)0
 Functional code 0x08 0x00 request counter. More...
 
U32 u32_Functional_Code_0x08_0x01_Request_Counter = (U32)0
 Functional code 0x08 0x01 request counter. More...
 
U32 u32_Functional_Code_0x08_0x02_Request_Counter = (U32)0
 Functional code 0x08 0x02 request counter. More...
 
U32 u32_Functional_Code_0x08_0x03_Request_Counter = (U32)0
 Functional code 0x08 0x03 request counter. More...
 
U32 u32_Functional_Code_0x08_0x04_Request_Counter = (U32)0
 Functional code 0x08 0x04 request counter. More...
 
U32 u32_Functional_Code_0x08_0x05_Request_Counter = (U32)0
 Functional code 0x08 0x05 request counter. More...
 
U32 u32_Functional_Code_0x08_0x06_Request_Counter = (U32)0
 Functional code 0x08 0x06 request counter. More...
 
U32 u32_Functional_Code_0x08_0x07_Request_Counter = (U32)0
 Functional code 0x08 0x07 request counter. More...
 
U32 u32_Functional_Code_0x08_0x08_Request_Counter = (U32)0
 Functional code 0x08 0x08 request counter. More...
 
U32 u32_Functional_Code_0x08_0x09_Request_Counter = (U32)0
 Functional code 0x08 0x09 request counter. More...
 
U32 u32_Functional_Code_0x08_0x0A_Request_Counter = (U32)0
 Functional code 0x08 0x0A request counter. More...
 
U32 u32_Functional_Code_0x08_0x0B_Request_Counter = (U32)0
 Functional code 0x08 0x0B request counter. More...
 
U32 u32_Functional_Code_0x08_0x0C_Request_Counter = (U32)0
 Functional code 0x08 0x0C request counter. More...
 
U32 u32_Functional_Code_0x08_0x0D_Request_Counter = (U32)0
 Functional code 0x08 0x0D request counter. More...
 
U32 u32_Functional_Code_0x08_0x0E_Request_Counter = (U32)0
 Functional code 0x08 0x0E request counter. More...
 
U32 u32_Functional_Code_0x08_0x0F_Request_Counter = (U32)0
 Functional code 0x08 0x0F request counter. More...
 
U32 u32_Functional_Code_0x08_0x10_Request_Counter = (U32)0
 Functional code 0x08 0x10 request counter. More...
 
U32 u32_Functional_Code_0x08_0x11_Request_Counter = (U32)0
 Functional code 0x08 0x11 request counter. More...
 
U32 u32_Functional_Code_0x08_0x12_Request_Counter = (U32)0
 Functional code 0x08 0x12 request counter. More...
 
U32 u32_Functional_Code_0x08_0x13_Request_Counter = (U32)0
 Functional code 0x08 0x13 request counter. More...
 
U32 u32_Functional_Code_0x0B_Request_Counter = (U32)0
 Functional code 0x0B request counter. More...
 
U32 u32_Functional_Code_0x0C_Request_Counter = (U32)0
 Functional code 0x0C request counter. More...
 
U32 u32_Functional_Code_0x0F_Request_Counter = (U32)0
 Functional code 0x0F request counter. More...
 
U32 u32_Functional_Code_0x10_Request_Counter = (U32)0
 Functional code 0x10 request counter. More...
 
U32 u32_Functional_Code_0x11_Request_Counter = (U32)0
 Functional code 0x11 request counter. More...
 
U32 u32_Functional_Code_0x14_Request_Counter = (U32)0
 Functional code 0x14 request counter. More...
 
U32 u32_Functional_Code_0x15_Request_Counter = (U32)0
 Functional code 0x15 request counter. More...
 
U32 u32_Functional_Code_0x16_Request_Counter = (U32)0
 Functional code 0x16 request counter. More...
 
U32 u32_Functional_Code_0x17_Request_Counter = (U32)0
 Functional code 0x17 request counter. More...
 
U32 u32_Functional_Code_0x18_Request_Counter = (U32)0
 Functional code 0x18 request counter. More...
 
U32 u32_Functional_Code_0x2B_Request_Counter = (U32)0
 Functional code 0x2B request counter. More...
 
U32 u32_Functional_Code_0x2B_0x0C_Request_Counter = (U32)0
 Functional code 0x2B 0x0C request counter. More...
 
U32 u32_Functional_Code_0x2B_0x0D_Request_Counter = (U32)0
 Functional code 0x2B 0x0D request counter. More...
 

Additional Inherited Members

- Protected Member Functions inherited from TProtocol_Base
VOID New_Data_Arrived ()
 Indicate new data for processing arrived. More...
 
VOID New_Data_Processed ()
 Indicate new data processed. More...
 
BOOL Is_New_Data_Present ()
 Return new data presentse status. More...
 
BOOL Is_New_Data_Processed ()
 Return new data processed status. More...
 
- Protected Attributes inherited from TProtocol_Base
BOOL bool_Parameter_Mapping_Enable = (BOOL)false
 Parameter mapping enable flag. More...
 
U32 u32_Bus_Message_Counter = (U32)0
 Total communication bus message counter. More...
 
U32 u32_Bus_Communication_Error_Counter = (U32)0
 Communication bus error counter. More...
 
U32 u32_Bus_Character_Overrun_Counter = (U32)0
 Communication bus character overrun error counter. More...
 
U32 u32_Bus_CRC_Error_Counter = (U32)0
 Communication bus CRC error counter. More...
 
U32 u32_Bus_Frame_Size_Error_Counter = (U32)0
 Communication bus frame size error counter. More...
 
U32 u32_Slave_Exception_Error_Counter = (U32)0
 Slave exception error counter. More...
 
U32 u32_Slave_Message_Counter = (U32)0
 Total slave message counter. More...
 
U32 u32_Slave_Broadcast_Message_Counter = (U32)0
 Slave broadcast message counter. More...
 
U32 u32_Slave_Unknown_Request_Counter = (U32)0
 Slave unknown request counter. More...
 
U32 u32_Slave_No_Response_Counter = (U32)0
 Slave no responce counter. More...
 
U32 u32_Slave_No_Acknowledge_Counter = (U32)0
 Slave no acknowledge counter. More...
 
U32 u32_Slave_Busy_Counter = (U32)0
 Slave busy counter. More...
 
U32 u32_Parameter_Information_Request_Counter = (U32)0
 Parameter information request counter. More...
 
U32 u32_Parameter_Information_Request_Error_Counter = (U32)0
 Parameter information request error counter. More...
 
U32 u32_Parameter_Read_Request_Counter = (U32)0
 Parameter read request counter. More...
 
U32 u32_Parameter_Read_Request_Error_Counter = (U32)0
 Parameter read request error counter. More...
 
U32 u32_Parameter_Write_Request_Counter = (U32)0
 Parameter write request counter. More...
 
U32 u32_Parameter_Write_Request_Error_Counter = (U32)0
 Parameter write request error counter. More...
 
U32 u32_Event_Information_Request_Counter = (U32)0
 Event information request counter. More...
 
U32 u32_Event_Information_Request_Error_Counter = (U32)0
 Event information request error counter. More...
 
TExecution_Profile object_Execution_Profile
 Execution profile object. More...
 

Detailed Description

Communication protocol MODBUS RTU over UART class.

Member Enumeration Documentation

◆ TMODBUS_State

MODBUS FSM state definition.

Enumerator
enum_Init 

Init state.

enum_Idle 

Idle state.

enum_Receiving 

Frame receiving state.

enum_Processing 

Frame processing state.

enum_Transmitting 

Frame transmitting state.

Constructor & Destructor Documentation

◆ TProtocol_MODBUS_Over_UART()

TProtocol_MODBUS_Over_UART::TProtocol_MODBUS_Over_UART ( )

Class constructor method.


Note
None
Override
Not allowed
Attention
Don't call this method directly.

References TProtocol_MODBUS_Over_UART::TMODBUS_Event_Log_Record::bool_Empty, struct_Event_Log, and TProtocol_MODBUS_Over_UART::TMODBUS_Event_Log_Record::u8_Event_Field.

◆ ~TProtocol_MODBUS_Over_UART()

TProtocol_MODBUS_Over_UART::~TProtocol_MODBUS_Over_UART ( )

Class destructor method.


Note
None
Override
Not allowed
Attention
Don't call this method directly.

Member Function Documentation

◆ CANopen_General_Reference()

BOOL TProtocol_MODBUS_Over_UART::CANopen_General_Reference ( )
private

CANopen generala reference processing method.


Note
None
Returns
BOOL - Processing status
Return values
false- Processing faild
true- Processing done
Override
Not allowed
Attention
This method called from interrupt

References TMODBUS_Response_PDU::Init(), MODBUS_FC_0x2B_ENCAPSULATED_INTERFACE_TRANSPORT, MODBUS_RESPONCE_CODE_ILLEGAL_FUNCTION, object_Response_PDU, and u8_MODBUS_Address.

Referenced by Encapsulated_Interface_Transport().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ Communication_Data_Receive() [1/2]

VOID TProtocol_MODBUS_Over_UART::Communication_Data_Receive ( U8  u8_Receive_Value)
virtual

Communication data receive method.


Note
None
Parameters
[in]u8_Receive_Value- Received value
Returns
None
Override
Requered
Attention
None

Reimplemented from TCommunication_Data_Link.

References TMODBUS_PDU_Base::Append_U8_Value(), enum_Receiving, fsm_MODBUS_State, TTIMER2_STM32F429::Get_Actual_Time_U64(), object_Delay_Timer, object_Request_PDU, and u64_Last_Symbol_Timestamp.

Here is the call graph for this function:

◆ Communication_Data_Receive() [2/2]

VOID TProtocol_MODBUS_Over_UART::Communication_Data_Receive ( VOID void_Receive_Data)
virtual

Communication data receive method.


Note
None
Parameters
[in]void_Receive_Data- Pointer on received data
Returns
None
Override
Requered
Attention
None

◆ Diagnostic()

BOOL TProtocol_MODBUS_Over_UART::Diagnostic ( )
private

Diagnostics request processing method.


Note
This method is not used in this object.
Returns
BOOL - Operation status
Return values
false- Method not implemented
Override
Not allowed
Attention
This method called from interrupt

References TMODBUS_Response_PDU::Init(), MODBUS_FC_0x08_DIAGNOSTIC, MODBUS_RESPONCE_CODE_ILLEGAL_FUNCTION, object_Response_PDU, and u8_MODBUS_Address.

Referenced by Execute().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ Done()

VOID TProtocol_MODBUS_Over_UART::Done ( )

MODBUS finalisation method.


Note
None
Returns
None
Override
Not allowed
Attention
None

◆ Encapsulated_Interface_Transport()

BOOL TProtocol_MODBUS_Over_UART::Encapsulated_Interface_Transport ( )
private

Encapsulated interface transport processing method.


Note
None
Returns
BOOL - Processing status
Return values
false- Processing faild
true- Processing done
Override
Not allowed
Attention
This method called from interrupt

References CANopen_General_Reference(), MODBUS_MEI_0x0D_CANOPEN_GENERAL_REFERENCE, MODBUS_MEI_0x0E_READ_DEVICE_IDENTEFICATION, object_Request_PDU, Read_Device_Identefication(), and TMODBUS_PDU_Base::Read_U8_Value().

Referenced by Execute().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ Enter_Protocol_Mode()

VOID TProtocol_MODBUS_Over_UART::Enter_Protocol_Mode ( )
virtual

Enter in protocol operation mode method.


Note
None
Returns
None
Override
Not allowed
Attention
None

Implements TProtocol_Base.

◆ Enter_Terminal_Mode()

VOID TProtocol_MODBUS_Over_UART::Enter_Terminal_Mode ( )
virtual

Enter in terminal operation mode method.


Note
None
Returns
None
Override
Not allowed
Attention
None

Implements TProtocol_Base.

◆ Execute()

VOID TProtocol_MODBUS_Over_UART::Execute ( )
virtual

MODBUS cyclic processing method.


Note
None
Returns
None
Override
Not allowed
Attention
None
Todo:
ANVILEX KM: Log error

Reimplemented from TProtocol_Base.

References Diagnostic(), TMODBUS_Response_PDU::Done(), Encapsulated_Interface_Transport(), enum_Processing, enum_Transmitting, fsm_MODBUS_State, TMODBUS_PDU_Base::Get_Buffer_Pointer(), Get_Communication_Event_Counter(), Get_Communication_Event_Log(), TMODBUS_PDU_Base::Get_Function_Code(), TMODBUS_PDU_Base::Get_Size(), Increment_Saturated(), TMODBUS_PDU_Base::Init(), TMODBUS_Request_PDU::Is_Broadcast(), TMODBUS_Request_PDU::Is_CRC_Valid(), TMODBUS_PDU_Base::Is_Size_Valid(), TMODBUS_Request_PDU::Is_Slave_Address_Valid(), TProtocol_Base::Log_Bus_Communication_Error(), TProtocol_Base::Log_Bus_CRC_Error(), TProtocol_Base::Log_Bus_Frame_Size_Error(), TProtocol_Base::Log_Bus_Message(), TProtocol_Base::Log_Slave_Broadcast_Message(), TProtocol_Base::Log_Slave_Exception_Error(), TProtocol_Base::Log_Slave_Message(), TProtocol_Base::Log_Slave_No_Response(), Log_Slave_Read_Input_Register_Error(), TProtocol_Base::Log_Slave_Unknown_Request_Error(), Mask_Write_Register(), MODBUS_FC_0x01_READ_COILS, MODBUS_FC_0x02_READ_DISCRETE_INPUTS, MODBUS_FC_0x03_READ_HOLDING_REGISTERS, MODBUS_FC_0x04_READ_INPUT_REGISTER, MODBUS_FC_0x05_WRITE_SINGLE_COIL, MODBUS_FC_0x06_WRITE_SINGLE_REGISTER, MODBUS_FC_0x07_READ_EXCEPTION_STATUS, MODBUS_FC_0x08_DIAGNOSTIC, MODBUS_FC_0x0B_GET_COMMUNICATION_EVENT_COUNTER, MODBUS_FC_0x0C_GET_COMMUNICATION_EVENT_LOG, MODBUS_FC_0x0F_WRITE_MULTIPLE_COILS, MODBUS_FC_0x10_WRITE_MULTIPLE_REGISTERS, MODBUS_FC_0x11_REPORT_SERVER_ID, MODBUS_FC_0x14_READ_FILE_RECORD, MODBUS_FC_0x15_WRITE_FILE_RECORD, MODBUS_FC_0x16_MASK_WRITE_REGISTER, MODBUS_FC_0x17_READ_WRITE_MULTIPLE_REGISTERS, MODBUS_FC_0x18_READ_FIFO_QUEUE, MODBUS_FC_0x2B_ENCAPSULATED_INTERFACE_TRANSPORT, object_Request_PDU, object_Response_PDU, Read_Coils(), Read_Discrete_Inputs(), Read_Exception_Status(), Read_FIFO_Queue(), Read_File_Record(), Read_Holding_Registers(), Read_Input_Register(), Read_Write_Multiple_Registers(), Report_Server_ID(), TMODBUS_PDU_Base::Set_Index(), TProtocol_Base::Transmit_U8_Buffer(), true, u32_Functional_Code_0x01_Request_Counter, u32_Functional_Code_0x02_Request_Counter, u32_Functional_Code_0x03_Request_Counter, u32_Functional_Code_0x04_Request_Counter, u32_Functional_Code_0x05_Request_Counter, u32_Functional_Code_0x06_Request_Counter, u32_Functional_Code_0x07_Request_Counter, u32_Functional_Code_0x08_Request_Counter, u32_Functional_Code_0x0B_Request_Counter, u32_Functional_Code_0x0C_Request_Counter, u32_Functional_Code_0x0F_Request_Counter, u32_Functional_Code_0x10_Request_Counter, u32_Functional_Code_0x11_Request_Counter, u32_Functional_Code_0x14_Request_Counter, u32_Functional_Code_0x15_Request_Counter, u32_Functional_Code_0x16_Request_Counter, u32_Functional_Code_0x17_Request_Counter, u32_Functional_Code_0x18_Request_Counter, u32_Functional_Code_0x2B_Request_Counter, u8_MODBUS_Address, Write_File_Record(), Write_Multiple_Coils(), Write_Multiple_Registers(), Write_Single_Coil(), and Write_Single_Register().

Here is the call graph for this function:

◆ Execute_1ms()

VOID TProtocol_MODBUS_Over_UART::Execute_1ms ( )
virtual

MODBUS 1ms cyclic processing method.


Note
None
Returns
None
Override
Not allowed
Attention
None
Todo:
ANVILEX KM: Use timeout method for more quick calculations
Todo:
ANVILEX KM: Use timeout method for more quick calculations

Reimplemented from TProtocol_Base.

References TMODBUS_Request_PDU::Done(), enum_Idle, enum_Init, enum_Processing, enum_Receiving, enum_Transmitting, fsm_MODBUS_State, TTIMER2_STM32F429::Get_Actual_Time_U64(), THigh_Precision_Timer_Base::Get_Delta_Time(), TMODBUS_PDU_Base::Init(), TMODBUS_PDU_Base::Is_Empty(), TMODBUS_PDU_Base::Is_Overrun(), TProtocol_Base::Log_Bus_Character_Overrun(), MODBUS_PROTOCOL_FRAME_TIMEOUT, object_Delay_Timer, object_Request_PDU, and u64_Last_Symbol_Timestamp.

Here is the call graph for this function:

◆ Get_Communication_Event_Counter()

BOOL TProtocol_MODBUS_Over_UART::Get_Communication_Event_Counter ( )
private

Get communication event counter request processing method.


Note
None
Returns
BOOL - Operation status
Return values
false- Operation faild
true- Operation done
Override
Not allowed
Attention
This method called from interrupt

References TMODBUS_PDU_Base::Append_U16_Value(), Convert_U32_To_U16_Satureted(), TMODBUS_Response_PDU::Init(), MODBUS_FC_0x0B_GET_COMMUNICATION_EVENT_COUNTER, object_Response_PDU, u32_Communication_Event_Counter, and u8_MODBUS_Address.

Referenced by Execute().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ Get_Communication_Event_Log()

BOOL TProtocol_MODBUS_Over_UART::Get_Communication_Event_Log ( )
private

Get communication log request processing method.


Note
None
Returns
BOOL - Operation status
Return values
false- Operation faild
true- Operation done
Override
Not allowed
Attention
This method called from interrupt

References TMODBUS_PDU_Base::Append_U16_Value(), TMODBUS_PDU_Base::Append_U8_Value(), Convert_U32_To_U16_Satureted(), false, TMODBUS_Response_PDU::Init(), MODBUS_FC_0x0C_GET_COMMUNICATION_EVENT_LOG, object_Response_PDU, struct_Event_Log, TProtocol_Base::u32_Bus_Message_Counter, u32_Communication_Event_Counter, u8_MODBUS_Address, and TMODBUS_Response_PDU::Write_U8_Value().

Referenced by Execute().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ Get_ConOpSys_Parameter_Index_By_MODBUS_Coil()

BOOL TProtocol_MODBUS_Over_UART::Get_ConOpSys_Parameter_Index_By_MODBUS_Coil ( U16  u16_MODBUS_RTU_Coil,
U32 u32_Parameter_ID 
)
private

The method returns the conOpSys parameter index by modbus coil.


Note
None
Parameters
[in]u16_MODBUS_RTU_Coil- Modbus coil address
[out]*u32_Parameter_ID- Pointer to the conOpSys parameter index
Returns
BOOL - Operation status
Return values
false- Parameter not found
true- Parameter found successfully
Override
Not allowed
Attention
This method called from interrupt

References TProtocol_Base::bool_Parameter_Mapping_Enable, and true.

Referenced by Read_Coils(), Write_Multiple_Coils(), and Write_Single_Coil().

Here is the caller graph for this function:

◆ Get_ConOpSys_Parameter_Index_By_MODBUS_Input()

BOOL TProtocol_MODBUS_Over_UART::Get_ConOpSys_Parameter_Index_By_MODBUS_Input ( U16  u16_MODBUS_RTU_Input,
U32 u32_Parameter_ID 
)
private

The method returns the conOpSys parameter index by modbus coil.


Note
None
Parameters
[in]u16_MODBUS_RTU_Input- Modbus input address
[out]*u32_Parameter_ID- Pointer to the conOpSys parameter index
Returns
BOOL - Operation status
Return values
false- Parameter not found
true- Parameter found successfully
Override
Not allowed
Attention
This method called from interrupt

References TProtocol_Base::bool_Parameter_Mapping_Enable, and true.

Referenced by Read_Discrete_Inputs().

Here is the caller graph for this function:

◆ Get_ConOpSys_Parameter_Index_By_MODBUS_Register()

BOOL TProtocol_MODBUS_Over_UART::Get_ConOpSys_Parameter_Index_By_MODBUS_Register ( U16  u16_Modbus_Address,
U32 u32_Parameter_ID 
)
private

The method returns the conOpSys parameter index by modbus register.


Note
None
Parameters
[in]u16_Modbus_Address- Modbus register address
[out]*u32_Parameter_ID- Pointer to the conOpSys parameter index
Returns
BOOL - Operation status
Return values
false- Parameter not found
true- Parameter found successfully
Override
Not allowed
Attention
This method called from interrupt

References TProtocol_Base::bool_Parameter_Mapping_Enable, and true.

Referenced by Read_Holding_Registers(), Read_Input_Register(), Read_Write_Multiple_Registers(), and Write_Multiple_Registers().

Here is the caller graph for this function:

◆ Init()

VOID TProtocol_MODBUS_Over_UART::Init ( )

MODBUS initialisation method.


Note
None
Returns
None
Override
Not allowed
Attention
None

References TProtocol_Base::Init().

Here is the call graph for this function:

◆ Is_Protocol_Mode()

BOOL TProtocol_MODBUS_Over_UART::Is_Protocol_Mode ( )
virtual

Return protocol operatuin mode status method.


Note
None
Returns
BOOL - Protocol operatuin mode status
Return values
false- Non-protocol mode selected
true- Protocol mode selected
Override
Not allowed
Attention
None

Implements TProtocol_Base.

◆ Is_Terminal_Mode()

BOOL TProtocol_MODBUS_Over_UART::Is_Terminal_Mode ( )
virtual

Return terminal operation mode status method.


Note
None
Returns
BOOL - Protocol operatuin mode status
Return values
false- Non-terminal mode selected
true- Terminal mode selected
Override
Not allowed
Attention
None

Implements TProtocol_Base.

◆ Log_Slave_Read_Input_Register_Error()

VOID TProtocol_MODBUS_Over_UART::Log_Slave_Read_Input_Register_Error ( )
private

Log slave read input registers error processing method.


Note
This method is not used in this object.
Returns
BOOL - Reading status
Return values
false- Reading faild
true- Reading done
Override
Not allowed
Attention
This method called from interrupt

References Increment_Saturated(), and u32_Slave_Read_Input_Register_Error_Counter.

Referenced by Execute().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ Mask_Write_Register()

BOOL TProtocol_MODBUS_Over_UART::Mask_Write_Register ( )
private

Mask write register processing method.


Note
This method is not used in this object.
Returns
BOOL - Operation status
Return values
false- Operation faild
true- Operation done
Override
Not allowed
Attention
This method called from interrupt

References TMODBUS_Response_PDU::Init(), MODBUS_FC_0x16_MASK_WRITE_REGISTER, MODBUS_RESPONCE_CODE_ILLEGAL_FUNCTION, object_Response_PDU, and u8_MODBUS_Address.

Referenced by Execute().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ Read_Coils()

BOOL TProtocol_MODBUS_Over_UART::Read_Coils ( )
private

Read coils request processing method.


Note
None
Returns
BOOL - Operation status
Return values
false- Read error
true- Reading was successful
Override
Not allowed
Attention
This method called from interrupt

References TMODBUS_PDU_Base::Append_U8_Value(), TConOpSys_Variant_Data::bool_Value, enum_BOOL, Get_ConOpSys_Parameter_Index_By_MODBUS_Coil(), TParameter_Manager::Get_Parameter_By_ID(), TParameter_Base::Get_Type(), TParameter_Base::Get_Variant_Data(), TMODBUS_Response_PDU::Init(), MODBUS_FC_0x01_READ_COILS, MODBUS_RESPONCE_CODE_ILLEGAL_DATA_ADDRESS, MODBUS_RESPONCE_CODE_ILLEGAL_DATA_VALUE, MODBUS_RESPONCE_CODE_SERVER_DEVICE_FAILURE, NULL, object_Parameter_Manager, object_Request_PDU, object_Response_PDU, TMODBUS_PDU_Base::Read_U16_Value(), and u8_MODBUS_Address.

Referenced by Execute().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ Read_Device_Identefication()

BOOL TProtocol_MODBUS_Over_UART::Read_Device_Identefication ( )
private

Read device identification processing method.


Note
This method is not used in this object.
Returns
BOOL - Reading status
Return values
false- Reading faild
true- Reading done
Override
Not allowed
Attention
This method called from interrupt

References TMODBUS_Response_PDU::Init(), MODBUS_FC_0x2B_ENCAPSULATED_INTERFACE_TRANSPORT, MODBUS_RESPONCE_CODE_ILLEGAL_FUNCTION, object_Response_PDU, and u8_MODBUS_Address.

Referenced by Encapsulated_Interface_Transport().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ Read_Discrete_Inputs()

BOOL TProtocol_MODBUS_Over_UART::Read_Discrete_Inputs ( )
private

Read discrete inputs request processing method.


Note
None
Returns
BOOL - Operation status
Return values
false- Read error
true- Reading was successful
Override
Not allowed
Attention
This method called from interrupt

References TMODBUS_PDU_Base::Append_U8_Value(), enum_PBOOL, Get_ConOpSys_Parameter_Index_By_MODBUS_Input(), TParameter_Manager::Get_Parameter_By_ID(), TParameter_Base::Get_Type(), TParameter_Base::Get_Variant_Data(), TMODBUS_Response_PDU::Init(), MODBUS_FC_0x02_READ_DISCRETE_INPUTS, MODBUS_RESPONCE_CODE_ILLEGAL_DATA_ADDRESS, MODBUS_RESPONCE_CODE_ILLEGAL_DATA_VALUE, MODBUS_RESPONCE_CODE_SERVER_DEVICE_FAILURE, NULL, object_Parameter_Manager, object_Request_PDU, object_Response_PDU, TConOpSys_Variant_Data::pbool_Value, TMODBUS_PDU_Base::Read_U16_Value(), and u8_MODBUS_Address.

Referenced by Execute().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ Read_Exception_Status()

BOOL TProtocol_MODBUS_Over_UART::Read_Exception_Status ( )
private

Read exception status request method.


Note
This method is not used in this object.
Returns
BOOL - Operation status
Return values
false- Read error
true- Reading was successful
Override
Not allowed
Attention
This method called from interrupt

References TMODBUS_Response_PDU::Init(), MODBUS_FC_0x07_READ_EXCEPTION_STATUS, MODBUS_RESPONCE_CODE_ILLEGAL_FUNCTION, object_Response_PDU, and u8_MODBUS_Address.

Referenced by Execute().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ Read_FIFO_Queue()

BOOL TProtocol_MODBUS_Over_UART::Read_FIFO_Queue ( )
private

Read FIFO queue processing method.


Note
This method is not used in this object.
Returns
BOOL - Operation status
Return values
false- Operation faild
true- Operation done
Override
Not allowed
Attention
This method called from interrupt

References TMODBUS_Response_PDU::Init(), MODBUS_FC_0x18_READ_FIFO_QUEUE, MODBUS_RESPONCE_CODE_ILLEGAL_FUNCTION, object_Response_PDU, and u8_MODBUS_Address.

Referenced by Execute().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ Read_File_Record()

BOOL TProtocol_MODBUS_Over_UART::Read_File_Record ( )
private

Read file record processing method.


Note
This method is not used in this object.
Returns
BOOL - Operation status
Return values
false- Operation faild
true- Operation done
Override
Not allowed
Attention
This method called from interrupt

References TMODBUS_Response_PDU::Init(), MODBUS_FC_0x14_READ_FILE_RECORD, MODBUS_RESPONCE_CODE_ILLEGAL_FUNCTION, object_Response_PDU, and u8_MODBUS_Address.

Referenced by Execute().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ Read_Holding_Registers()

BOOL TProtocol_MODBUS_Over_UART::Read_Holding_Registers ( )
private

◆ Read_Input_Register()

BOOL TProtocol_MODBUS_Over_UART::Read_Input_Register ( )
private

◆ Read_Write_Multiple_Registers()

BOOL TProtocol_MODBUS_Over_UART::Read_Write_Multiple_Registers ( )
private

◆ Receive_String() [1/2]

VOID TProtocol_MODBUS_Over_UART::Receive_String ( C8 c8_String)
virtual

Receiveed string processing method.


Note
None
Parameters
[in]*c8_String- Pointer to the null terminated string
Returns
None
Override
Not allowed
Attention
This method called from interrupt

Implements TProtocol_Base.

◆ Receive_String() [2/2]

VOID TProtocol_MODBUS_Over_UART::Receive_String ( C8 c8_String,
U32  u32_Length 
)
virtual

Receiveed string processing method.


Note
This method is not used in this object.
Parameters
[in]*c8_String- Pointer to the null terminated string
[in]u32_Length- Length of the string
Returns
None
Override
Not allowed
Attention
This method called from interrupt

Implements TProtocol_Base.

◆ Report_Server_ID()

BOOL TProtocol_MODBUS_Over_UART::Report_Server_ID ( )
private

Report server ID processing method.


Note
This method is not used in this object.
Returns
BOOL - Operation status
Return values
false- Operation faild
true- Operation done
Override
Not allowed
Attention
This method called from interrupt

References TMODBUS_Response_PDU::Init(), MODBUS_FC_0x11_REPORT_SERVER_ID, MODBUS_RESPONCE_CODE_ILLEGAL_FUNCTION, object_Response_PDU, and u8_MODBUS_Address.

Referenced by Execute().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ Send_Information()

VOID TProtocol_MODBUS_Over_UART::Send_Information ( TProtocol_Base object_Protocol)
virtual

Method sends default driver information over specified communication channel.


Note
None
Parameters
[in]*object_Protocol- Pointer to the connunication channel
Returns
None
Override
Not requered
Attention
None

Implements TProtocol_Base.

References false, fsm_MODBUS_State, TMODBUS_PDU_Base::Get_Buffer_Pointer(), TMODBUS_PDU_Base::Get_CRC(), TMODBUS_PDU_Base::Get_Function_Code(), TMODBUS_PDU_Base::Get_Size(), TMODBUS_PDU_Base::Get_Slave_Address(), MODBUS_PDU_BUFFER_SIZE, MODBUS_PROTOCOL_FRAME_TIMEOUT, MODBUS_PROTOCOL_SYMBOL_TIMEOUT, MODBUS_PROTOCOL_TURNAROUND_TIMEOUT, MODBUS_SYMBOL_TIME, NULL, TCommunication_Data_Link::object_Data_Link, object_Request_PDU, object_Response_PDU, TProtocol_Base::Transmit_Buffer_As_U8_Dump(), TProtocol_Base::Transmit_F32_Value_As_Decimal(), TProtocol_Base::Transmit_String(), TProtocol_Base::Transmit_U16_Value_As_Decimal(), TProtocol_Base::Transmit_U16_Value_As_Hex(), TProtocol_Base::Transmit_U32_Value_As_Decimal(), TProtocol_Base::Transmit_U32_Value_As_Hex(), TProtocol_Base::Transmit_U8_Value_As_Decimal(), TProtocol_Base::Transmit_U8_Value_As_Hex(), TMODBUS_PDU_Base::u16_Received_CRC, TProtocol_Base::u32_Bus_Character_Overrun_Counter, TProtocol_Base::u32_Bus_Communication_Error_Counter, TProtocol_Base::u32_Bus_CRC_Error_Counter, TProtocol_Base::u32_Bus_Frame_Size_Error_Counter, TProtocol_Base::u32_Bus_Message_Counter, u32_Functional_Code_0x01_Request_Counter, u32_Functional_Code_0x02_Request_Counter, u32_Functional_Code_0x03_Request_Counter, u32_Functional_Code_0x04_Request_Counter, u32_Functional_Code_0x05_Request_Counter, u32_Functional_Code_0x06_Request_Counter, u32_Functional_Code_0x07_Request_Counter, u32_Functional_Code_0x08_0x00_Request_Counter, u32_Functional_Code_0x08_0x01_Request_Counter, u32_Functional_Code_0x08_0x02_Request_Counter, u32_Functional_Code_0x08_0x03_Request_Counter, u32_Functional_Code_0x08_0x04_Request_Counter, u32_Functional_Code_0x08_0x05_Request_Counter, u32_Functional_Code_0x08_0x06_Request_Counter, u32_Functional_Code_0x08_0x07_Request_Counter, u32_Functional_Code_0x08_0x08_Request_Counter, u32_Functional_Code_0x08_0x09_Request_Counter, u32_Functional_Code_0x08_0x0A_Request_Counter, u32_Functional_Code_0x08_0x0B_Request_Counter, u32_Functional_Code_0x08_0x0C_Request_Counter, u32_Functional_Code_0x08_0x0D_Request_Counter, u32_Functional_Code_0x08_0x0E_Request_Counter, u32_Functional_Code_0x08_0x0F_Request_Counter, u32_Functional_Code_0x08_0x10_Request_Counter, u32_Functional_Code_0x08_0x11_Request_Counter, u32_Functional_Code_0x08_0x12_Request_Counter, u32_Functional_Code_0x08_0x13_Request_Counter, u32_Functional_Code_0x08_Request_Counter, u32_Functional_Code_0x0B_Request_Counter, u32_Functional_Code_0x0C_Request_Counter, u32_Functional_Code_0x0F_Request_Counter, u32_Functional_Code_0x10_Request_Counter, u32_Functional_Code_0x11_Request_Counter, u32_Functional_Code_0x14_Request_Counter, u32_Functional_Code_0x15_Request_Counter, u32_Functional_Code_0x16_Request_Counter, u32_Functional_Code_0x17_Request_Counter, u32_Functional_Code_0x18_Request_Counter, u32_Functional_Code_0x2B_0x0C_Request_Counter, u32_Functional_Code_0x2B_0x0D_Request_Counter, u32_Functional_Code_0x2B_Request_Counter, u32_MODBUS_Baudrate, TProtocol_Base::u32_Parameter_Information_Request_Counter, TProtocol_Base::u32_Parameter_Information_Request_Error_Counter, TProtocol_Base::u32_Parameter_Read_Request_Counter, TProtocol_Base::u32_Parameter_Read_Request_Error_Counter, TProtocol_Base::u32_Parameter_Write_Request_Counter, TProtocol_Base::u32_Parameter_Write_Request_Error_Counter, TProtocol_Base::u32_Slave_Broadcast_Message_Counter, TProtocol_Base::u32_Slave_Busy_Counter, TProtocol_Base::u32_Slave_Exception_Error_Counter, TProtocol_Base::u32_Slave_Message_Counter, TProtocol_Base::u32_Slave_No_Acknowledge_Counter, TProtocol_Base::u32_Slave_No_Response_Counter, u32_Slave_Read_Input_Register_Error_Counter, TProtocol_Base::u32_Slave_Unknown_Request_Counter, and u8_MODBUS_Address.

Here is the call graph for this function:

◆ Set_Address()

BOOL TProtocol_MODBUS_Over_UART::Set_Address ( U8  u8_Address)
virtual

Set node address method.


Note
None
Parameters
[in]u8_Address- New node address
Returns
BOOL - operation status
Return values
false- The address assignment is unsuccessful
true- The address assignment is successful
Override
Not allowed
Attention
This method called from interrupt

Reimplemented from TProtocol_Base.

References u8_MODBUS_Address.

◆ Show_System_Ready_Message_Disable()

VOID TProtocol_MODBUS_Over_UART::Show_System_Ready_Message_Disable ( )
virtual

Disable system ready message method.


Note
None
Returns
None
Override
Not allowed
Attention
None

Implements TProtocol_Base.

◆ Show_System_Ready_Message_Enable()

VOID TProtocol_MODBUS_Over_UART::Show_System_Ready_Message_Enable ( )
virtual

Enable system ready message method.


Note
None
Returns
None
Override
Not allowed
Attention
None

Implements TProtocol_Base.

◆ Show_System_Welcome_Message_Disable()

VOID TProtocol_MODBUS_Over_UART::Show_System_Welcome_Message_Disable ( )
virtual

Disable show system welcome message method.


Note
None
Returns
None
Override
Not allowed
Attention
None

Implements TProtocol_Base.

◆ Show_System_Welcome_Message_Enable()

VOID TProtocol_MODBUS_Over_UART::Show_System_Welcome_Message_Enable ( )
virtual

Enable show system welcome message method.


Note
None
Returns
None
Override
Not allowed
Attention
None

Implements TProtocol_Base.

◆ Transmit_Boot_Welcome_Message()

VOID TProtocol_MODBUS_Over_UART::Transmit_Boot_Welcome_Message ( )
virtual

Transmit boot welcome message method.


Note
None
Returns
None
Override
Not allowed
Attention
None

Implements TProtocol_Base.

◆ Transmit_System_Ready_Message()

VOID TProtocol_MODBUS_Over_UART::Transmit_System_Ready_Message ( )
virtual

Transmit boot ready message method.


Note
None
Returns
None
Override
Not allowed
Attention
None

Implements TProtocol_Base.

◆ Write_File_Record()

BOOL TProtocol_MODBUS_Over_UART::Write_File_Record ( )
private

Write file record processing method.


Note
This method is not used in this object.
Returns
BOOL - Operation status
Return values
false- Operation faild
true- Operation done
Override
Not allowed
Attention
This method called from interrupt

References TMODBUS_Response_PDU::Init(), MODBUS_FC_0x15_WRITE_FILE_RECORD, MODBUS_RESPONCE_CODE_ILLEGAL_FUNCTION, object_Response_PDU, and u8_MODBUS_Address.

Referenced by Execute().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ Write_Multiple_Coils()

BOOL TProtocol_MODBUS_Over_UART::Write_Multiple_Coils ( )
private

Write multiple coils request processing method.


Note
None
Returns
BOOL - Operation status
Return values
false- Writing faild
true- Writing done
Override
Not allowed
Attention
This method called from interrupt
Todo:
ANVILEX KM: Stack may be overflowed!!!

References enum_BOOL, Get_ConOpSys_Parameter_Index_By_MODBUS_Coil(), TParameter_Manager::Get_Parameter_By_ID(), TParameter_Base::Get_Type(), TMODBUS_Response_PDU::Init(), MODBUS_FC_0x0F_WRITE_MULTIPLE_COILS, MODBUS_RESPONCE_CODE_ILLEGAL_DATA_ADDRESS, MODBUS_RESPONCE_CODE_ILLEGAL_DATA_VALUE, MODBUS_RESPONCE_CODE_SERVER_DEVICE_FAILURE, NULL, object_Parameter_Manager, object_Request_PDU, object_Response_PDU, TMODBUS_PDU_Base::Read_U16_Value(), TMODBUS_PDU_Base::Read_U8_Value(), u8_MODBUS_Address, and TParameter_Base::Write_Value_As_BOOL().

Referenced by Execute().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ Write_Multiple_Registers()

BOOL TProtocol_MODBUS_Over_UART::Write_Multiple_Registers ( )
private

◆ Write_Single_Coil()

BOOL TProtocol_MODBUS_Over_UART::Write_Single_Coil ( )
private

Write single coil request processing method.


Note
None
Returns
BOOL - Operation status
Return values
false- Read error
true- Reading was successful
Override
Not allowed
Attention
This method called from interrupt

References TMODBUS_PDU_Base::Append_U16_Value(), TMODBUS_PDU_Base::Append_U8_Value(), enum_BOOL, false, Get_ConOpSys_Parameter_Index_By_MODBUS_Coil(), TParameter_Manager::Get_Parameter_By_ID(), TParameter_Base::Get_Type(), TMODBUS_Response_PDU::Init(), MODBUS_FC_0x05_WRITE_SINGLE_COIL, MODBUS_RESPONCE_CODE_ILLEGAL_DATA_ADDRESS, MODBUS_RESPONCE_CODE_ILLEGAL_DATA_VALUE, NULL, object_Parameter_Manager, object_Request_PDU, object_Response_PDU, TMODBUS_PDU_Base::Read_U16_Value(), true, u8_MODBUS_Address, and TParameter_Base::Write_Value_As_BOOL().

Referenced by Execute().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ Write_Single_Register()

BOOL TProtocol_MODBUS_Over_UART::Write_Single_Register ( )
private

Write single register request processing method.


Note
None
Returns
BOOL - Operation status
Return values
false- Read error
true- Reading was successful
Override
Not allowed
Attention
This method called from interrupt

References TMODBUS_Response_PDU::Init(), MODBUS_FC_0x06_WRITE_SINGLE_REGISTER, MODBUS_RESPONCE_CODE_ILLEGAL_FUNCTION, object_Response_PDU, and u8_MODBUS_Address.

Referenced by Execute().

Here is the call graph for this function:
Here is the caller graph for this function:

Member Data Documentation

◆ fsm_MODBUS_State

TMODBUS_State TProtocol_MODBUS_Over_UART::fsm_MODBUS_State = enum_Init
private

◆ object_Request_PDU

TMODBUS_Request_PDU TProtocol_MODBUS_Over_UART::object_Request_PDU
private

◆ object_Response_PDU

TMODBUS_Response_PDU TProtocol_MODBUS_Over_UART::object_Response_PDU
private

◆ struct_Event_Log

TMODBUS_Event_Log_Record TProtocol_MODBUS_Over_UART::struct_Event_Log[64]
private

Event log buffer.

Referenced by Get_Communication_Event_Log(), and TProtocol_MODBUS_Over_UART().

◆ u32_Communication_Event_Counter

U32 TProtocol_MODBUS_Over_UART::u32_Communication_Event_Counter = (U32)0
private

Communication event counter.

Referenced by Get_Communication_Event_Counter(), and Get_Communication_Event_Log().

◆ u32_Functional_Code_0x01_Request_Counter

U32 TProtocol_MODBUS_Over_UART::u32_Functional_Code_0x01_Request_Counter = (U32)0
private

Functional code 0x01 request counter.

Referenced by Execute(), and Send_Information().

◆ u32_Functional_Code_0x02_Request_Counter

U32 TProtocol_MODBUS_Over_UART::u32_Functional_Code_0x02_Request_Counter = (U32)0
private

Functional code 0x02 request counter.

Referenced by Execute(), and Send_Information().

◆ u32_Functional_Code_0x03_Request_Counter

U32 TProtocol_MODBUS_Over_UART::u32_Functional_Code_0x03_Request_Counter = (U32)0
private

Functional code 0x03 request counter.

Referenced by Execute(), and Send_Information().

◆ u32_Functional_Code_0x04_Request_Counter

U32 TProtocol_MODBUS_Over_UART::u32_Functional_Code_0x04_Request_Counter = (U32)0
private

Functional code 0x04 request counter.

Referenced by Execute(), and Send_Information().

◆ u32_Functional_Code_0x05_Request_Counter

U32 TProtocol_MODBUS_Over_UART::u32_Functional_Code_0x05_Request_Counter = (U32)0
private

Functional code 0x05 request counter.

Referenced by Execute(), and Send_Information().

◆ u32_Functional_Code_0x06_Request_Counter

U32 TProtocol_MODBUS_Over_UART::u32_Functional_Code_0x06_Request_Counter = (U32)0
private

Functional code 0x06 request counter.

Referenced by Execute(), and Send_Information().

◆ u32_Functional_Code_0x07_Request_Counter

U32 TProtocol_MODBUS_Over_UART::u32_Functional_Code_0x07_Request_Counter = (U32)0
private

Functional code 0x07 request counter.

Referenced by Execute(), and Send_Information().

◆ u32_Functional_Code_0x08_0x00_Request_Counter

U32 TProtocol_MODBUS_Over_UART::u32_Functional_Code_0x08_0x00_Request_Counter = (U32)0
private

Functional code 0x08 0x00 request counter.

Referenced by Send_Information().

◆ u32_Functional_Code_0x08_0x01_Request_Counter

U32 TProtocol_MODBUS_Over_UART::u32_Functional_Code_0x08_0x01_Request_Counter = (U32)0
private

Functional code 0x08 0x01 request counter.

Referenced by Send_Information().

◆ u32_Functional_Code_0x08_0x02_Request_Counter

U32 TProtocol_MODBUS_Over_UART::u32_Functional_Code_0x08_0x02_Request_Counter = (U32)0
private

Functional code 0x08 0x02 request counter.

Referenced by Send_Information().

◆ u32_Functional_Code_0x08_0x03_Request_Counter

U32 TProtocol_MODBUS_Over_UART::u32_Functional_Code_0x08_0x03_Request_Counter = (U32)0
private

Functional code 0x08 0x03 request counter.

Referenced by Send_Information().

◆ u32_Functional_Code_0x08_0x04_Request_Counter

U32 TProtocol_MODBUS_Over_UART::u32_Functional_Code_0x08_0x04_Request_Counter = (U32)0
private

Functional code 0x08 0x04 request counter.

Referenced by Send_Information().

◆ u32_Functional_Code_0x08_0x05_Request_Counter

U32 TProtocol_MODBUS_Over_UART::u32_Functional_Code_0x08_0x05_Request_Counter = (U32)0
private

Functional code 0x08 0x05 request counter.

Referenced by Send_Information().

◆ u32_Functional_Code_0x08_0x06_Request_Counter

U32 TProtocol_MODBUS_Over_UART::u32_Functional_Code_0x08_0x06_Request_Counter = (U32)0
private

Functional code 0x08 0x06 request counter.

Referenced by Send_Information().

◆ u32_Functional_Code_0x08_0x07_Request_Counter

U32 TProtocol_MODBUS_Over_UART::u32_Functional_Code_0x08_0x07_Request_Counter = (U32)0
private

Functional code 0x08 0x07 request counter.

Referenced by Send_Information().

◆ u32_Functional_Code_0x08_0x08_Request_Counter

U32 TProtocol_MODBUS_Over_UART::u32_Functional_Code_0x08_0x08_Request_Counter = (U32)0
private

Functional code 0x08 0x08 request counter.

Referenced by Send_Information().

◆ u32_Functional_Code_0x08_0x09_Request_Counter

U32 TProtocol_MODBUS_Over_UART::u32_Functional_Code_0x08_0x09_Request_Counter = (U32)0
private

Functional code 0x08 0x09 request counter.

Referenced by Send_Information().

◆ u32_Functional_Code_0x08_0x0A_Request_Counter

U32 TProtocol_MODBUS_Over_UART::u32_Functional_Code_0x08_0x0A_Request_Counter = (U32)0
private

Functional code 0x08 0x0A request counter.

Referenced by Send_Information().

◆ u32_Functional_Code_0x08_0x0B_Request_Counter

U32 TProtocol_MODBUS_Over_UART::u32_Functional_Code_0x08_0x0B_Request_Counter = (U32)0
private

Functional code 0x08 0x0B request counter.

Referenced by Send_Information().

◆ u32_Functional_Code_0x08_0x0C_Request_Counter

U32 TProtocol_MODBUS_Over_UART::u32_Functional_Code_0x08_0x0C_Request_Counter = (U32)0
private

Functional code 0x08 0x0C request counter.

Referenced by Send_Information().

◆ u32_Functional_Code_0x08_0x0D_Request_Counter

U32 TProtocol_MODBUS_Over_UART::u32_Functional_Code_0x08_0x0D_Request_Counter = (U32)0
private

Functional code 0x08 0x0D request counter.

Referenced by Send_Information().

◆ u32_Functional_Code_0x08_0x0E_Request_Counter

U32 TProtocol_MODBUS_Over_UART::u32_Functional_Code_0x08_0x0E_Request_Counter = (U32)0
private

Functional code 0x08 0x0E request counter.

Referenced by Send_Information().

◆ u32_Functional_Code_0x08_0x0F_Request_Counter

U32 TProtocol_MODBUS_Over_UART::u32_Functional_Code_0x08_0x0F_Request_Counter = (U32)0
private

Functional code 0x08 0x0F request counter.

Referenced by Send_Information().

◆ u32_Functional_Code_0x08_0x10_Request_Counter

U32 TProtocol_MODBUS_Over_UART::u32_Functional_Code_0x08_0x10_Request_Counter = (U32)0
private

Functional code 0x08 0x10 request counter.

Referenced by Send_Information().

◆ u32_Functional_Code_0x08_0x11_Request_Counter

U32 TProtocol_MODBUS_Over_UART::u32_Functional_Code_0x08_0x11_Request_Counter = (U32)0
private

Functional code 0x08 0x11 request counter.

Referenced by Send_Information().

◆ u32_Functional_Code_0x08_0x12_Request_Counter

U32 TProtocol_MODBUS_Over_UART::u32_Functional_Code_0x08_0x12_Request_Counter = (U32)0
private

Functional code 0x08 0x12 request counter.

Referenced by Send_Information().

◆ u32_Functional_Code_0x08_0x13_Request_Counter

U32 TProtocol_MODBUS_Over_UART::u32_Functional_Code_0x08_0x13_Request_Counter = (U32)0
private

Functional code 0x08 0x13 request counter.

Referenced by Send_Information().

◆ u32_Functional_Code_0x08_Request_Counter

U32 TProtocol_MODBUS_Over_UART::u32_Functional_Code_0x08_Request_Counter = (U32)0
private

Functional code 0x08 request counter.

Referenced by Execute(), and Send_Information().

◆ u32_Functional_Code_0x0B_Request_Counter

U32 TProtocol_MODBUS_Over_UART::u32_Functional_Code_0x0B_Request_Counter = (U32)0
private

Functional code 0x0B request counter.

Referenced by Execute(), and Send_Information().

◆ u32_Functional_Code_0x0C_Request_Counter

U32 TProtocol_MODBUS_Over_UART::u32_Functional_Code_0x0C_Request_Counter = (U32)0
private

Functional code 0x0C request counter.

Referenced by Execute(), and Send_Information().

◆ u32_Functional_Code_0x0F_Request_Counter

U32 TProtocol_MODBUS_Over_UART::u32_Functional_Code_0x0F_Request_Counter = (U32)0
private

Functional code 0x0F request counter.

Referenced by Execute(), and Send_Information().

◆ u32_Functional_Code_0x10_Request_Counter

U32 TProtocol_MODBUS_Over_UART::u32_Functional_Code_0x10_Request_Counter = (U32)0
private

Functional code 0x10 request counter.

Referenced by Execute(), and Send_Information().

◆ u32_Functional_Code_0x11_Request_Counter

U32 TProtocol_MODBUS_Over_UART::u32_Functional_Code_0x11_Request_Counter = (U32)0
private

Functional code 0x11 request counter.

Referenced by Execute(), and Send_Information().

◆ u32_Functional_Code_0x14_Request_Counter

U32 TProtocol_MODBUS_Over_UART::u32_Functional_Code_0x14_Request_Counter = (U32)0
private

Functional code 0x14 request counter.

Referenced by Execute(), and Send_Information().

◆ u32_Functional_Code_0x15_Request_Counter

U32 TProtocol_MODBUS_Over_UART::u32_Functional_Code_0x15_Request_Counter = (U32)0
private

Functional code 0x15 request counter.

Referenced by Execute(), and Send_Information().

◆ u32_Functional_Code_0x16_Request_Counter

U32 TProtocol_MODBUS_Over_UART::u32_Functional_Code_0x16_Request_Counter = (U32)0
private

Functional code 0x16 request counter.

Referenced by Execute(), and Send_Information().

◆ u32_Functional_Code_0x17_Request_Counter

U32 TProtocol_MODBUS_Over_UART::u32_Functional_Code_0x17_Request_Counter = (U32)0
private

Functional code 0x17 request counter.

Referenced by Execute(), and Send_Information().

◆ u32_Functional_Code_0x18_Request_Counter

U32 TProtocol_MODBUS_Over_UART::u32_Functional_Code_0x18_Request_Counter = (U32)0
private

Functional code 0x18 request counter.

Referenced by Execute(), and Send_Information().

◆ u32_Functional_Code_0x2B_0x0C_Request_Counter

U32 TProtocol_MODBUS_Over_UART::u32_Functional_Code_0x2B_0x0C_Request_Counter = (U32)0
private

Functional code 0x2B 0x0C request counter.

Referenced by Send_Information().

◆ u32_Functional_Code_0x2B_0x0D_Request_Counter

U32 TProtocol_MODBUS_Over_UART::u32_Functional_Code_0x2B_0x0D_Request_Counter = (U32)0
private

Functional code 0x2B 0x0D request counter.

Referenced by Send_Information().

◆ u32_Functional_Code_0x2B_Request_Counter

U32 TProtocol_MODBUS_Over_UART::u32_Functional_Code_0x2B_Request_Counter = (U32)0
private

Functional code 0x2B request counter.

Referenced by Execute(), and Send_Information().

◆ u32_MODBUS_Baudrate

U32 TProtocol_MODBUS_Over_UART::u32_MODBUS_Baudrate = (U32)9600
private

Actual MODBUS baudrate.

Referenced by Send_Information().

◆ u32_RX_Buffer_Index

U32 TProtocol_MODBUS_Over_UART::u32_RX_Buffer_Index = (U32)0
private

RX buffer index.

◆ u32_Slave_Read_Input_Register_Error_Counter

U32 TProtocol_MODBUS_Over_UART::u32_Slave_Read_Input_Register_Error_Counter = (U32)0
private

Slave read input register error counter.

Referenced by Log_Slave_Read_Input_Register_Error(), and Send_Information().

◆ u64_Last_Symbol_Timestamp

U64 TProtocol_MODBUS_Over_UART::u64_Last_Symbol_Timestamp = (U64)0
private

◆ u8_MODBUS_Address

U8 TProtocol_MODBUS_Over_UART::u8_MODBUS_Address = (U8)1
private

◆ u8_RX_Buffer

U8 TProtocol_MODBUS_Over_UART::u8_RX_Buffer[256] = { (U8)0x00 }
private

RX buffer.


The documentation for this class was generated from the following files: