Nix (Dev) 3.5.10
dev - 3.5.10 - 1af9301
Loading...
Searching...
No Matches
iv::comms::nmea2k::Nmea2kCommunicationController Class Reference

#include <Nmea2kCommunicationController.hpp>

Inheritance diagram for iv::comms::nmea2k::Nmea2kCommunicationController:
[legend]
Collaboration diagram for iv::comms::nmea2k::Nmea2kCommunicationController:
[legend]

Public Member Functions

 Nmea2kCommunicationController ()=delete
 
 Nmea2kCommunicationController (const std::shared_ptr< ICommunicationDriver > &driver, const std::shared_ptr< iv::model::comms::NetworkData > &networkData)
 
 Nmea2kCommunicationController (const Nmea2kCommunicationController &other)=delete
 
 Nmea2kCommunicationController (Nmea2kCommunicationController &&other)=delete
 
 ~Nmea2kCommunicationController () override=default
 
Nmea2kCommunicationControlleroperator= (const Nmea2kCommunicationController &other)=delete
 
Nmea2kCommunicationControlleroperator= (Nmea2kCommunicationController &&other)=delete
 
void pause () const
 
void resume () const
 
iv::types::networkId getNetworkId () const
 
std::shared_ptr< iv::model::comms::NetworkDatagetCommConfig () const
 
std::shared_ptr< iv::comms::ICommunicationDrivergetDriver () const
 
bool hasChannel (const iv::types::channelId &channelId) const
 
bool isEnabled ()
 

Protected Attributes

iv::types::networkId m_networkId
 
std::shared_ptr< bool > m_isEnabled
 
std::shared_ptr< iv::model::comms::NetworkDatam_commConfig
 
std::shared_ptr< iv::comms::ICommunicationProtocolm_protocol
 
std::shared_ptr< iv::comms::ICommunicationDriverm_driver
 
std::map< iv::types::channelId, std::shared_ptr< iv::channels::AbstractChannel > > m_channels
 
std::weak_ptr< iv::channels::AbstractChannelm_errorChannel
 
std::weak_ptr< iv::channels::AbstractChannelm_heartbeatChannel
 
std::weak_ptr< iv::comms::ICommunicationControllerm_fallbackComm
 
std::weak_ptr< iv::diamar::AppFailuresLoggerManagerm_appFailuresLoggerManager
 

Private Member Functions

bool frame () override
 
bool sendFrame ()
 
void receiveFrame ()
 
void trimOnGoingCommunications ()
 
void addChannel (const std::shared_ptr< iv::channels::AbstractChannel > &channel) override
 
void initialize () override
 
void sendMessage (const std::shared_ptr< CMessageCan > &message)
 
void handleSinglePacketMessage (const std::vector< std::byte > &data, std::pair< iv::types::comms::pgn, iv::types::comms::j1939SourceAddress > pgnAndAddress)
 
void handleDataTransferMessage (const std::shared_ptr< CMessageCan > &message, std::pair< iv::types::comms::pgn, iv::types::comms::j1939SourceAddress > pgnAndAddress)
 
void handleConnectionManagementMessage (const std::shared_ptr< CMessageCan > &message, std::pair< iv::types::comms::pgn, iv::types::comms::j1939SourceAddress > pgnAndAddress)
 
void handleBamProtocolConnectionMessage (const std::shared_ptr< CMessageCan > &message, std::pair< iv::types::comms::pgn, iv::types::comms::j1939SourceAddress > pgnAndAddress)
 
void handleBamProtocolDataTransferMessage (const std::shared_ptr< CMessageCan > &message, iv::comms::canJ1939::onGoingCanJ1939MultiPacketCommunication &comm)
 
void bindToChannel (const std::pair< iv::types::comms::pgn, std::optional< iv::types::comms::j1939SourceAddress > > pgnAndAddress, const std::vector< std::byte > &data)
 

Private Attributes

std::shared_ptr< iv::comms::can::ICanCommunicationProtocolm_canProtocol
 
iv::types::timestamp m_lastHeartbeatTime
 
iv::types::timestamp m_lastTimestampReceived
 
iv::containers::CircularQueue< std::shared_ptr< CMessageCan >, 1000 > m_sendQueue
 
std::map< std::pair< iv::types::comms::pgn, std::optional< iv::types::comms::j1939SourceAddress > >, std::vector< iv::comms::nmea2k::Nmea2kChannelBinding > > m_channelsOrderedByPgnAndAddress
 
std::map< iv::types::comms::j1939SourceAddress, iv::comms::canJ1939::onGoingCanJ1939MultiPacketCommunicationm_onGoingMultiPacketCommunications
 
std::mutex m_eraseCommsMutex
 

Friends

class Nmea2kCommunicationControllerFrame
 

Constructor & Destructor Documentation

◆ Nmea2kCommunicationController() [1/4]

iv::comms::nmea2k::Nmea2kCommunicationController::Nmea2kCommunicationController ( )
delete

◆ Nmea2kCommunicationController() [2/4]

iv::comms::nmea2k::Nmea2kCommunicationController::Nmea2kCommunicationController ( const std::shared_ptr< ICommunicationDriver > & driver,
const std::shared_ptr< iv::model::comms::NetworkData > & networkData )
explicit

◆ Nmea2kCommunicationController() [3/4]

iv::comms::nmea2k::Nmea2kCommunicationController::Nmea2kCommunicationController ( const Nmea2kCommunicationController & other)
delete

◆ Nmea2kCommunicationController() [4/4]

iv::comms::nmea2k::Nmea2kCommunicationController::Nmea2kCommunicationController ( Nmea2kCommunicationController && other)
delete

◆ ~Nmea2kCommunicationController()

iv::comms::nmea2k::Nmea2kCommunicationController::~Nmea2kCommunicationController ( )
overridedefault

Member Function Documentation

◆ addChannel()

void iv::comms::nmea2k::Nmea2kCommunicationController::addChannel ( const std::shared_ptr< iv::channels::AbstractChannel > & channel)
overrideprivatevirtual

◆ bindToChannel()

void iv::comms::nmea2k::Nmea2kCommunicationController::bindToChannel ( const std::pair< iv::types::comms::pgn, std::optional< iv::types::comms::j1939SourceAddress > > pgnAndAddress,
const std::vector< std::byte > & data )
private

◆ frame()

bool iv::comms::nmea2k::Nmea2kCommunicationController::frame ( )
overrideprivatevirtual

◆ getCommConfig()

std::shared_ptr< iv::model::comms::NetworkData > iv::comms::ICommunicationController::getCommConfig ( ) const
inlinenodiscardinherited

◆ getDriver()

std::shared_ptr< iv::comms::ICommunicationDriver > iv::comms::ICommunicationController::getDriver ( ) const
inlinenodiscardinherited

◆ getNetworkId()

iv::types::networkId iv::comms::ICommunicationController::getNetworkId ( ) const
inlinenodiscardinherited

◆ handleBamProtocolConnectionMessage()

void iv::comms::nmea2k::Nmea2kCommunicationController::handleBamProtocolConnectionMessage ( const std::shared_ptr< CMessageCan > & message,
std::pair< iv::types::comms::pgn, iv::types::comms::j1939SourceAddress > pgnAndAddress )
private

◆ handleBamProtocolDataTransferMessage()

void iv::comms::nmea2k::Nmea2kCommunicationController::handleBamProtocolDataTransferMessage ( const std::shared_ptr< CMessageCan > & message,
iv::comms::canJ1939::onGoingCanJ1939MultiPacketCommunication & comm )
private

◆ handleConnectionManagementMessage()

void iv::comms::nmea2k::Nmea2kCommunicationController::handleConnectionManagementMessage ( const std::shared_ptr< CMessageCan > & message,
std::pair< iv::types::comms::pgn, iv::types::comms::j1939SourceAddress > pgnAndAddress )
private

◆ handleDataTransferMessage()

void iv::comms::nmea2k::Nmea2kCommunicationController::handleDataTransferMessage ( const std::shared_ptr< CMessageCan > & message,
std::pair< iv::types::comms::pgn, iv::types::comms::j1939SourceAddress > pgnAndAddress )
private

◆ handleSinglePacketMessage()

void iv::comms::nmea2k::Nmea2kCommunicationController::handleSinglePacketMessage ( const std::vector< std::byte > & data,
std::pair< iv::types::comms::pgn, iv::types::comms::j1939SourceAddress > pgnAndAddress )
private

◆ hasChannel()

bool iv::comms::ICommunicationController::hasChannel ( const iv::types::channelId & channelId) const
inlinenodiscardinherited

◆ initialize()

void iv::comms::nmea2k::Nmea2kCommunicationController::initialize ( )
overrideprivatevirtual

◆ isEnabled()

bool iv::comms::ICommunicationController::isEnabled ( )
inlinenodiscardinherited

◆ operator=() [1/2]

Nmea2kCommunicationController & iv::comms::nmea2k::Nmea2kCommunicationController::operator= ( const Nmea2kCommunicationController & other)
delete

◆ operator=() [2/2]

Nmea2kCommunicationController & iv::comms::nmea2k::Nmea2kCommunicationController::operator= ( Nmea2kCommunicationController && other)
delete

◆ pause()

void iv::comms::ICommunicationController::pause ( ) const
inlineinherited

◆ receiveFrame()

void iv::comms::nmea2k::Nmea2kCommunicationController::receiveFrame ( )
private

◆ resume()

void iv::comms::ICommunicationController::resume ( ) const
inlineinherited

◆ sendFrame()

bool iv::comms::nmea2k::Nmea2kCommunicationController::sendFrame ( )
private

◆ sendMessage()

void iv::comms::nmea2k::Nmea2kCommunicationController::sendMessage ( const std::shared_ptr< CMessageCan > & message)
private

◆ trimOnGoingCommunications()

void iv::comms::nmea2k::Nmea2kCommunicationController::trimOnGoingCommunications ( )
private

Friends And Related Symbol Documentation

◆ Nmea2kCommunicationControllerFrame

Member Data Documentation

◆ m_appFailuresLoggerManager

std::weak_ptr<iv::diamar::AppFailuresLoggerManager> iv::comms::ICommunicationController::m_appFailuresLoggerManager
protectedinherited

◆ m_canProtocol

std::shared_ptr<iv::comms::can::ICanCommunicationProtocol> iv::comms::nmea2k::Nmea2kCommunicationController::m_canProtocol
private

◆ m_channels

std::map<iv::types::channelId, std::shared_ptr<iv::channels::AbstractChannel> > iv::comms::ICommunicationController::m_channels
protectedinherited

◆ m_channelsOrderedByPgnAndAddress

std::map<std::pair<iv::types::comms::pgn, std::optional<iv::types::comms::j1939SourceAddress> >, std::vector<iv::comms::nmea2k::Nmea2kChannelBinding> > iv::comms::nmea2k::Nmea2kCommunicationController::m_channelsOrderedByPgnAndAddress
private

◆ m_commConfig

std::shared_ptr<iv::model::comms::NetworkData> iv::comms::ICommunicationController::m_commConfig
protectedinherited

◆ m_driver

std::shared_ptr<iv::comms::ICommunicationDriver> iv::comms::ICommunicationController::m_driver
protectedinherited

◆ m_eraseCommsMutex

std::mutex iv::comms::nmea2k::Nmea2kCommunicationController::m_eraseCommsMutex
private

◆ m_errorChannel

std::weak_ptr<iv::channels::AbstractChannel> iv::comms::ICommunicationController::m_errorChannel
protectedinherited

◆ m_fallbackComm

std::weak_ptr<iv::comms::ICommunicationController> iv::comms::ICommunicationController::m_fallbackComm
protectedinherited

◆ m_heartbeatChannel

std::weak_ptr<iv::channels::AbstractChannel> iv::comms::ICommunicationController::m_heartbeatChannel
protectedinherited

◆ m_isEnabled

std::shared_ptr<bool> iv::comms::ICommunicationController::m_isEnabled
protectedinherited

◆ m_lastHeartbeatTime

iv::types::timestamp iv::comms::nmea2k::Nmea2kCommunicationController::m_lastHeartbeatTime
private

◆ m_lastTimestampReceived

iv::types::timestamp iv::comms::nmea2k::Nmea2kCommunicationController::m_lastTimestampReceived
private

◆ m_networkId

iv::types::networkId iv::comms::ICommunicationController::m_networkId
protectedinherited

◆ m_onGoingMultiPacketCommunications

std::map<iv::types::comms::j1939SourceAddress, iv::comms::canJ1939::onGoingCanJ1939MultiPacketCommunication> iv::comms::nmea2k::Nmea2kCommunicationController::m_onGoingMultiPacketCommunications
private

◆ m_protocol

std::shared_ptr<iv::comms::ICommunicationProtocol> iv::comms::ICommunicationController::m_protocol
protectedinherited

◆ m_sendQueue

iv::containers::CircularQueue<std::shared_ptr<CMessageCan>, 1000> iv::comms::nmea2k::Nmea2kCommunicationController::m_sendQueue
private

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