.. _program_listing_file_src_knx_cemi_server.h: Program Listing for File cemi_server.h ====================================== |exhale_lsh| :ref:`Return to documentation for file ` (``src/knx/cemi_server.h``) .. |exhale_lsh| unicode:: U+021B0 .. UPWARDS ARROW WITH TIP LEFTWARDS .. code-block:: cpp #pragma once #include "config.h" #ifdef USE_CEMI_SERVER #include #include "knx_types.h" #include "usb_tunnel_interface.h" class BauSystemB; class DataLinkLayer; class CemiFrame; class CemiServer { public: CemiServer(BauSystemB& bau); void dataLinkLayer(DataLinkLayer& layer); #ifdef KNX_TUNNELING void dataLinkLayerPrimary(DataLinkLayer& layer); #endif // from data link layer // Only L_Data service void dataIndicationToTunnel(CemiFrame& frame); void dataConfirmationToTunnel(CemiFrame& frame); // From tunnel interface void frameReceived(CemiFrame& frame); uint16_t clientAddress() const; void clientAddress(uint16_t value); void loop(); private: uint16_t _clientAddress = 0; uint8_t _frameNumber = 0; void handleLData(CemiFrame& frame); void handleMPropRead(CemiFrame& frame); void handleMPropWrite(CemiFrame& frame); void handleMReset(CemiFrame& frame); DataLinkLayer* _dataLinkLayer = nullptr; #ifdef KNX_TUNNELING DataLinkLayer* _dataLinkLayerPrimary = nullptr; #endif BauSystemB& _bau; #ifdef USE_USB UsbTunnelInterface _usbTunnelInterface; #endif }; #endif