AgIsoStack++
A control-function-focused implementation of the major ISOBUS and J1939 protocols
|
Manages the control function functionalities message. More...
#include <isobus_functionalities.hpp>
Classes | |
class | FunctionalityData |
Stores the raw byte data associated with a functionality based on what the user has enabled and what options the user has set for that functionality. More... | |
Public Types | |
enum class | Functionalities : std::uint8_t { MinimumControlFunction = 0 , UniversalTerminalServer = 1 , UniversalTerminalWorkingSet = 2 , AuxOInputs = 3 , AuxOFunctions = 4 , AuxNInputs = 5 , AuxNFunctions = 6 , TaskControllerBasicServer = 7 , TaskControllerBasicClient = 8 , TaskControllerGeoServer = 9 , TaskControllerGeoClient = 10 , TaskControllerSectionControlServer = 11 , TaskControllerSectionControlClient = 12 , BasicTractorECUServer = 13 , BasicTractorECUImplementClient = 14 , TractorImplementManagementServer = 15 , TractorImplementManagementClient = 16 , FileServer = 17 , FileServerClient = 18 , ReservedRangeBegin = 19 , MaxFunctionalityReserved = 255 } |
Enumerates the different functionalities that an ISOBUS ECU can report in the control function functionalities message. More... | |
enum class | MinimumControlFunctionOptions : std::uint8_t { NoOptions = 0x00 , Type1ECUInternalWeakTermination = 0x01 , Type2ECUInternalEndPointTermination = 0x02 , SupportOfHeartbeatProducer = 0x04 , SupportOfHeartbeatConsumer = 0x08 , Reserved = 0xF0 } |
This parameter reports which minimum control function functionality options are supported. More... | |
enum class | AuxOOptions : std::uint8_t { NoOptions = 0x00 , SupportsType0Function = 0x01 , SupportsType1Function = 0x02 , SupportsType2Function = 0x04 , Reserved = 0xF8 } |
This parameter reports which auxiliary control type 1 functionality type functions are supported by an implement working set auxiliary function or an auxiliary function input unit. More... | |
enum class | AuxNOptions : std::uint16_t { NoOptions = 0x00 , SupportsType0Function = 0x01 , SupportsType1Function = 0x02 , SupportsType2Function = 0x04 , SupportsType3Function = 0x08 , SupportsType4Function = 0x10 , SupportsType5Function = 0x20 , SupportsType6Function = 0x40 , SupportsType7Function = 0x80 , SupportsType8Function = 0x100 , SupportsType9Function = 0x200 , SupportsType10Function = 0x400 , SupportsType11Function = 0x800 , SupportsType12Function = 0x1000 , SupportsType13Function = 0x2000 , SupportsType14Function = 0x4000 , Reserved = 0x8000 } |
This parameter reports which auxiliary control type 2 functionality type functions are supported by an implement working set auxiliary function or an auxiliary function input unit. More... | |
enum class | TaskControllerGeoServerOptions : std::uint8_t { NoOptions = 0x00 , PolygonBasedPrescriptionMapsAreSupported = 0x01 , Reserved = 0xFE } |
This option byte reports which task controller geo functionality options are supported by an implement working set master or a task controller. More... | |
enum class | BasicTractorECUOptions : std::uint8_t { TECUNotMeetingCompleteClass1Requirements = 0x00 , Class1NoOptions = 0x01 , Class2NoOptions = 0x02 , ClassRequiredLighting = 0x04 , NavigationOption = 0x08 , FrontHitchOption = 0x10 , GuidanceOption = 0x20 , Reserved = 0xC0 } |
This parameter reports which tractor ECU class and functionality options are supported by an implement working set master or a tractor ECU. More... | |
enum class | TractorImplementManagementOptions { NoOptions = 0 , FrontPTODisengagementIsSupported , FrontPTOEngagementCCWIsSupported , FrontPTOengagementCWIsSupported , FrontPTOspeedCCWIsSupported , FrontPTOspeedCWIsSupported , RearPTODisengagementIsSupported , RearPTOEngagementCCWIsSupported , RearPTOEngagementCWIsSupported , RearPTOSpeedCCWIsSupported , RearPTOSpeedCWIsSupported , FrontHitchMotionIsSupported , FrontHitchPositionIsSupported , RearHitchMotionIsSupported , RearHitchPositionIsSupported , VehicleSpeedInForwardDirectionIsSupported , VehicleSpeedInReverseDirectionIsSupported , VehicleSpeedStartMotionIsSupported , VehicleSpeedStopMotionIsSupported , VehicleSpeedForwardSetByServerIsSupported , VehicleSpeedReverseSetByServerIsSupported , VehicleSpeedChangeDirectionIsSupported , GuidanceCurvatureIsSupported } |
This parameter reports which TIM options are supported by a TIM server or an implement working set master. More... | |
Public Member Functions | |
ControlFunctionFunctionalities (std::shared_ptr< InternalControlFunction > sourceControlFunction) | |
Constructor for a ControlFunctionFunctionalities object. | |
~ControlFunctionFunctionalities () | |
Destructor for a ControlFunctionFunctionalities object. | |
void | set_functionality_is_supported (Functionalities functionality, std::uint8_t functionalityGeneration, bool isSupported) |
Adds or removes a supported functionality. | |
bool | get_functionality_is_supported (Functionalities functionality) |
Returns if a functionality was previously configured with set_functionality_is_supported. | |
std::uint8_t | get_functionality_generation (Functionalities functionality) |
Returns the generation that was set for the specified functionality when set_functionality_is_supported was called for that functionality. | |
void | set_minimum_control_function_option_state (MinimumControlFunctionOptions option, bool optionState) |
Sets a minimum control function functionality option to a new state. | |
bool | get_minimum_control_function_option_state (MinimumControlFunctionOptions option) |
Returns the current state of the specified minimum control function functionality option. | |
void | set_aux_O_inputs_option_state (AuxOOptions option, bool optionState) |
Sets an AUX-O inputs functionality option to a new state. | |
bool | get_aux_O_inputs_option_state (AuxOOptions option) |
Gets the state of an AUX-O inputs functionality option. | |
void | set_aux_O_functions_option_state (AuxOOptions option, bool optionState) |
Sets an AUX-O functions functionality option to a new state. | |
bool | get_aux_O_functions_option_state (AuxOOptions option) |
Gets the state of an AUX-O functions functionality option. | |
void | set_aux_N_inputs_option_state (AuxNOptions option, bool optionState) |
Sets an AUX-N inputs functionality option to a new state. | |
bool | get_aux_N_inputs_option_state (AuxNOptions option) |
Gets the state of an AUX-N inputs functionality option. | |
void | set_aux_N_functions_option_state (AuxNOptions option, bool optionState) |
Sets an AUX-N functions functionality option to a new state. | |
bool | get_aux_N_functions_option_state (AuxNOptions option) |
Gets the state of an AUX-N functions functionality option. | |
void | set_task_controller_geo_server_option_state (TaskControllerGeoServerOptions option, bool optionState) |
Sets a task controller geo server functionality option to a new state. | |
bool | get_task_controller_geo_server_option_state (TaskControllerGeoServerOptions option) |
Gets the state of a TC GEO server functionality option. | |
void | set_task_controller_geo_client_option (std::uint8_t numberOfControlChannels) |
Sets a task controller geo client's only functionality option, which is the number of control channels. | |
std::uint8_t | get_task_controller_geo_client_option () |
Gets the state of the only TC GEO client functionality option, which is the number of control channels. | |
void | set_task_controller_section_control_server_option_state (std::uint8_t numberOfSupportedBooms, std::uint8_t numberOfSupportedSections) |
Sets a task controller section control server's options. | |
std::uint8_t | get_task_controller_section_control_server_number_supported_booms () |
Gets the number of supported booms for the TC section control server functionality. | |
std::uint8_t | get_task_controller_section_control_server_number_supported_sections () |
Gets the number of supported sections for the TC section control server functionality. | |
void | set_task_controller_section_control_client_option_state (std::uint8_t numberOfSupportedBooms, std::uint8_t numberOfSupportedSections) |
Sets a task controller section control client's options. | |
std::uint8_t | get_task_controller_section_control_client_number_supported_booms () |
Gets the number of supported booms for the TC section control client functionality. | |
std::uint8_t | get_task_controller_section_control_client_number_supported_sections () |
Gets the number of supported sections for the TC section control client functionality. | |
void | set_basic_tractor_ECU_server_option_state (BasicTractorECUOptions option, bool optionState) |
Sets a tractor ECU server functionality option to a new state. | |
bool | get_basic_tractor_ECU_server_option_state (BasicTractorECUOptions option) |
Gets the state of a basic tractor ECU server functionality option. | |
void | set_basic_tractor_ECU_implement_client_option_state (BasicTractorECUOptions option, bool optionState) |
Sets a tractor ECU client functionality option to a new state. | |
bool | get_basic_tractor_ECU_implement_client_option_state (BasicTractorECUOptions option) |
Gets the state of a basic tractor ECU implement client functionality option. | |
void | set_tractor_implement_management_server_option_state (TractorImplementManagementOptions option, bool optionState) |
Sets a tractor implement management (TIM) server functionality option to a new state. | |
bool | get_tractor_implement_management_server_option_state (TractorImplementManagementOptions option) |
Gets the state of a basic tractor implement management client functionality option. | |
void | set_tractor_implement_management_server_aux_valve_option (std::uint8_t auxValveIndex, bool stateSupported, bool flowSupported) |
Sets a tractor implement management (TIM) server aux valve's functionality options to a new state. | |
bool | get_tractor_implement_management_server_aux_valve_state_supported (std::uint8_t auxValveIndex) |
Returns if a particular aux valve's state control is supported in the TIM server functionality. | |
bool | get_tractor_implement_management_server_aux_valve_flow_supported (std::uint8_t auxValveIndex) |
Returns if a particular aux valve's flow control is supported in the TIM server functionality. | |
void | set_tractor_implement_management_client_option_state (TractorImplementManagementOptions option, bool optionState) |
Sets a tractor implement management (TIM) client functionality option to a new state. | |
bool | get_tractor_implement_management_client_option_state (TractorImplementManagementOptions option) |
Gets the state of a TIM client functionality option. | |
void | set_tractor_implement_management_client_aux_valve_option (std::uint8_t auxValveIndex, bool stateSupported, bool flowSupported) |
Sets a tractor implement management (TIM) client aux valve's functionality options to a new state. | |
bool | get_tractor_implement_management_client_aux_valve_state_supported (std::uint8_t auxValveIndex) |
Returns if a particular aux valve's state control is supported in the TIM client functionality. | |
bool | get_tractor_implement_management_client_aux_valve_flow_supported (std::uint8_t auxValveIndex) |
Returns if a particular aux valve's flow control is supported in the TIM client functionality. | |
void | update () |
The diagnostic protocol will call this update function, make sure to call DiagnosticProtocol::update() in your update loop. | |
Protected Member Functions | |
void | get_message_content (std::vector< std::uint8_t > &messageData) |
Populates a vector with the message data needed to send PGN 0xFC8E. | |
Private Types | |
enum class | TransmitFlags : std::uint32_t { ControlFunctionFunctionalitiesMessage = 0 , NumberOfFlags } |
Enumerates a set of flags representing messages to be transmitted by this interfaces. More... | |
Private Member Functions | |
std::list< FunctionalityData >::iterator | get_functionality (Functionalities functionalityToRetrieve) |
Checks for the existence of a functionality in the list of previously configured functionalities and returns an iterator to that functionality in the list. | |
bool | get_functionality_byte_option (Functionalities functionality, std::uint8_t byteIndex, std::uint8_t option) |
A wrapper to to get an option from the first byte of a functionalities' data. | |
std::uint8_t | get_tim_option_byte_index (TractorImplementManagementOptions option) const |
Returns the byte index of the specified TIM option in the CF Functionalities message data associated with wither TIM server or TIM client functionalities. | |
std::uint8_t | get_tim_option_bit_index (TractorImplementManagementOptions option) const |
Returns the bit offset of a specified TIM functionality option into the TIM client and server functionality message data. | |
Static Private Member Functions | |
static bool | pgn_request_handler (std::uint32_t parameterGroupNumber, std::shared_ptr< ControlFunction > requestingControlFunction, bool &acknowledge, AcknowledgementType &acknowledgeType, void *parentPointer) |
Handles PGN requests for the control function functionalities message. | |
static void | process_flags (std::uint32_t flag, void *parentPointer) |
Processes set transmit flags to send messages. | |
Private Attributes | |
std::shared_ptr< InternalControlFunction > | myControlFunction |
The control function to send messages as. | |
std::list< FunctionalityData > | supportedFunctionalities |
A list of all configured functionalities and their data. | |
ProcessingFlags | txFlags |
Handles retries for sending the CF functionalities message. | |
Mutex | functionalitiesMutex |
Since messages come in on a different thread than the main app (probably), this mutex protects the functionality data. | |
Static Private Attributes | |
static constexpr std::uint8_t | NUMBER_TIM_AUX_VALVES_PER_BYTE = 4 |
The number of aux valves per byte of TIM functionality message data. | |
static constexpr std::uint8_t | NUMBER_TIM_AUX_VALVES = 32 |
The max number of TIM aux valves. | |
Manages the control function functionalities message.
Definition at line 29 of file isobus_functionalities.hpp.
|
strong |
This parameter reports which auxiliary control type 2 functionality type functions are supported by an implement working set auxiliary function or an auxiliary function input unit.
Definition at line 86 of file isobus_functionalities.hpp.
|
strong |
This parameter reports which auxiliary control type 1 functionality type functions are supported by an implement working set auxiliary function or an auxiliary function input unit.
Definition at line 74 of file isobus_functionalities.hpp.
|
strong |
This parameter reports which tractor ECU class and functionality options are supported by an implement working set master or a tractor ECU.
Definition at line 120 of file isobus_functionalities.hpp.
|
strong |
Enumerates the different functionalities that an ISOBUS ECU can report in the control function functionalities message.
Definition at line 34 of file isobus_functionalities.hpp.
|
strong |
This parameter reports which minimum control function functionality options are supported.
Definition at line 61 of file isobus_functionalities.hpp.
|
strong |
This option byte reports which task controller geo functionality options are supported by an implement working set master or a task controller.
Definition at line 110 of file isobus_functionalities.hpp.
This parameter reports which TIM options are supported by a TIM server or an implement working set master.
Definition at line 134 of file isobus_functionalities.hpp.
|
strongprivate |
Enumerates a set of flags representing messages to be transmitted by this interfaces.
Enumerator | |
---|---|
ControlFunctionFunctionalitiesMessage | A flag to send the CF Functionalities message. |
NumberOfFlags | The number of flags enumerated in this enum. |
Definition at line 416 of file isobus_functionalities.hpp.
|
explicit |
Constructor for a ControlFunctionFunctionalities object.
[in] | sourceControlFunction | The control function to use when sending messages |
Definition at line 19 of file isobus_functionalities.cpp.
isobus::ControlFunctionFunctionalities::~ControlFunctionFunctionalities | ( | ) |
Destructor for a ControlFunctionFunctionalities object.
Definition at line 35 of file isobus_functionalities.cpp.
bool isobus::ControlFunctionFunctionalities::get_aux_N_functions_option_state | ( | AuxNOptions | option | ) |
Gets the state of an AUX-N functions functionality option.
[in] | option | The option to get |
Definition at line 182 of file isobus_functionalities.cpp.
bool isobus::ControlFunctionFunctionalities::get_aux_N_inputs_option_state | ( | AuxNOptions | option | ) |
Gets the state of an AUX-N inputs functionality option.
[in] | option | The option to get |
Definition at line 162 of file isobus_functionalities.cpp.
bool isobus::ControlFunctionFunctionalities::get_aux_O_functions_option_state | ( | AuxOOptions | option | ) |
Gets the state of an AUX-O functions functionality option.
[in] | option | The option to get |
Definition at line 142 of file isobus_functionalities.cpp.
bool isobus::ControlFunctionFunctionalities::get_aux_O_inputs_option_state | ( | AuxOOptions | option | ) |
Gets the state of an AUX-O inputs functionality option.
[in] | option | The option to get |
Definition at line 124 of file isobus_functionalities.cpp.
bool isobus::ControlFunctionFunctionalities::get_basic_tractor_ECU_implement_client_option_state | ( | BasicTractorECUOptions | option | ) |
Gets the state of a basic tractor ECU implement client functionality option.
[in] | option | The option to get |
Definition at line 361 of file isobus_functionalities.cpp.
bool isobus::ControlFunctionFunctionalities::get_basic_tractor_ECU_server_option_state | ( | BasicTractorECUOptions | option | ) |
Gets the state of a basic tractor ECU server functionality option.
[in] | option | The option to get |
Definition at line 326 of file isobus_functionalities.cpp.
|
private |
Checks for the existence of a functionality in the list of previously configured functionalities and returns an iterator to that functionality in the list.
[in] | functionalityToRetrieve | The functionality to return |
Definition at line 649 of file isobus_functionalities.cpp.
|
private |
A wrapper to to get an option from the first byte of a functionalities' data.
[in] | functionality | The functionality associated to the option being retrieved |
[in] | byteIndex | The index of the option byte to query within |
[in] | option | The option bit to get the state for |
Definition at line 654 of file isobus_functionalities.cpp.
std::uint8_t isobus::ControlFunctionFunctionalities::get_functionality_generation | ( | Functionalities | functionality | ) |
Returns the generation that was set for the specified functionality when set_functionality_is_supported was called for that functionality.
[in] | functionality | The functionality to check against |
Definition at line 80 of file isobus_functionalities.cpp.
bool isobus::ControlFunctionFunctionalities::get_functionality_is_supported | ( | Functionalities | functionality | ) |
Returns if a functionality was previously configured with set_functionality_is_supported.
[in] | functionality | The functionality to check against |
Definition at line 66 of file isobus_functionalities.cpp.
|
protected |
Populates a vector with the message data needed to send PGN 0xFC8E.
[in,out] | messageData | The buffer to populate with data (will be cleared before use) |
Definition at line 668 of file isobus_functionalities.cpp.
bool isobus::ControlFunctionFunctionalities::get_minimum_control_function_option_state | ( | MinimumControlFunctionOptions | option | ) |
Returns the current state of the specified minimum control function functionality option.
[in] | option | The option to check the state of |
Definition at line 106 of file isobus_functionalities.cpp.
std::uint8_t isobus::ControlFunctionFunctionalities::get_task_controller_geo_client_option | ( | ) |
Gets the state of the only TC GEO client functionality option, which is the number of control channels.
Definition at line 218 of file isobus_functionalities.cpp.
bool isobus::ControlFunctionFunctionalities::get_task_controller_geo_server_option_state | ( | TaskControllerGeoServerOptions | option | ) |
Gets the state of a TC GEO server functionality option.
[in] | option | The option to get |
Definition at line 200 of file isobus_functionalities.cpp.
std::uint8_t isobus::ControlFunctionFunctionalities::get_task_controller_section_control_client_number_supported_booms | ( | ) |
Gets the number of supported booms for the TC section control client functionality.
Definition at line 287 of file isobus_functionalities.cpp.
std::uint8_t isobus::ControlFunctionFunctionalities::get_task_controller_section_control_client_number_supported_sections | ( | ) |
Gets the number of supported sections for the TC section control client functionality.
Definition at line 300 of file isobus_functionalities.cpp.
std::uint8_t isobus::ControlFunctionFunctionalities::get_task_controller_section_control_server_number_supported_booms | ( | ) |
Gets the number of supported booms for the TC section control server functionality.
Definition at line 246 of file isobus_functionalities.cpp.
std::uint8_t isobus::ControlFunctionFunctionalities::get_task_controller_section_control_server_number_supported_sections | ( | ) |
Gets the number of supported sections for the TC section control server functionality.
Definition at line 259 of file isobus_functionalities.cpp.
|
private |
Returns the bit offset of a specified TIM functionality option into the TIM client and server functionality message data.
[in] | option | The option for which you want to know the bit index into the TIM functionality message data |
Definition at line 761 of file isobus_functionalities.cpp.
|
private |
Returns the byte index of the specified TIM option in the CF Functionalities message data associated with wither TIM server or TIM client functionalities.
[in] | option | The option for which you want to know the byte index |
Definition at line 694 of file isobus_functionalities.cpp.
bool isobus::ControlFunctionFunctionalities::get_tractor_implement_management_client_aux_valve_flow_supported | ( | std::uint8_t | auxValveIndex | ) |
Returns if a particular aux valve's flow control is supported in the TIM client functionality.
[in] | auxValveIndex | The index of the aux valve to check |
Definition at line 541 of file isobus_functionalities.cpp.
bool isobus::ControlFunctionFunctionalities::get_tractor_implement_management_client_aux_valve_state_supported | ( | std::uint8_t | auxValveIndex | ) |
Returns if a particular aux valve's state control is supported in the TIM client functionality.
[in] | auxValveIndex | The index of the aux valve to check |
Definition at line 527 of file isobus_functionalities.cpp.
bool isobus::ControlFunctionFunctionalities::get_tractor_implement_management_client_option_state | ( | TractorImplementManagementOptions | option | ) |
Gets the state of a TIM client functionality option.
[in] | option | The option to get |
Definition at line 479 of file isobus_functionalities.cpp.
bool isobus::ControlFunctionFunctionalities::get_tractor_implement_management_server_aux_valve_flow_supported | ( | std::uint8_t | auxValveIndex | ) |
Returns if a particular aux valve's flow control is supported in the TIM server functionality.
[in] | auxValveIndex | The index of the aux valve to check |
Definition at line 453 of file isobus_functionalities.cpp.
bool isobus::ControlFunctionFunctionalities::get_tractor_implement_management_server_aux_valve_state_supported | ( | std::uint8_t | auxValveIndex | ) |
Returns if a particular aux valve's state control is supported in the TIM server functionality.
[in] | auxValveIndex | The index of the aux valve to check |
Definition at line 439 of file isobus_functionalities.cpp.
bool isobus::ControlFunctionFunctionalities::get_tractor_implement_management_server_option_state | ( | TractorImplementManagementOptions | option | ) |
Gets the state of a basic tractor implement management client functionality option.
[in] | option | The option to get |
Definition at line 402 of file isobus_functionalities.cpp.
|
staticprivate |
Handles PGN requests for the control function functionalities message.
[in] | parameterGroupNumber | The PGN that was requested |
[in] | requestingControlFunction | The control function that is requesting the PGN |
[out] | acknowledge | Tells the PGN request protocol to ACK ack the request |
[out] | acknowledgeType | Tells the PGN request protocol what kind of ACK to use |
[in] | parentPointer | A generic context variable, usually the "this" pointer of the registrant for callbacks |
Definition at line 833 of file isobus_functionalities.cpp.
|
staticprivate |
Processes set transmit flags to send messages.
[in] | flag | The flag to process |
[in] | parentPointer | A pointer back to an instance of this interface |
Definition at line 852 of file isobus_functionalities.cpp.
void isobus::ControlFunctionFunctionalities::set_aux_N_functions_option_state | ( | AuxNOptions | option, |
bool | optionState ) |
Sets an AUX-N functions functionality option to a new state.
Options set to true will be reported as "supported" to a requester of your control function functionalities within the "AUX-N functions" functionality section of the message.
[in] | option | The option to set |
[in] | optionState | The state to set for the associated option |
Definition at line 167 of file isobus_functionalities.cpp.
void isobus::ControlFunctionFunctionalities::set_aux_N_inputs_option_state | ( | AuxNOptions | option, |
bool | optionState ) |
Sets an AUX-N inputs functionality option to a new state.
Options set to true will be reported as "supported" to a requester of your control function functionalities within the "AUX-N inputs" functionality section of the message.
[in] | option | The option to set |
[in] | optionState | The state to set for the associated option |
Definition at line 147 of file isobus_functionalities.cpp.
void isobus::ControlFunctionFunctionalities::set_aux_O_functions_option_state | ( | AuxOOptions | option, |
bool | optionState ) |
Sets an AUX-O functions functionality option to a new state.
Options set to true will be reported as "supported" to a requester of your control function functionalities within the "AUX-O functions" functionality section of the message.
[in] | option | The option to set |
[in] | optionState | The state to set for the associated option |
Definition at line 129 of file isobus_functionalities.cpp.
void isobus::ControlFunctionFunctionalities::set_aux_O_inputs_option_state | ( | AuxOOptions | option, |
bool | optionState ) |
Sets an AUX-O inputs functionality option to a new state.
Options set to true will be reported as "supported" to a requester of your control function functionalities within the "AUX-O inputs" functionality section of the message.
[in] | option | The option to set |
[in] | optionState | The state to set for the associated option |
Definition at line 111 of file isobus_functionalities.cpp.
void isobus::ControlFunctionFunctionalities::set_basic_tractor_ECU_implement_client_option_state | ( | BasicTractorECUOptions | option, |
bool | optionState ) |
Sets a tractor ECU client functionality option to a new state.
The values set here will be reported as "supported" to a requester of your CF's functionalities
[in] | option | The option to set |
[in] | optionState | The state to set for the associated option |
Definition at line 348 of file isobus_functionalities.cpp.
void isobus::ControlFunctionFunctionalities::set_basic_tractor_ECU_server_option_state | ( | BasicTractorECUOptions | option, |
bool | optionState ) |
Sets a tractor ECU server functionality option to a new state.
The values set here will be reported as "supported" to a requester of your CF's functionalities
[in] | option | The option to set |
[in] | optionState | The state to set for the associated option |
Definition at line 313 of file isobus_functionalities.cpp.
void isobus::ControlFunctionFunctionalities::set_functionality_is_supported | ( | Functionalities | functionality, |
std::uint8_t | functionalityGeneration, | ||
bool | isSupported ) |
Adds or removes a supported functionality.
[in] | functionality | The functionality to change |
[in] | functionalityGeneration | The generation of the functionality to report |
[in] | isSupported | If true, this class will add reporting as such on the ISOBUS. If false, it will not be reported on the bus. |
Definition at line 43 of file isobus_functionalities.cpp.
void isobus::ControlFunctionFunctionalities::set_minimum_control_function_option_state | ( | MinimumControlFunctionOptions | option, |
bool | optionState ) |
Sets a minimum control function functionality option to a new state.
Options set to true will be reported as "supported" to a requester of your control function functionalities within the "minimum control function" functionality section of the message.
[in] | option | The option to set |
[in] | optionState | The state to set for the associated option |
Definition at line 93 of file isobus_functionalities.cpp.
void isobus::ControlFunctionFunctionalities::set_task_controller_geo_client_option | ( | std::uint8_t | numberOfControlChannels | ) |
Sets a task controller geo client's only functionality option, which is the number of control channels.
The value you set will be reported to the requestor of your CF's functionalities within the "task controller geo client" functionality section of the message.
[in] | numberOfControlChannels | The number of control channels your ECU supports for TC GEO (client side) |
Definition at line 205 of file isobus_functionalities.cpp.
void isobus::ControlFunctionFunctionalities::set_task_controller_geo_server_option_state | ( | TaskControllerGeoServerOptions | option, |
bool | optionState ) |
Sets a task controller geo server functionality option to a new state.
Options set to true will be reported as "supported" to a requester of your control function functionalities within the "task controller geo server" functionality section of the message.
[in] | option | The option to set |
[in] | optionState | The state to set for the associated option |
Definition at line 187 of file isobus_functionalities.cpp.
void isobus::ControlFunctionFunctionalities::set_task_controller_section_control_client_option_state | ( | std::uint8_t | numberOfSupportedBooms, |
std::uint8_t | numberOfSupportedSections ) |
Sets a task controller section control client's options.
The values set here will be reported as "supported" to a requester of your CF's functionalities
[in] | numberOfSupportedBooms | The number of booms your application TC client supports |
[in] | numberOfSupportedSections | The number of sections your application TC client supports |
Definition at line 272 of file isobus_functionalities.cpp.
void isobus::ControlFunctionFunctionalities::set_task_controller_section_control_server_option_state | ( | std::uint8_t | numberOfSupportedBooms, |
std::uint8_t | numberOfSupportedSections ) |
Sets a task controller section control server's options.
The values set here will be reported as "supported" to a requester of your CF's functionalities
[in] | numberOfSupportedBooms | The number of booms your application TC server supports |
[in] | numberOfSupportedSections | The number of sections your application TC server supports |
Definition at line 231 of file isobus_functionalities.cpp.
void isobus::ControlFunctionFunctionalities::set_tractor_implement_management_client_aux_valve_option | ( | std::uint8_t | auxValveIndex, |
bool | stateSupported, | ||
bool | flowSupported ) |
Sets a tractor implement management (TIM) client aux valve's functionality options to a new state.
The values set here will be reported as "supported" to a requester of your CF's functionalities
[in] | auxValveIndex | The index of the aux valve to set, between 0 and 31 |
[in] | stateSupported | Set to true to indicate you support the state of this valve, otherwise false |
[in] | flowSupported | Set to true to indicate your support aux valve flow with this valve |
Definition at line 515 of file isobus_functionalities.cpp.
void isobus::ControlFunctionFunctionalities::set_tractor_implement_management_client_option_state | ( | TractorImplementManagementOptions | option, |
bool | optionState ) |
Sets a tractor implement management (TIM) client functionality option to a new state.
The values set here will be reported as "supported" to a requester of your CF's functionalities
[in] | option | The option to set |
[in] | optionState | The state to set for the associated option |
Definition at line 467 of file isobus_functionalities.cpp.
void isobus::ControlFunctionFunctionalities::set_tractor_implement_management_server_aux_valve_option | ( | std::uint8_t | auxValveIndex, |
bool | stateSupported, | ||
bool | flowSupported ) |
Sets a tractor implement management (TIM) server aux valve's functionality options to a new state.
The values set here will be reported as "supported" to a requester of your CF's functionalities
[in] | auxValveIndex | The index of the aux valve to set, between 0 and 31 |
[in] | stateSupported | Set to true to indicate you support the state of this valve, otherwise false |
[in] | flowSupported | Set to true to indicate your support aux valve flow with this valve |
Definition at line 426 of file isobus_functionalities.cpp.
void isobus::ControlFunctionFunctionalities::set_tractor_implement_management_server_option_state | ( | TractorImplementManagementOptions | option, |
bool | optionState ) |
Sets a tractor implement management (TIM) server functionality option to a new state.
The values set here will be reported as "supported" to a requester of your CF's functionalities
[in] | option | The option to set |
[in] | optionState | The state to set for the associated option |
Definition at line 383 of file isobus_functionalities.cpp.
void isobus::ControlFunctionFunctionalities::update | ( | ) |
The diagnostic protocol will call this update function, make sure to call DiagnosticProtocol::update() in your update loop.
Definition at line 555 of file isobus_functionalities.cpp.
|
private |
Since messages come in on a different thread than the main app (probably), this mutex protects the functionality data.
Definition at line 472 of file isobus_functionalities.hpp.
|
private |
The control function to send messages as.
Definition at line 469 of file isobus_functionalities.hpp.
|
staticconstexprprivate |
The max number of TIM aux valves.
Definition at line 467 of file isobus_functionalities.hpp.
|
staticconstexprprivate |
The number of aux valves per byte of TIM functionality message data.
Definition at line 466 of file isobus_functionalities.hpp.
|
private |
A list of all configured functionalities and their data.
Definition at line 470 of file isobus_functionalities.hpp.
|
private |
Handles retries for sending the CF functionalities message.
Definition at line 471 of file isobus_functionalities.hpp.