mirror of
https://github.com/thelsing/knx.git
synced 2025-04-28 01:15:42 +02:00
Refactor IP-Tunneling to use IpParameterObject directly instead of via BusAccessUnit
This commit is contained in:
parent
e988c431fd
commit
fcfeef3334
@ -125,6 +125,36 @@ set(SOURCES
|
|||||||
../../src/knx/transport_layer.h
|
../../src/knx/transport_layer.h
|
||||||
../../src/knx/usb_tunnel_interface.cpp
|
../../src/knx/usb_tunnel_interface.cpp
|
||||||
../../src/knx/usb_tunnel_interface.h
|
../../src/knx/usb_tunnel_interface.h
|
||||||
|
../../src/knx/knx_ip_tunnel_connection.cpp
|
||||||
|
../../src/knx/knx_ip_tunnel_connection.h
|
||||||
|
../../src/knx/knx_ip_tunneling_request.cpp
|
||||||
|
../../src/knx/knx_ip_tunneling_request.h
|
||||||
|
../../src/knx/knx_ip_ch.cpp
|
||||||
|
../../src/knx/knx_ip_ch.h
|
||||||
|
../../src/knx/knx_ip_cri.cpp
|
||||||
|
../../src/knx/knx_ip_cri.h
|
||||||
|
../../src/knx/knx_ip_crd.cpp
|
||||||
|
../../src/knx/knx_ip_crd.h
|
||||||
|
../../src/knx/knx_ip_connect_request.cpp
|
||||||
|
../../src/knx/knx_ip_connect_request.h
|
||||||
|
../../src/knx/knx_ip_connect_response.cpp
|
||||||
|
../../src/knx/knx_ip_connect_response.h
|
||||||
|
../../src/knx/knx_ip_disconnect_request.cpp
|
||||||
|
../../src/knx/knx_ip_disconnect_request.h
|
||||||
|
../../src/knx/knx_ip_disconnect_response.cpp
|
||||||
|
../../src/knx/knx_ip_disconnect_response.h
|
||||||
|
../../src/knx/knx_ip_state_request.cpp
|
||||||
|
../../src/knx/knx_ip_state_request.h
|
||||||
|
../../src/knx/knx_ip_state_response.cpp
|
||||||
|
../../src/knx/knx_ip_state_response.h
|
||||||
|
../../src/knx/knx_ip_description_request.cpp
|
||||||
|
../../src/knx/knx_ip_description_request.h
|
||||||
|
../../src/knx/knx_ip_description_response.cpp
|
||||||
|
../../src/knx/knx_ip_description_response.h
|
||||||
|
../../src/knx/knx_ip_config_request.cpp
|
||||||
|
../../src/knx/knx_ip_config_request.h
|
||||||
|
../../src/knx/knx_ip_tunneling_ack.cpp
|
||||||
|
../../src/knx/knx_ip_tunneling_ack.h
|
||||||
../../src/knx_facade.cpp
|
../../src/knx_facade.cpp
|
||||||
../../src/knx_facade.h
|
../../src/knx_facade.h
|
||||||
../../src/linux_platform.cpp
|
../../src/linux_platform.cpp
|
||||||
@ -141,7 +171,7 @@ set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -Wall -Wno-unknown-pragmas -
|
|||||||
add_executable(knx-linux-iptp ${SOURCES})
|
add_executable(knx-linux-iptp ${SOURCES})
|
||||||
target_link_libraries(knx-linux-iptp "${LIBRARIES_FROM_REFERENCES}")
|
target_link_libraries(knx-linux-iptp "${LIBRARIES_FROM_REFERENCES}")
|
||||||
set_property(TARGET knx-linux-iptp PROPERTY CXX_STANDARD 11)
|
set_property(TARGET knx-linux-iptp PROPERTY CXX_STANDARD 11)
|
||||||
target_compile_definitions(knx-linux-iptp PUBLIC -DMASK_VERSION=0x091A)
|
target_compile_definitions(knx-linux-iptp PUBLIC -DMASK_VERSION=0x091A -DKNX_TUNNELING)
|
||||||
|
|
||||||
add_executable(knx-linux-tprf ${SOURCES})
|
add_executable(knx-linux-tprf ${SOURCES})
|
||||||
target_link_libraries(knx-linux-tprf "${LIBRARIES_FROM_REFERENCES}")
|
target_link_libraries(knx-linux-tprf "${LIBRARIES_FROM_REFERENCES}")
|
||||||
|
@ -10,7 +10,7 @@ using namespace std;
|
|||||||
|
|
||||||
Bau07B0::Bau07B0(Platform& platform)
|
Bau07B0::Bau07B0(Platform& platform)
|
||||||
: BauSystemBDevice(platform), DataLinkLayerCallbacks(),
|
: BauSystemBDevice(platform), DataLinkLayerCallbacks(),
|
||||||
_dlLayer(_deviceObj, _netLayer.getInterface(), _platform, *this, (ITpUartCallBacks&) * this, (DataLinkLayerCallbacks*) this)
|
_dlLayer(_deviceObj, _netLayer.getInterface(), _platform, (ITpUartCallBacks&) * this, (DataLinkLayerCallbacks*) this)
|
||||||
#ifdef USE_CEMI_SERVER
|
#ifdef USE_CEMI_SERVER
|
||||||
, _cemiServer(*this)
|
, _cemiServer(*this)
|
||||||
#endif
|
#endif
|
||||||
|
@ -17,8 +17,8 @@ Bau091A::Bau091A(Platform& platform)
|
|||||||
: BauSystemBCoupler(platform), DataLinkLayerCallbacks(),
|
: BauSystemBCoupler(platform), DataLinkLayerCallbacks(),
|
||||||
_routerObj(memory(), 0x200, 0x2000), // the Filtertable of 0x091A IP Routers is fixed at 0x200 and 0x2000 long
|
_routerObj(memory(), 0x200, 0x2000), // the Filtertable of 0x091A IP Routers is fixed at 0x200 and 0x2000 long
|
||||||
_ipParameters(_deviceObj, platform),
|
_ipParameters(_deviceObj, platform),
|
||||||
_dlLayerPrimary(_deviceObj, _ipParameters, _netLayer.getPrimaryInterface(), _platform, *this, (DataLinkLayerCallbacks*) this),
|
_dlLayerPrimary(_deviceObj, _ipParameters, _netLayer.getPrimaryInterface(), _platform, (DataLinkLayerCallbacks*) this),
|
||||||
_dlLayerSecondary(_deviceObj, _netLayer.getSecondaryInterface(), platform, *this, (ITpUartCallBacks&) * this, (DataLinkLayerCallbacks*) this)
|
_dlLayerSecondary(_deviceObj, _netLayer.getSecondaryInterface(), platform, (ITpUartCallBacks&) * this, (DataLinkLayerCallbacks*) this)
|
||||||
#ifdef USE_CEMI_SERVER
|
#ifdef USE_CEMI_SERVER
|
||||||
, _cemiServer(*this)
|
, _cemiServer(*this)
|
||||||
#endif
|
#endif
|
||||||
|
@ -10,7 +10,7 @@ using namespace std;
|
|||||||
|
|
||||||
Bau27B0::Bau27B0(Platform& platform)
|
Bau27B0::Bau27B0(Platform& platform)
|
||||||
: BauSystemBDevice(platform),
|
: BauSystemBDevice(platform),
|
||||||
_dlLayer(_deviceObj, _rfMediumObj, _netLayer.getInterface(), _platform, *this)
|
_dlLayer(_deviceObj, _rfMediumObj, _netLayer.getInterface(), _platform)
|
||||||
#ifdef USE_CEMI_SERVER
|
#ifdef USE_CEMI_SERVER
|
||||||
, _cemiServer(*this)
|
, _cemiServer(*this)
|
||||||
#endif
|
#endif
|
||||||
|
@ -14,8 +14,8 @@ Bau2920::Bau2920(Platform& platform)
|
|||||||
_rtObjPrimary(memory()),
|
_rtObjPrimary(memory()),
|
||||||
_rtObjSecondary(memory()),
|
_rtObjSecondary(memory()),
|
||||||
_rfMediumObject(),
|
_rfMediumObject(),
|
||||||
_dlLayerPrimary(_deviceObj, _netLayer.getPrimaryInterface(), _platform, *this, (ITpUartCallBacks&) * this),
|
_dlLayerPrimary(_deviceObj, _netLayer.getPrimaryInterface(), _platform, (ITpUartCallBacks&) * this),
|
||||||
_dlLayerSecondary(_deviceObj, _rfMediumObject, _netLayer.getSecondaryInterface(), platform, *this)
|
_dlLayerSecondary(_deviceObj, _rfMediumObject, _netLayer.getSecondaryInterface(), platform)
|
||||||
#ifdef USE_CEMI_SERVER
|
#ifdef USE_CEMI_SERVER
|
||||||
,
|
,
|
||||||
_cemiServer(*this)
|
_cemiServer(*this)
|
||||||
|
@ -11,7 +11,7 @@ using namespace std;
|
|||||||
Bau57B0::Bau57B0(Platform& platform)
|
Bau57B0::Bau57B0(Platform& platform)
|
||||||
: BauSystemBDevice(platform), DataLinkLayerCallbacks(),
|
: BauSystemBDevice(platform), DataLinkLayerCallbacks(),
|
||||||
_ipParameters(_deviceObj, platform),
|
_ipParameters(_deviceObj, platform),
|
||||||
_dlLayer(_deviceObj, _ipParameters, _netLayer.getInterface(), _platform, *this, (DataLinkLayerCallbacks*) this)
|
_dlLayer(_deviceObj, _ipParameters, _netLayer.getInterface(), _platform, (DataLinkLayerCallbacks*) this)
|
||||||
#ifdef USE_CEMI_SERVER
|
#ifdef USE_CEMI_SERVER
|
||||||
, _cemiServer(*this)
|
, _cemiServer(*this)
|
||||||
#endif
|
#endif
|
||||||
|
@ -18,8 +18,8 @@ void DataLinkLayerCallbacks::setActivityCallback(ActivityCallback activityCallba
|
|||||||
_activityCallback = activityCallback;
|
_activityCallback = activityCallback;
|
||||||
}
|
}
|
||||||
|
|
||||||
DataLinkLayer::DataLinkLayer(DeviceObject& devObj, NetworkLayerEntity& netLayerEntity, Platform& platform, BusAccessUnit& busAccessUnit) :
|
DataLinkLayer::DataLinkLayer(DeviceObject& devObj, NetworkLayerEntity& netLayerEntity, Platform& platform) :
|
||||||
_deviceObject(devObj), _networkLayerEntity(netLayerEntity), _platform(platform), _bau(busAccessUnit)
|
_deviceObject(devObj), _networkLayerEntity(netLayerEntity), _platform(platform)
|
||||||
{
|
{
|
||||||
#ifdef KNX_ACTIVITYCALLBACK
|
#ifdef KNX_ACTIVITYCALLBACK
|
||||||
_netIndex = netLayerEntity.getEntityIndex();
|
_netIndex = netLayerEntity.getEntityIndex();
|
||||||
@ -281,38 +281,14 @@ uint8_t* DataLinkLayer::frameData(CemiFrame& frame)
|
|||||||
#ifdef KNX_TUNNELING
|
#ifdef KNX_TUNNELING
|
||||||
bool DataLinkLayer::isTunnelingPA(uint16_t pa)
|
bool DataLinkLayer::isTunnelingPA(uint16_t pa)
|
||||||
{
|
{
|
||||||
uint8_t num = KNX_TUNNELING;
|
uint8_t numAddresses = 0;
|
||||||
uint32_t len = 0;
|
uint16_t* addresses = _ipParameters->additionalIndivualAddresses(numAddresses);
|
||||||
uint8_t* data = nullptr;
|
|
||||||
_bau.propertyValueRead(OT_IP_PARAMETER, 0, PID_ADDITIONAL_INDIVIDUAL_ADDRESSES, num, 1, &data, len);
|
|
||||||
|
|
||||||
//printHex("isTunnelingPA, PID_ADDITIONAL_INDIVIDUAL_ADDRESSES: ", *data, len);
|
for (uint8_t i = 0; i < numAddresses; i++)
|
||||||
if (len != KNX_TUNNELING * 2)
|
|
||||||
{
|
{
|
||||||
println("Tunnel PAs unkwnown");
|
if (pa == addresses[i])
|
||||||
|
|
||||||
if (data != nullptr)
|
|
||||||
delete[] data;
|
|
||||||
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
for (uint8_t i = 0; i < KNX_TUNNELING; i++)
|
|
||||||
{
|
|
||||||
uint16_t tunnelpa;
|
|
||||||
popWord(tunnelpa, (data) + i * 2);
|
|
||||||
|
|
||||||
if (pa == tunnelpa)
|
|
||||||
{
|
|
||||||
if (data != nullptr)
|
|
||||||
delete[] data;
|
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
if (data != nullptr)
|
|
||||||
delete[] data;
|
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
@ -6,6 +6,9 @@
|
|||||||
#include "device_object.h"
|
#include "device_object.h"
|
||||||
#include "knx_types.h"
|
#include "knx_types.h"
|
||||||
#include "network_layer_entity.h"
|
#include "network_layer_entity.h"
|
||||||
|
#ifdef KNX_TUNNELING
|
||||||
|
#include "ip_parameter_object.h"
|
||||||
|
#endif
|
||||||
#include "cemi_server.h"
|
#include "cemi_server.h"
|
||||||
#include "bau.h"
|
#include "bau.h"
|
||||||
|
|
||||||
@ -27,7 +30,7 @@ class DataLinkLayer
|
|||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
DataLinkLayer(DeviceObject& devObj, NetworkLayerEntity& netLayerEntity,
|
DataLinkLayer(DeviceObject& devObj, NetworkLayerEntity& netLayerEntity,
|
||||||
Platform& platform, BusAccessUnit& busAccessUnit);
|
Platform& platform);
|
||||||
|
|
||||||
#ifdef USE_CEMI_SERVER
|
#ifdef USE_CEMI_SERVER
|
||||||
// from tunnel
|
// from tunnel
|
||||||
@ -38,6 +41,7 @@ class DataLinkLayer
|
|||||||
virtual void dataConfirmationToTunnel(CemiFrame& frame);
|
virtual void dataConfirmationToTunnel(CemiFrame& frame);
|
||||||
virtual void dataIndicationToTunnel(CemiFrame& frame);
|
virtual void dataIndicationToTunnel(CemiFrame& frame);
|
||||||
virtual bool isTunnelAddress(uint16_t addr);
|
virtual bool isTunnelAddress(uint16_t addr);
|
||||||
|
void ipParameterObject(IpParameterObject* object);
|
||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@ -59,7 +63,6 @@ class DataLinkLayer
|
|||||||
DeviceObject& _deviceObject;
|
DeviceObject& _deviceObject;
|
||||||
NetworkLayerEntity& _networkLayerEntity;
|
NetworkLayerEntity& _networkLayerEntity;
|
||||||
Platform& _platform;
|
Platform& _platform;
|
||||||
BusAccessUnit& _bau;
|
|
||||||
#ifdef USE_CEMI_SERVER
|
#ifdef USE_CEMI_SERVER
|
||||||
CemiServer* _cemiServer;
|
CemiServer* _cemiServer;
|
||||||
#endif
|
#endif
|
||||||
@ -69,5 +72,6 @@ class DataLinkLayer
|
|||||||
#ifdef KNX_TUNNELING
|
#ifdef KNX_TUNNELING
|
||||||
bool isTunnelingPA(uint16_t pa);
|
bool isTunnelingPA(uint16_t pa);
|
||||||
bool isRoutedPA(uint16_t pa);
|
bool isRoutedPA(uint16_t pa);
|
||||||
|
IpParameterObject* _ipParameters;
|
||||||
#endif
|
#endif
|
||||||
};
|
};
|
||||||
|
@ -35,7 +35,7 @@
|
|||||||
#define MIN_LEN_CEMI 10
|
#define MIN_LEN_CEMI 10
|
||||||
|
|
||||||
IpDataLinkLayer::IpDataLinkLayer(DeviceObject& devObj, IpParameterObject& ipParam,
|
IpDataLinkLayer::IpDataLinkLayer(DeviceObject& devObj, IpParameterObject& ipParam,
|
||||||
NetworkLayerEntity& netLayerEntity, Platform& platform, BusAccessUnit& busAccessUnit, DataLinkLayerCallbacks* dllcb) : DataLinkLayer(devObj, netLayerEntity, platform, busAccessUnit), _ipParameters(ipParam), _dllcb(dllcb)
|
NetworkLayerEntity& netLayerEntity, Platform& platform, DataLinkLayerCallbacks* dllcb) : DataLinkLayer(devObj, netLayerEntity, platform), _ipParameters(ipParam), _dllcb(dllcb)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -704,8 +704,8 @@ void IpDataLinkLayer::loopHandleConnectRequest(uint8_t* buffer, uint16_t length,
|
|||||||
int firstFreeTunnel = -1;
|
int firstFreeTunnel = -1;
|
||||||
int firstResAndFreeTunnel = -1;
|
int firstResAndFreeTunnel = -1;
|
||||||
int firstResAndOccTunnel = -1;
|
int firstResAndOccTunnel = -1;
|
||||||
bool tunnelResActive[KNX_TUNNELING];
|
bool tunnelResActive[KNX_TUNNELING] = {0};
|
||||||
uint8_t tunnelResOptions[KNX_TUNNELING];
|
uint8_t tunnelResOptions[KNX_TUNNELING] = {0};
|
||||||
|
|
||||||
for (int i = 0; i < KNX_TUNNELING; i++)
|
for (int i = 0; i < KNX_TUNNELING; i++)
|
||||||
{
|
{
|
||||||
|
@ -15,7 +15,7 @@ class IpDataLinkLayer : public DataLinkLayer
|
|||||||
|
|
||||||
public:
|
public:
|
||||||
IpDataLinkLayer(DeviceObject& devObj, IpParameterObject& ipParam, NetworkLayerEntity& netLayerEntity,
|
IpDataLinkLayer(DeviceObject& devObj, IpParameterObject& ipParam, NetworkLayerEntity& netLayerEntity,
|
||||||
Platform& platform, BusAccessUnit& busAccessUnit, DataLinkLayerCallbacks* dllcb = nullptr);
|
Platform& platform, DataLinkLayerCallbacks* dllcb = nullptr);
|
||||||
|
|
||||||
void loop();
|
void loop();
|
||||||
void enabled(bool value);
|
void enabled(bool value);
|
||||||
@ -49,7 +49,6 @@ class IpDataLinkLayer : public DataLinkLayer
|
|||||||
#endif
|
#endif
|
||||||
bool sendBytes(uint8_t* buffer, uint16_t length);
|
bool sendBytes(uint8_t* buffer, uint16_t length);
|
||||||
bool isSendLimitReached();
|
bool isSendLimitReached();
|
||||||
|
|
||||||
IpParameterObject& _ipParameters;
|
IpParameterObject& _ipParameters;
|
||||||
DataLinkLayerCallbacks* _dllcb;
|
DataLinkLayerCallbacks* _dllcb;
|
||||||
#ifdef KNX_TUNNELING
|
#ifdef KNX_TUNNELING
|
||||||
|
@ -130,4 +130,14 @@ IpParameterObject::IpParameterObject(DeviceObject& deviceObject, Platform& platf
|
|||||||
initializeProperties(sizeof(properties), properties);
|
initializeProperties(sizeof(properties), properties);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
uint16_t* IpParameterObject::additionalIndivualAddresses(uint8_t& numAddresses)
|
||||||
|
{
|
||||||
|
#ifdef KNX_TUNNELING
|
||||||
|
numAddresses = KNX_TUNNELING;
|
||||||
|
#else
|
||||||
|
numAddresses = 0;
|
||||||
|
#endif
|
||||||
|
return (uint16_t*) propertyData(PID_ADDITIONAL_INDIVIDUAL_ADDRESSES);
|
||||||
|
}
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
@ -12,7 +12,7 @@ class IpParameterObject : public InterfaceObject
|
|||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
IpParameterObject(DeviceObject& deviceObject, Platform& platform);
|
IpParameterObject(DeviceObject& deviceObject, Platform& platform);
|
||||||
|
uint16_t* additionalIndivualAddresses(uint8_t& numAddresses);
|
||||||
private:
|
private:
|
||||||
DeviceObject& _deviceObject;
|
DeviceObject& _deviceObject;
|
||||||
Platform& _platform;
|
Platform& _platform;
|
||||||
|
@ -1,15 +1,15 @@
|
|||||||
#include "knx_ip_config_request.h"
|
#include "knx_ip_config_request.h"
|
||||||
#ifdef USE_IP
|
#ifdef USE_IP
|
||||||
KnxIpConfigRequest::KnxIpConfigRequest(uint8_t* data, uint16_t length)
|
KnxIpConfigRequest::KnxIpConfigRequest(uint8_t* data, uint16_t length)
|
||||||
: KnxIpFrame(data, length), _ch(data + LEN_KNXIP_HEADER), _frame(data + LEN_KNXIP_HEADER + LEN_CH, length - LEN_KNXIP_HEADER - LEN_CH)
|
: KnxIpFrame(data, length), _frame(data + LEN_KNXIP_HEADER + LEN_CH, length - LEN_KNXIP_HEADER - LEN_CH), _ch(data + LEN_KNXIP_HEADER)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
CemiFrame& KnxIpConfigRequest::frame()
|
CemiFrame& KnxIpConfigRequest::frame()
|
||||||
{
|
{
|
||||||
return _frame;
|
return _frame;
|
||||||
}
|
}
|
||||||
|
|
||||||
KnxIpCH& KnxIpConfigRequest::connectionHeader()
|
KnxIpCH& KnxIpConfigRequest::connectionHeader()
|
||||||
{
|
{
|
||||||
return _ch;
|
return _ch;
|
||||||
|
@ -3,12 +3,12 @@
|
|||||||
|
|
||||||
#ifdef USE_IP
|
#ifdef USE_IP
|
||||||
KnxIpTunnelingRequest::KnxIpTunnelingRequest(uint8_t* data,
|
KnxIpTunnelingRequest::KnxIpTunnelingRequest(uint8_t* data,
|
||||||
uint16_t length) : KnxIpFrame(data, length), _ch(_data + headerLength()), _frame(data + LEN_CH + headerLength(), length - LEN_CH - headerLength())
|
uint16_t length) : KnxIpFrame(data, length), _frame(data + LEN_CH + headerLength(), length - LEN_CH - headerLength()), _ch(_data + headerLength())
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
KnxIpTunnelingRequest::KnxIpTunnelingRequest(CemiFrame frame)
|
KnxIpTunnelingRequest::KnxIpTunnelingRequest(CemiFrame frame)
|
||||||
: KnxIpFrame(frame.totalLenght() + LEN_CH + LEN_KNXIP_HEADER), _ch(_data + LEN_KNXIP_HEADER), _frame(_data + LEN_CH + LEN_KNXIP_HEADER, frame.totalLenght())
|
: KnxIpFrame(frame.totalLenght() + LEN_CH + LEN_KNXIP_HEADER), _frame(_data + LEN_CH + LEN_KNXIP_HEADER, frame.totalLenght()), _ch(_data + LEN_KNXIP_HEADER)
|
||||||
{
|
{
|
||||||
serviceTypeIdentifier(TunnelingRequest);
|
serviceTypeIdentifier(TunnelingRequest);
|
||||||
memcpy(_data + LEN_KNXIP_HEADER + LEN_CH, frame.data(), frame.totalLenght());
|
memcpy(_data + LEN_KNXIP_HEADER + LEN_CH, frame.data(), frame.totalLenght());
|
||||||
|
@ -78,8 +78,8 @@ bool RfDataLinkLayer::sendFrame(CemiFrame& frame)
|
|||||||
}
|
}
|
||||||
|
|
||||||
RfDataLinkLayer::RfDataLinkLayer(DeviceObject& devObj, RfMediumObject& rfMediumObj,
|
RfDataLinkLayer::RfDataLinkLayer(DeviceObject& devObj, RfMediumObject& rfMediumObj,
|
||||||
NetworkLayerEntity& netLayerEntity, Platform& platform, BusAccessUnit& busAccessUnit)
|
NetworkLayerEntity& netLayerEntity, Platform& platform)
|
||||||
: DataLinkLayer(devObj, netLayerEntity, platform, busAccessUnit),
|
: DataLinkLayer(devObj, netLayerEntity, platform),
|
||||||
_rfMediumObj(rfMediumObj),
|
_rfMediumObj(rfMediumObj),
|
||||||
_rfPhy(*this, platform)
|
_rfPhy(*this, platform)
|
||||||
{
|
{
|
||||||
|
@ -22,7 +22,7 @@ class RfDataLinkLayer : public DataLinkLayer
|
|||||||
|
|
||||||
public:
|
public:
|
||||||
RfDataLinkLayer(DeviceObject& devObj, RfMediumObject& rfMediumObj, NetworkLayerEntity& netLayerEntity,
|
RfDataLinkLayer(DeviceObject& devObj, RfMediumObject& rfMediumObj, NetworkLayerEntity& netLayerEntity,
|
||||||
Platform& platform, BusAccessUnit& busAccessUnit);
|
Platform& platform);
|
||||||
|
|
||||||
void loop();
|
void loop();
|
||||||
void enabled(bool value);
|
void enabled(bool value);
|
||||||
|
@ -1039,10 +1039,9 @@ bool TpUartDataLinkLayer::processTxFrameBytes()
|
|||||||
TpUartDataLinkLayer::TpUartDataLinkLayer(DeviceObject& devObj,
|
TpUartDataLinkLayer::TpUartDataLinkLayer(DeviceObject& devObj,
|
||||||
NetworkLayerEntity& netLayerEntity,
|
NetworkLayerEntity& netLayerEntity,
|
||||||
Platform& platform,
|
Platform& platform,
|
||||||
BusAccessUnit& busAccessUnit,
|
|
||||||
ITpUartCallBacks& cb,
|
ITpUartCallBacks& cb,
|
||||||
DataLinkLayerCallbacks* dllcb)
|
DataLinkLayerCallbacks* dllcb)
|
||||||
: DataLinkLayer(devObj, netLayerEntity, platform, busAccessUnit),
|
: DataLinkLayer(devObj, netLayerEntity, platform),
|
||||||
_cb(cb),
|
_cb(cb),
|
||||||
_dllcb(dllcb)
|
_dllcb(dllcb)
|
||||||
{
|
{
|
||||||
|
@ -39,7 +39,7 @@ class TpUartDataLinkLayer : public DataLinkLayer
|
|||||||
|
|
||||||
public:
|
public:
|
||||||
TpUartDataLinkLayer(DeviceObject& devObj, NetworkLayerEntity& netLayerEntity,
|
TpUartDataLinkLayer(DeviceObject& devObj, NetworkLayerEntity& netLayerEntity,
|
||||||
Platform& platform, BusAccessUnit& busAccessUnit, ITpUartCallBacks& cb, DataLinkLayerCallbacks* dllcb = nullptr);
|
Platform& platform, ITpUartCallBacks& cb, DataLinkLayerCallbacks* dllcb = nullptr);
|
||||||
|
|
||||||
void loop();
|
void loop();
|
||||||
void enabled(bool value);
|
void enabled(bool value);
|
||||||
|
Loading…
Reference in New Issue
Block a user