bool ProprietaryMessageA_c::sendWithPrio( unsigned prio, const IsoName_c& a_overwrite_remote ) { isoaglib_assert( prio <= 7 ); isoaglib_assert(m_ident); // do not allow overwrite to a different target if m_remote is specified isoaglib_assert(!m_remote.isSpecified() || a_overwrite_remote.isUnspecified() || (a_overwrite_remote == m_remote)); const uint32_t pgn = ( uint32_t( m_dp ) << 16) | PROPRIETARY_A_PGN; if (getDataSend().getLen() <= 8) { CanPkgExt_c pkg; pkg.setIsoPri( static_cast<uint8_t>( prio ) ); pkg.setIsoPgn( pgn ); pkg.setISONameForDA( a_overwrite_remote.isSpecified() ? a_overwrite_remote : m_remote ); pkg.setMonitorItemForSA( m_ident->getIsoItem() ); pkg.setDataFromString ( getDataSend().getDataStream(), static_cast<uint8_t>( getDataSend().getLen() ) ); getIsoBusInstance( m_ident->getMultitonInst() ) << pkg; return true; } else { /** multi-packet */ /** variable should be evaluated */ // const bool cb_couldStartMultiSend = // we could catch the information if the sending succeeded, but what to do with it anyway? return getMultiSendInstance( m_ident->getMultitonInst() ).sendIsoTarget( m_ident->isoName(), a_overwrite_remote.isSpecified() ? a_overwrite_remote : m_remote, getDataSend().getDataStream(0), getDataSend().getLen(), pgn, this ); } }
bool ProprietaryMessageB_c::send( uint8_t ps ) { isoaglib_assert(m_ident); const uint32_t pgn = ( uint32_t( m_dp ) << 16) | PROPRIETARY_B_PGN | ps; if (getDataSend().getLen() <= 8) { CanPkgExt_c pkg; pkg.setIsoPri( 6 ); pkg.setIsoPgn( pgn ); pkg.setMonitorItemForSA( m_ident->getIsoItem() ); pkg.setDataFromString ( getDataSend().getDataStream(), static_cast<uint8_t>( getDataSend().getLen() ) ); getIsoBusInstance( m_ident->getMultitonInst() ) << pkg; return true; } else { /** multi-packet */ /** variable should be evaluated */ // const bool cb_couldStartMultiSend = // we could catch the information if the sending succeeded, but what to do with it anyway? return getMultiSendInstance( m_ident->getMultitonInst() ).sendIsoTarget( m_ident->isoName(), m_remote, getDataSend().getDataStream(0), getDataSend().getLen(), pgn, this ); } }
/** send a PGN request */ bool BaseCommon_c::sendPgnRequest(uint32_t ui32_requestedPGN) { if( ( ! getIdentItem() ) || ( ! getIdentItem()->isClaimedAddress() ) ) return false; IsoItem_c *dest = getSelectedDataSourceISONameConst().isSpecified() ? getIsoMonitorInstance( getIdentItem()->getMultitonInst() ).item( getSelectedDataSourceISONameConst(), true ) : NULL; // --> ask to global CanPkgExt_c pkg; pkg.setIsoPri(6); pkg.setIsoPgn(REQUEST_PGN_MSG_PGN); pkg.setMonitorItemForSA( getIdentItem()->getIsoItem() ); pkg.setMonitorItemForDA( dest ); pkg.setLen( 3 ); pkg.setUint32Data( 0 , ui32_requestedPGN ); getIsoBusInstance( getIdentItem()->getMultitonInst() ) << pkg; return true; }
void FsManager_c::FsCommandManager_c::close() { getIsoBusInstance( m_fsManager.getMultitonInst() ).deleteFilter( *this, IsoAgLib::iMaskFilterType_c( 0x3FF0000, FS_TO_CLIENT_PGN<<8, Ident_c::ExtendedIdent ) ); }