FreeHIL
Loading...
Searching...
No Matches
FH_DI.h File Reference

File Map:
FH_Root, Section FH_Perif, FH_DI (Digital Input)
Functions in this file, handle RFCommunication (RobotFramework Communication) for all commands related to DI (Digital Input) More...

Go to the source code of this file.

Functions

FH_ErrorInfo FH_DI_RFCommunication (FH_RFCommunication_Message *fh_RFCommunication_Message)
 This function is the basic function of handling RFCommunication (RobotFramework Communication) for all the Commands related to the Function DI (Digital Input)
This function is called from FH_RFCommunication().
FH_ErrorInfo FH_DI_ProcessCommand_Init (FH_RFCommunication_Message *fh_RFCommunication_Message)
 This function handles FH_DI_Commands_Init command
There are 3 main items handled in this function as following:
1 - Verifying the health of the received message
2 - Setting the addresses of the functions in FH_Functions, Section FH_DI (Digital Input) to an array of function pointer
3 - Calling the related function in FH_Functions, Section FH_DI (Digital Input) according to the first parameter of the Data in the message frame.
FH_ErrorInfo FH_DI_ProcessCommand_GetStatus (FH_RFCommunication_Message *fh_RFCommunication_Message, uint8_t *FH_DI_Data)
 This function handles FH_DI_Commands_GetStatus command
There are 3 main items handled in this function as following:
1 - Verifying the health of the received message
2 - Setting the addresses of the functions in FH_Functions, Section FH_DI (Digital Input) to an array of function pointer
3 - Calling the related function in FH_Functions, Section FH_DI (Digital Input) according to the first parameter of the Data in the message frame.
FH_ErrorInfo FH_DI_ProcessCommand_InitMULTI (FH_RFCommunication_Message *fh_RFCommunication_Message)
 This function handles FH_DI_ProcessCommand_InitMULTI command
With this function, mass initialization of up to 64 DI (Digital Input) is possible instead of just 1 DI (Digital Input)
There are 3 main items handled in this function as following:
1 - Verifying the health of the received message
2 - Setting the addresses of the functions in FH_Functions, Section FH_DI (Digital Input) to an array of function pointer
3 - Calling the related function(s) in FH_Functions, Section FH_DI (Digital Input) according to the 8 first parameters of the Data in the message frame
(The first 8 parameters resemble 64 bits and each bit resembles 1 DI (Digital Input) and if the bit is 1, the related DI (Digital Input) function will be called).
FH_ErrorInfo FH_DI_ProcessCommand_GetStatusMULTI (FH_RFCommunication_Message *fh_RFCommunication_Message, uint8_t *FH_DI_Data)
 This function handles FH_DI_ProcessCommand_GetStatusMULTI command
With this function, mass status get of up to 64 DI (Digital Input) is possible instead of just 1 DI (Digital Input)
There are 3 main items handled in this function as following:
1 - Verifying the health of the received message
2 - Setting the addresses of the functions in FH_Functions, Section FH_DI (Digital Input) to an array of function pointer
3 - Calling the related function in FH_Functions, Section FH_DI (Digital Input) according to the 8 first parameters of the Data in the message frame
(The first 8 parameters as mask resemble 64 bits and each bit resembles 1 DI (Digital Input) and if the bit is 1, the related DI (Digital Input) function will be called).

Detailed Description

File Map:
FH_Root, Section FH_Perif, FH_DI (Digital Input)
Functions in this file, handle RFCommunication (RobotFramework Communication) for all commands related to DI (Digital Input)

Attention
FH user could left this file intact

SPDX-License-Identifier: Apache-2.0

Copyright 2026 Vahid Hasirchi

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

For more information refer to FreeHIL.com

Definition in file FH_DI.h.

Function Documentation

◆ FH_DI_ProcessCommand_GetStatus()

FH_ErrorInfo FH_DI_ProcessCommand_GetStatus ( FH_RFCommunication_Message * fh_RFCommunication_Message,
uint8_t * FH_DI_Data )

This function handles FH_DI_Commands_GetStatus command
There are 3 main items handled in this function as following:
1 - Verifying the health of the received message
2 - Setting the addresses of the functions in FH_Functions, Section FH_DI (Digital Input) to an array of function pointer
3 - Calling the related function in FH_Functions, Section FH_DI (Digital Input) according to the first parameter of the Data in the message frame.

Parameters
fh_RFCommunication_MessageThe message frame set by RobotFramework
  ==============================================================================
                        ##### RobotFramework Example #####
  ==============================================================================
  @{MessageData} =    Create List    ${DI01}
  &{Message}     =    Create Dictionary    DeviceAddress=${DeviceAddress_01}    Function=${Function_DI}    Command=${DI_Commands_GetStatus}    Data=@{MessageData}
  ${Result}    SendMessage    &{Message}

  Comments:

  DI01 => It indicates the Digital Input 01
  DeviceAddress_01 => It shall be equal to the address of the device: FH_RFCommunication_DeviceAddress
  Function_DI => It is the function in the message frame
  DI_Commands_GetStatus => It is the command of the function in the message frame
Returns
FH_ErrorInfo is returned

Definition at line 193 of file FH_DI.c.

References FH_ErrorInfo::error_code, FH_DI_MaxPeripheralNumber, FH_ERROR_OK, FH_ResetErrorInfo(), and fh_RFCommunication_Message.

Referenced by FH_DI_RFCommunication().

◆ FH_DI_ProcessCommand_GetStatusMULTI()

FH_ErrorInfo FH_DI_ProcessCommand_GetStatusMULTI ( FH_RFCommunication_Message * fh_RFCommunication_Message,
uint8_t * FH_DI_MULTIData )

This function handles FH_DI_ProcessCommand_GetStatusMULTI command
With this function, mass status get of up to 64 DI (Digital Input) is possible instead of just 1 DI (Digital Input)
There are 3 main items handled in this function as following:
1 - Verifying the health of the received message
2 - Setting the addresses of the functions in FH_Functions, Section FH_DI (Digital Input) to an array of function pointer
3 - Calling the related function in FH_Functions, Section FH_DI (Digital Input) according to the 8 first parameters of the Data in the message frame
(The first 8 parameters as mask resemble 64 bits and each bit resembles 1 DI (Digital Input) and if the bit is 1, the related DI (Digital Input) function will be called).

Parameters
fh_RFCommunication_MessageThe message frame set by RobotFramework
FH_DI_MULTIData64 bits (8 bytes) resemble 64 bits result and each bit resembles the status of 1 DI (Digital Input) as 1 or 0 of the corresponding bit in the first 8 bytes of the Data
  ==============================================================================
                        ##### RobotFramework Example #####
  ==============================================================================
  @{MessageData} =    Create List    FF    FF    FF    FF    FF    FF    FF    FF
  &{Message}     =    Create Dictionary    DeviceAddress=${DeviceAddress_01}    Function=${Function_DI}    Command=${DI_Commands_GetStatusMULTI}    Data=@{MessageData}
  ${Result}    SendMessage    &{Message}

  Comments:

  FF    FF    FF    FF    FF    FF    FF    FF => Example data as the first 8 parameters
  DeviceAddress_01 => It shall be equal to the address of the device: FH_RFCommunication_DeviceAddress
  Function_DI => It is the function in the message frame
  DI_Commands_GetStatusMULTI => It is the command of the function in the message frame
Returns
FH_ErrorInfo is returned

Definition at line 304 of file FH_DI.c.

References FH_ErrorInfo::error_code, FH_DI_MaxPeripheralNumber, FH_ERROR_OK, FH_ResetErrorInfo(), and fh_RFCommunication_Message.

Referenced by FH_DI_RFCommunication().

◆ FH_DI_ProcessCommand_Init()

FH_ErrorInfo FH_DI_ProcessCommand_Init ( FH_RFCommunication_Message * fh_RFCommunication_Message)

This function handles FH_DI_Commands_Init command
There are 3 main items handled in this function as following:
1 - Verifying the health of the received message
2 - Setting the addresses of the functions in FH_Functions, Section FH_DI (Digital Input) to an array of function pointer
3 - Calling the related function in FH_Functions, Section FH_DI (Digital Input) according to the first parameter of the Data in the message frame.

Parameters
fh_RFCommunication_MessageThe message frame set by RobotFramework
  ==============================================================================
                        ##### RobotFramework Example #####
  ==============================================================================
  @{MessageData} =    Create List    ${DI01}
  &{Message}     =    Create Dictionary    DeviceAddress=${DeviceAddress_01}    Function=${Function_DI}    Command=${DI_Commands_Init}    Data=@{MessageData}
  ${Result}    SendMessage    &{Message}

  Comments:

  DI01 => It indicates the Digital Input 01
  DeviceAddress_01 => It shall be equal to the address of the device: FH_RFCommunication_DeviceAddress
  Function_DI => It is the function in the message frame
  DI_Commands_Init => It is the command of the function in the message frame
Returns
FH_ErrorInfo is returned

Definition at line 140 of file FH_DI.c.

References FH_ErrorInfo::error_code, FH_DI_Init_C(), FH_DI_Init_H(), FH_DI_Init_S(), FH_DI_MaxPeripheralNumber, FH_ERROR_OK, FH_ResetErrorInfo(), and fh_RFCommunication_Message.

Referenced by FH_DI_RFCommunication().

◆ FH_DI_ProcessCommand_InitMULTI()

FH_ErrorInfo FH_DI_ProcessCommand_InitMULTI ( FH_RFCommunication_Message * fh_RFCommunication_Message)

This function handles FH_DI_ProcessCommand_InitMULTI command
With this function, mass initialization of up to 64 DI (Digital Input) is possible instead of just 1 DI (Digital Input)
There are 3 main items handled in this function as following:
1 - Verifying the health of the received message
2 - Setting the addresses of the functions in FH_Functions, Section FH_DI (Digital Input) to an array of function pointer
3 - Calling the related function(s) in FH_Functions, Section FH_DI (Digital Input) according to the 8 first parameters of the Data in the message frame
(The first 8 parameters resemble 64 bits and each bit resembles 1 DI (Digital Input) and if the bit is 1, the related DI (Digital Input) function will be called).

Parameters
fh_RFCommunication_MessageThe message frame set by RobotFramework
  ==============================================================================
                        ##### RobotFramework Example #####
  ==============================================================================
  @{MessageData} =    Create List    FF    FF    FF    FF    FF    FF    FF    FF
  &{Message}     =    Create Dictionary    DeviceAddress=${DeviceAddress_01}    Function=${Function_DI}    Command=${DI_Commands_InitMULTI}    Data=@{MessageData}
  ${Result}    SendMessage    &{Message}

  Comments:

  FF    FF    FF    FF    FF    FF    FF    FF => Example data as the first 8 parameters
  DeviceAddress_01 => It shall be equal to the address of the device: FH_RFCommunication_DeviceAddress
  Function_DI => It is the function in the message frame
  DI_Commands_InitMULTI => It is the command of the function in the message frame
Returns
FH_ErrorInfo is returned

Definition at line 247 of file FH_DI.c.

References FH_ErrorInfo::error_code, FH_DI_Init_S(), FH_DI_InitMULTI_C(), FH_DI_InitMULTI_H(), FH_DI_MaxPeripheralNumber, FH_ERROR_OK, FH_ResetErrorInfo(), and fh_RFCommunication_Message.

Referenced by FH_DI_RFCommunication().

◆ FH_DI_RFCommunication()

FH_ErrorInfo FH_DI_RFCommunication ( FH_RFCommunication_Message * fh_RFCommunication_Message)

This function is the basic function of handling RFCommunication (RobotFramework Communication) for all the Commands related to the Function DI (Digital Input)
This function is called from FH_RFCommunication().

Parameters
fh_RFCommunication_MessageThe message frame set by RobotFramework
Returns
FH_ErrorInfo is returned

Definition at line 61 of file FH_DI.c.

References FH_ErrorInfo::error_code, FH_DI_Commands_GetStatus, FH_DI_Commands_GetStatusMULTI, FH_DI_Commands_Init, FH_DI_Commands_InitMULTI, FH_DI_ProcessCommand_GetStatus(), FH_DI_ProcessCommand_GetStatusMULTI(), FH_DI_ProcessCommand_Init(), FH_DI_ProcessCommand_InitMULTI(), FH_ResetErrorInfo(), FH_RFCommunication_DeviceAddress, fh_RFCommunication_Message, FH_RFCommunication_Send(), and FH_RFCommunication_SendBuf.

Referenced by FH_RFCommunication().