class KNX::CEMI

Overview

Add.Info Length = 0x00 - no additional info Control Field 1 = see the bit structure above Control Field 2 = see the bit structure above Source Address = 0x0000 - filled in by router/gateway with its source address which is part of the KNX subnet Dest. Address = KNX group or individual address (2 byte) Data Length = Number of bytes of data in the APDU excluding the TPCI/APCI bits APDU = Application Protocol Data Unit - the actual payload including transport protocol control information (TPCI), application protocol control information (APCI) and data passed as an argument from higher layers of the KNX communication stack

Defined in:

knx/cemi.cr

Constant Summary

ENDIAN = ["big"]

Add.Info Length = 0x00 - no additional info Control Field 1 = see the bit structure above Control Field 2 = see the bit structure above Source Address = 0x0000 - filled in by router/gateway with its source address which is part of the KNX subnet Dest. Address = KNX group or individual address (2 byte) Data Length = Number of bytes of data in the APDU excluding the TPCI/APCI bits APDU = Application Protocol Data Unit - the actual payload including transport protocol control information (TPCI), application protocol control information (APCI) and data passed as an argument from higher layers of the KNX communication stack

KLASS_NAME = [KNX::CEMI]

Add.Info Length = 0x00 - no additional info Control Field 1 = see the bit structure above Control Field 2 = see the bit structure above Source Address = 0x0000 - filled in by router/gateway with its source address which is part of the KNX subnet Dest. Address = KNX group or individual address (2 byte) Data Length = Number of bytes of data in the APDU excluding the TPCI/APCI bits APDU = Application Protocol Data Unit - the actual payload including transport protocol control information (TPCI), application protocol control information (APCI) and data passed as an argument from higher layers of the KNX communication stack

PARTS = [{type: "enum", name: msg_code, cls: UInt8, onlyif: nil, verify: nil, value: nil, encoding: MsgCode}, {type: "basic", name: info_length, cls: UInt8, onlyif: nil, verify: nil, value: -> do additional_info.size end}, {type: "bytes", name: additional_info, cls: Bytes, onlyif: nil, verify: nil, length: -> do info_length end, value: nil}, {type: "bitfield", name: 2, cls: KNX::CEMI, onlyif: nil, verify: nil}, {type: "bytes", name: source_address, cls: Bytes, onlyif: nil, verify: nil, length: -> do 2 end, value: nil}, {type: "bytes", name: destination_address, cls: Bytes, onlyif: nil, verify: nil, length: -> do 2 end, value: nil}, {type: "basic", name: data_length, cls: UInt8, onlyif: nil, verify: nil, value: nil}, {type: "bitfield", name: 3, cls: KNX::CEMI, onlyif: nil, verify: nil}] of Nil

Add.Info Length = 0x00 - no additional info Control Field 1 = see the bit structure above Control Field 2 = see the bit structure above Source Address = 0x0000 - filled in by router/gateway with its source address which is part of the KNX subnet Dest. Address = KNX group or individual address (2 byte) Data Length = Number of bytes of data in the APDU excluding the TPCI/APCI bits APDU = Application Protocol Data Unit - the actual payload including transport protocol control information (TPCI), application protocol control information (APCI) and data passed as an argument from higher layers of the KNX communication stack

REMAINING = [] of Nil

Add.Info Length = 0x00 - no additional info Control Field 1 = see the bit structure above Control Field 2 = see the bit structure above Source Address = 0x0000 - filled in by router/gateway with its source address which is part of the KNX subnet Dest. Address = KNX group or individual address (2 byte) Data Length = Number of bytes of data in the APDU excluding the TPCI/APCI bits APDU = Application Protocol Data Unit - the actual payload including transport protocol control information (TPCI), application protocol control information (APCI) and data passed as an argument from higher layers of the KNX communication stack

Class Method Summary

Instance Method Summary

Macro Summary

Class Method Detail

def self.bit_fields #

Add.Info Length = 0x00 - no additional info Control Field 1 = see the bit structure above Control Field 2 = see the bit structure above Source Address = 0x0000 - filled in by router/gateway with its source address which is part of the KNX subnet Dest. Address = KNX group or individual address (2 byte) Data Length = Number of bytes of data in the APDU excluding the TPCI/APCI bits APDU = Application Protocol Data Unit - the actual payload including transport protocol control information (TPCI), application protocol control information (APCI) and data passed as an argument from higher layers of the KNX communication stack


[View source]

Instance Method Detail

def __format__ : IO::ByteFormat #

[View source]
def _reserved_ : UInt8 #

Bit | ------+--------------------------------------------------------------- 7 | Frame Type - 0x0 for extended frame | 0x1 for standard frame ------+--------------------------------------------------------------- 6 | Reserved | ------+--------------------------------------------------------------- 5 | Repeat Flag - 0x0 repeat frame on medium in case of an error | 0x1 do not repeat ------+--------------------------------------------------------------- 4 | System Broadcast - 0x0 system broadcast | 0x1 broadcast ------+--------------------------------------------------------------- 3 | Priority - 0x0 system | 0x1 normal (also called alarm priority) ------+ 0x2 urgent (also called high priority) 2 | 0x3 low | ------+--------------------------------------------------------------- 1 | Acknowledge Request - 0x0 no ACK requested | (L_Data.req) 0x1 ACK requested ------+--------------------------------------------------------------- 0 | Confirm - 0x0 no error | (L_Data.con) - 0x1 error ------+---------------------------------------------------------------


def _reserved_=(_reserved_ : UInt8) #

Bit | ------+--------------------------------------------------------------- 7 | Frame Type - 0x0 for extended frame | 0x1 for standard frame ------+--------------------------------------------------------------- 6 | Reserved | ------+--------------------------------------------------------------- 5 | Repeat Flag - 0x0 repeat frame on medium in case of an error | 0x1 do not repeat ------+--------------------------------------------------------------- 4 | System Broadcast - 0x0 system broadcast | 0x1 broadcast ------+--------------------------------------------------------------- 3 | Priority - 0x0 system | 0x1 normal (also called alarm priority) ------+ 0x2 urgent (also called high priority) 2 | 0x3 low | ------+--------------------------------------------------------------- 1 | Acknowledge Request - 0x0 no ACK requested | (L_Data.req) 0x1 ACK requested ------+--------------------------------------------------------------- 0 | Confirm - 0x0 no error | (L_Data.con) - 0x1 error ------+---------------------------------------------------------------


def ack_requested : Bool #

Bit | ------+--------------------------------------------------------------- 7 | Frame Type - 0x0 for extended frame | 0x1 for standard frame ------+--------------------------------------------------------------- 6 | Reserved | ------+--------------------------------------------------------------- 5 | Repeat Flag - 0x0 repeat frame on medium in case of an error | 0x1 do not repeat ------+--------------------------------------------------------------- 4 | System Broadcast - 0x0 system broadcast | 0x1 broadcast ------+--------------------------------------------------------------- 3 | Priority - 0x0 system | 0x1 normal (also called alarm priority) ------+ 0x2 urgent (also called high priority) 2 | 0x3 low | ------+--------------------------------------------------------------- 1 | Acknowledge Request - 0x0 no ACK requested | (L_Data.req) 0x1 ACK requested ------+--------------------------------------------------------------- 0 | Confirm - 0x0 no error | (L_Data.con) - 0x1 error ------+---------------------------------------------------------------


[View source]
def ack_requested=(ack_requested : UInt8) #

Bit | ------+--------------------------------------------------------------- 7 | Frame Type - 0x0 for extended frame | 0x1 for standard frame ------+--------------------------------------------------------------- 6 | Reserved | ------+--------------------------------------------------------------- 5 | Repeat Flag - 0x0 repeat frame on medium in case of an error | 0x1 do not repeat ------+--------------------------------------------------------------- 4 | System Broadcast - 0x0 system broadcast | 0x1 broadcast ------+--------------------------------------------------------------- 3 | Priority - 0x0 system | 0x1 normal (also called alarm priority) ------+ 0x2 urgent (also called high priority) 2 | 0x3 low | ------+--------------------------------------------------------------- 1 | Acknowledge Request - 0x0 no ACK requested | (L_Data.req) 0x1 ACK requested ------+--------------------------------------------------------------- 0 | Confirm - 0x0 no error | (L_Data.con) - 0x1 error ------+---------------------------------------------------------------


def ack_requested=(value : Bool) #

Bit | ------+--------------------------------------------------------------- 7 | Frame Type - 0x0 for extended frame | 0x1 for standard frame ------+--------------------------------------------------------------- 6 | Reserved | ------+--------------------------------------------------------------- 5 | Repeat Flag - 0x0 repeat frame on medium in case of an error | 0x1 do not repeat ------+--------------------------------------------------------------- 4 | System Broadcast - 0x0 system broadcast | 0x1 broadcast ------+--------------------------------------------------------------- 3 | Priority - 0x0 system | 0x1 normal (also called alarm priority) ------+ 0x2 urgent (also called high priority) 2 | 0x3 low | ------+--------------------------------------------------------------- 1 | Acknowledge Request - 0x0 no ACK requested | (L_Data.req) 0x1 ACK requested ------+--------------------------------------------------------------- 0 | Confirm - 0x0 no error | (L_Data.con) - 0x1 error ------+---------------------------------------------------------------


[View source]
def additional_info : Bytes #

def additional_info=(additional_info : Bytes) #

def apci : UInt8 #

Bit 1 Bit 2 Bit 3 Bit 4 Bit 5 Bit 6 Bit 7 Bit 8 Bit 1 Bit 2 +--------+--------+--------+--------+--------+--------+--------+--------++--------+----.... | | | | | | | | || | | APCI | APCI | APCI/ | APCI/ | APCI/ | APCI/ | APCI/ | APCI/ || Data | Data |(bit 3) |(bit 4) | Data | Data | Data | Data | Data | Data || | +--------+--------+--------+--------+--------+--------+--------+--------++--------+----....

  •                        B  Y  T  E    2                            ||       B Y T E  3

+-----------------------------------------------------------------------++-------------....


def apci=(apci : UInt8) #

Bit 1 Bit 2 Bit 3 Bit 4 Bit 5 Bit 6 Bit 7 Bit 8 Bit 1 Bit 2 +--------+--------+--------+--------+--------+--------+--------+--------++--------+----.... | | | | | | | | || | | APCI | APCI | APCI/ | APCI/ | APCI/ | APCI/ | APCI/ | APCI/ || Data | Data |(bit 3) |(bit 4) | Data | Data | Data | Data | Data | Data || | +--------+--------+--------+--------+--------+--------+--------+--------++--------+----....

  •                        B  Y  T  E    2                            ||       B Y T E  3

+-----------------------------------------------------------------------++-------------....


def apply_apci(action : ActionType | Int, data : Bytes | Nil = nil) : Bool #

Applies 2 byte APCI value where required

@param val [Symbol, Integer] the value or symbol representing the APCI value @return [true, false] returns true if data is available for storage


[View source]
def broadcast : Bool #

Bit | ------+--------------------------------------------------------------- 7 | Frame Type - 0x0 for extended frame | 0x1 for standard frame ------+--------------------------------------------------------------- 6 | Reserved | ------+--------------------------------------------------------------- 5 | Repeat Flag - 0x0 repeat frame on medium in case of an error | 0x1 do not repeat ------+--------------------------------------------------------------- 4 | System Broadcast - 0x0 system broadcast | 0x1 broadcast ------+--------------------------------------------------------------- 3 | Priority - 0x0 system | 0x1 normal (also called alarm priority) ------+ 0x2 urgent (also called high priority) 2 | 0x3 low | ------+--------------------------------------------------------------- 1 | Acknowledge Request - 0x0 no ACK requested | (L_Data.req) 0x1 ACK requested ------+--------------------------------------------------------------- 0 | Confirm - 0x0 no error | (L_Data.con) - 0x1 error ------+---------------------------------------------------------------


[View source]
def broadcast=(broadcast : UInt8) #

Bit | ------+--------------------------------------------------------------- 7 | Frame Type - 0x0 for extended frame | 0x1 for standard frame ------+--------------------------------------------------------------- 6 | Reserved | ------+--------------------------------------------------------------- 5 | Repeat Flag - 0x0 repeat frame on medium in case of an error | 0x1 do not repeat ------+--------------------------------------------------------------- 4 | System Broadcast - 0x0 system broadcast | 0x1 broadcast ------+--------------------------------------------------------------- 3 | Priority - 0x0 system | 0x1 normal (also called alarm priority) ------+ 0x2 urgent (also called high priority) 2 | 0x3 low | ------+--------------------------------------------------------------- 1 | Acknowledge Request - 0x0 no ACK requested | (L_Data.req) 0x1 ACK requested ------+--------------------------------------------------------------- 0 | Confirm - 0x0 no error | (L_Data.con) - 0x1 error ------+---------------------------------------------------------------


def broadcast=(value : Bool) #

Bit | ------+--------------------------------------------------------------- 7 | Frame Type - 0x0 for extended frame | 0x1 for standard frame ------+--------------------------------------------------------------- 6 | Reserved | ------+--------------------------------------------------------------- 5 | Repeat Flag - 0x0 repeat frame on medium in case of an error | 0x1 do not repeat ------+--------------------------------------------------------------- 4 | System Broadcast - 0x0 system broadcast | 0x1 broadcast ------+--------------------------------------------------------------- 3 | Priority - 0x0 system | 0x1 normal (also called alarm priority) ------+ 0x2 urgent (also called high priority) 2 | 0x3 low | ------+--------------------------------------------------------------- 1 | Acknowledge Request - 0x0 no ACK requested | (L_Data.req) 0x1 ACK requested ------+--------------------------------------------------------------- 0 | Confirm - 0x0 no error | (L_Data.con) - 0x1 error ------+---------------------------------------------------------------


[View source]
def data : UInt8 #

Bit 1 Bit 2 Bit 3 Bit 4 Bit 5 Bit 6 Bit 7 Bit 8 Bit 1 Bit 2 +--------+--------+--------+--------+--------+--------+--------+--------++--------+----.... | | | | | | | | || | | APCI | APCI | APCI/ | APCI/ | APCI/ | APCI/ | APCI/ | APCI/ || Data | Data |(bit 3) |(bit 4) | Data | Data | Data | Data | Data | Data || | +--------+--------+--------+--------+--------+--------+--------+--------++--------+----....

  •                        B  Y  T  E    2                            ||       B Y T E  3

+-----------------------------------------------------------------------++-------------....


def data=(data : UInt8) #

Bit 1 Bit 2 Bit 3 Bit 4 Bit 5 Bit 6 Bit 7 Bit 8 Bit 1 Bit 2 +--------+--------+--------+--------+--------+--------+--------+--------++--------+----.... | | | | | | | | || | | APCI | APCI | APCI/ | APCI/ | APCI/ | APCI/ | APCI/ | APCI/ || Data | Data |(bit 3) |(bit 4) | Data | Data | Data | Data | Data | Data || | +--------+--------+--------+--------+--------+--------+--------+--------++--------+----....

  •                        B  Y  T  E    2                            ||       B Y T E  3

+-----------------------------------------------------------------------++-------------....


def data_length : UInt8 #

def data_length=(data_length : UInt8) #

def destination_address : Bytes #

def destination_address=(destination_address : Bytes) #

def extended_frame_format : UInt8 #

Bit | ------+--------------------------------------------------------------- 7 | Frame Type - 0x0 for extended frame | 0x1 for standard frame ------+--------------------------------------------------------------- 6 | Reserved | ------+--------------------------------------------------------------- 5 | Repeat Flag - 0x0 repeat frame on medium in case of an error | 0x1 do not repeat ------+--------------------------------------------------------------- 4 | System Broadcast - 0x0 system broadcast | 0x1 broadcast ------+--------------------------------------------------------------- 3 | Priority - 0x0 system | 0x1 normal (also called alarm priority) ------+ 0x2 urgent (also called high priority) 2 | 0x3 low | ------+--------------------------------------------------------------- 1 | Acknowledge Request - 0x0 no ACK requested | (L_Data.req) 0x1 ACK requested ------+--------------------------------------------------------------- 0 | Confirm - 0x0 no error | (L_Data.con) - 0x1 error ------+---------------------------------------------------------------


def extended_frame_format=(extended_frame_format : UInt8) #

Bit | ------+--------------------------------------------------------------- 7 | Frame Type - 0x0 for extended frame | 0x1 for standard frame ------+--------------------------------------------------------------- 6 | Reserved | ------+--------------------------------------------------------------- 5 | Repeat Flag - 0x0 repeat frame on medium in case of an error | 0x1 do not repeat ------+--------------------------------------------------------------- 4 | System Broadcast - 0x0 system broadcast | 0x1 broadcast ------+--------------------------------------------------------------- 3 | Priority - 0x0 system | 0x1 normal (also called alarm priority) ------+ 0x2 urgent (also called high priority) 2 | 0x3 low | ------+--------------------------------------------------------------- 1 | Acknowledge Request - 0x0 no ACK requested | (L_Data.req) 0x1 ACK requested ------+--------------------------------------------------------------- 0 | Confirm - 0x0 no error | (L_Data.con) - 0x1 error ------+---------------------------------------------------------------


def hop_count : UInt8 #

Bit | ------+--------------------------------------------------------------- 7 | Frame Type - 0x0 for extended frame | 0x1 for standard frame ------+--------------------------------------------------------------- 6 | Reserved | ------+--------------------------------------------------------------- 5 | Repeat Flag - 0x0 repeat frame on medium in case of an error | 0x1 do not repeat ------+--------------------------------------------------------------- 4 | System Broadcast - 0x0 system broadcast | 0x1 broadcast ------+--------------------------------------------------------------- 3 | Priority - 0x0 system | 0x1 normal (also called alarm priority) ------+ 0x2 urgent (also called high priority) 2 | 0x3 low | ------+--------------------------------------------------------------- 1 | Acknowledge Request - 0x0 no ACK requested | (L_Data.req) 0x1 ACK requested ------+--------------------------------------------------------------- 0 | Confirm - 0x0 no error | (L_Data.con) - 0x1 error ------+---------------------------------------------------------------


def hop_count=(hop_count : UInt8) #

Bit | ------+--------------------------------------------------------------- 7 | Frame Type - 0x0 for extended frame | 0x1 for standard frame ------+--------------------------------------------------------------- 6 | Reserved | ------+--------------------------------------------------------------- 5 | Repeat Flag - 0x0 repeat frame on medium in case of an error | 0x1 do not repeat ------+--------------------------------------------------------------- 4 | System Broadcast - 0x0 system broadcast | 0x1 broadcast ------+--------------------------------------------------------------- 3 | Priority - 0x0 system | 0x1 normal (also called alarm priority) ------+ 0x2 urgent (also called high priority) 2 | 0x3 low | ------+--------------------------------------------------------------- 1 | Acknowledge Request - 0x0 no ACK requested | (L_Data.req) 0x1 ACK requested ------+--------------------------------------------------------------- 0 | Confirm - 0x0 no error | (L_Data.con) - 0x1 error ------+---------------------------------------------------------------


def info_length : UInt8 #

def info_length=(info_length : UInt8) #

def is_error : Bool #

Bit | ------+--------------------------------------------------------------- 7 | Frame Type - 0x0 for extended frame | 0x1 for standard frame ------+--------------------------------------------------------------- 6 | Reserved | ------+--------------------------------------------------------------- 5 | Repeat Flag - 0x0 repeat frame on medium in case of an error | 0x1 do not repeat ------+--------------------------------------------------------------- 4 | System Broadcast - 0x0 system broadcast | 0x1 broadcast ------+--------------------------------------------------------------- 3 | Priority - 0x0 system | 0x1 normal (also called alarm priority) ------+ 0x2 urgent (also called high priority) 2 | 0x3 low | ------+--------------------------------------------------------------- 1 | Acknowledge Request - 0x0 no ACK requested | (L_Data.req) 0x1 ACK requested ------+--------------------------------------------------------------- 0 | Confirm - 0x0 no error | (L_Data.con) - 0x1 error ------+---------------------------------------------------------------


[View source]
def is_error=(is_error : UInt8) #

Bit | ------+--------------------------------------------------------------- 7 | Frame Type - 0x0 for extended frame | 0x1 for standard frame ------+--------------------------------------------------------------- 6 | Reserved | ------+--------------------------------------------------------------- 5 | Repeat Flag - 0x0 repeat frame on medium in case of an error | 0x1 do not repeat ------+--------------------------------------------------------------- 4 | System Broadcast - 0x0 system broadcast | 0x1 broadcast ------+--------------------------------------------------------------- 3 | Priority - 0x0 system | 0x1 normal (also called alarm priority) ------+ 0x2 urgent (also called high priority) 2 | 0x3 low | ------+--------------------------------------------------------------- 1 | Acknowledge Request - 0x0 no ACK requested | (L_Data.req) 0x1 ACK requested ------+--------------------------------------------------------------- 0 | Confirm - 0x0 no error | (L_Data.con) - 0x1 error ------+---------------------------------------------------------------


def is_error=(value : Bool) #

Bit | ------+--------------------------------------------------------------- 7 | Frame Type - 0x0 for extended frame | 0x1 for standard frame ------+--------------------------------------------------------------- 6 | Reserved | ------+--------------------------------------------------------------- 5 | Repeat Flag - 0x0 repeat frame on medium in case of an error | 0x1 do not repeat ------+--------------------------------------------------------------- 4 | System Broadcast - 0x0 system broadcast | 0x1 broadcast ------+--------------------------------------------------------------- 3 | Priority - 0x0 system | 0x1 normal (also called alarm priority) ------+ 0x2 urgent (also called high priority) 2 | 0x3 low | ------+--------------------------------------------------------------- 1 | Acknowledge Request - 0x0 no ACK requested | (L_Data.req) 0x1 ACK requested ------+--------------------------------------------------------------- 0 | Confirm - 0x0 no error | (L_Data.con) - 0x1 error ------+---------------------------------------------------------------


[View source]
def is_group_address : Bool #

Bit | ------+--------------------------------------------------------------- 7 | Destination Address Type - 0x0 individual address | - 0x1 group address ------+--------------------------------------------------------------- 6-4 | Hop Count (0-7) ------+--------------------------------------------------------------- 3-0 | Extended Frame Format - 0x0 standard frame ------+---------------------------------------------------------------


[View source]
def is_group_address=(is_group_address : UInt8) #

Bit | ------+--------------------------------------------------------------- 7 | Destination Address Type - 0x0 individual address | - 0x1 group address ------+--------------------------------------------------------------- 6-4 | Hop Count (0-7) ------+--------------------------------------------------------------- 3-0 | Extended Frame Format - 0x0 standard frame ------+---------------------------------------------------------------


def is_group_address=(value : Bool) #

Bit | ------+--------------------------------------------------------------- 7 | Destination Address Type - 0x0 individual address | - 0x1 group address ------+--------------------------------------------------------------- 6-4 | Hop Count (0-7) ------+--------------------------------------------------------------- 3-0 | Extended Frame Format - 0x0 standard frame ------+---------------------------------------------------------------


[View source]
def is_standard_frame : Bool #

Bit | ------+--------------------------------------------------------------- 7 | Frame Type - 0x0 for extended frame | 0x1 for standard frame ------+--------------------------------------------------------------- 6 | Reserved | ------+--------------------------------------------------------------- 5 | Repeat Flag - 0x0 repeat frame on medium in case of an error | 0x1 do not repeat ------+--------------------------------------------------------------- 4 | System Broadcast - 0x0 system broadcast | 0x1 broadcast ------+--------------------------------------------------------------- 3 | Priority - 0x0 system | 0x1 normal (also called alarm priority) ------+ 0x2 urgent (also called high priority) 2 | 0x3 low | ------+--------------------------------------------------------------- 1 | Acknowledge Request - 0x0 no ACK requested | (L_Data.req) 0x1 ACK requested ------+--------------------------------------------------------------- 0 | Confirm - 0x0 no error | (L_Data.con) - 0x1 error ------+---------------------------------------------------------------


[View source]
def is_standard_frame=(is_standard_frame : UInt8) #

Bit | ------+--------------------------------------------------------------- 7 | Frame Type - 0x0 for extended frame | 0x1 for standard frame ------+--------------------------------------------------------------- 6 | Reserved | ------+--------------------------------------------------------------- 5 | Repeat Flag - 0x0 repeat frame on medium in case of an error | 0x1 do not repeat ------+--------------------------------------------------------------- 4 | System Broadcast - 0x0 system broadcast | 0x1 broadcast ------+--------------------------------------------------------------- 3 | Priority - 0x0 system | 0x1 normal (also called alarm priority) ------+ 0x2 urgent (also called high priority) 2 | 0x3 low | ------+--------------------------------------------------------------- 1 | Acknowledge Request - 0x0 no ACK requested | (L_Data.req) 0x1 ACK requested ------+--------------------------------------------------------------- 0 | Confirm - 0x0 no error | (L_Data.con) - 0x1 error ------+---------------------------------------------------------------


def is_standard_frame=(value : Bool) #

Bit | ------+--------------------------------------------------------------- 7 | Frame Type - 0x0 for extended frame | 0x1 for standard frame ------+--------------------------------------------------------------- 6 | Reserved | ------+--------------------------------------------------------------- 5 | Repeat Flag - 0x0 repeat frame on medium in case of an error | 0x1 do not repeat ------+--------------------------------------------------------------- 4 | System Broadcast - 0x0 system broadcast | 0x1 broadcast ------+--------------------------------------------------------------- 3 | Priority - 0x0 system | 0x1 normal (also called alarm priority) ------+ 0x2 urgent (also called high priority) 2 | 0x3 low | ------+--------------------------------------------------------------- 1 | Acknowledge Request - 0x0 no ACK requested | (L_Data.req) 0x1 ACK requested ------+--------------------------------------------------------------- 0 | Confirm - 0x0 no error | (L_Data.con) - 0x1 error ------+---------------------------------------------------------------


[View source]
def msg_code : MsgCode #

def msg_code=(msg_code : MsgCode) #

def no_repeat : Bool #

Bit | ------+--------------------------------------------------------------- 7 | Frame Type - 0x0 for extended frame | 0x1 for standard frame ------+--------------------------------------------------------------- 6 | Reserved | ------+--------------------------------------------------------------- 5 | Repeat Flag - 0x0 repeat frame on medium in case of an error | 0x1 do not repeat ------+--------------------------------------------------------------- 4 | System Broadcast - 0x0 system broadcast | 0x1 broadcast ------+--------------------------------------------------------------- 3 | Priority - 0x0 system | 0x1 normal (also called alarm priority) ------+ 0x2 urgent (also called high priority) 2 | 0x3 low | ------+--------------------------------------------------------------- 1 | Acknowledge Request - 0x0 no ACK requested | (L_Data.req) 0x1 ACK requested ------+--------------------------------------------------------------- 0 | Confirm - 0x0 no error | (L_Data.con) - 0x1 error ------+---------------------------------------------------------------


[View source]
def no_repeat=(no_repeat : UInt8) #

Bit | ------+--------------------------------------------------------------- 7 | Frame Type - 0x0 for extended frame | 0x1 for standard frame ------+--------------------------------------------------------------- 6 | Reserved | ------+--------------------------------------------------------------- 5 | Repeat Flag - 0x0 repeat frame on medium in case of an error | 0x1 do not repeat ------+--------------------------------------------------------------- 4 | System Broadcast - 0x0 system broadcast | 0x1 broadcast ------+--------------------------------------------------------------- 3 | Priority - 0x0 system | 0x1 normal (also called alarm priority) ------+ 0x2 urgent (also called high priority) 2 | 0x3 low | ------+--------------------------------------------------------------- 1 | Acknowledge Request - 0x0 no ACK requested | (L_Data.req) 0x1 ACK requested ------+--------------------------------------------------------------- 0 | Confirm - 0x0 no error | (L_Data.con) - 0x1 error ------+---------------------------------------------------------------


def no_repeat=(value : Bool) #

Bit | ------+--------------------------------------------------------------- 7 | Frame Type - 0x0 for extended frame | 0x1 for standard frame ------+--------------------------------------------------------------- 6 | Reserved | ------+--------------------------------------------------------------- 5 | Repeat Flag - 0x0 repeat frame on medium in case of an error | 0x1 do not repeat ------+--------------------------------------------------------------- 4 | System Broadcast - 0x0 system broadcast | 0x1 broadcast ------+--------------------------------------------------------------- 3 | Priority - 0x0 system | 0x1 normal (also called alarm priority) ------+ 0x2 urgent (also called high priority) 2 | 0x3 low | ------+--------------------------------------------------------------- 1 | Acknowledge Request - 0x0 no ACK requested | (L_Data.req) 0x1 ACK requested ------+--------------------------------------------------------------- 0 | Confirm - 0x0 no error | (L_Data.con) - 0x1 error ------+---------------------------------------------------------------


[View source]
def priority : Priority #

Bit | ------+--------------------------------------------------------------- 7 | Frame Type - 0x0 for extended frame | 0x1 for standard frame ------+--------------------------------------------------------------- 6 | Reserved | ------+--------------------------------------------------------------- 5 | Repeat Flag - 0x0 repeat frame on medium in case of an error | 0x1 do not repeat ------+--------------------------------------------------------------- 4 | System Broadcast - 0x0 system broadcast | 0x1 broadcast ------+--------------------------------------------------------------- 3 | Priority - 0x0 system | 0x1 normal (also called alarm priority) ------+ 0x2 urgent (also called high priority) 2 | 0x3 low | ------+--------------------------------------------------------------- 1 | Acknowledge Request - 0x0 no ACK requested | (L_Data.req) 0x1 ACK requested ------+--------------------------------------------------------------- 0 | Confirm - 0x0 no error | (L_Data.con) - 0x1 error ------+---------------------------------------------------------------


[View source]
def priority=(priority : UInt8) #

Bit | ------+--------------------------------------------------------------- 7 | Frame Type - 0x0 for extended frame | 0x1 for standard frame ------+--------------------------------------------------------------- 6 | Reserved | ------+--------------------------------------------------------------- 5 | Repeat Flag - 0x0 repeat frame on medium in case of an error | 0x1 do not repeat ------+--------------------------------------------------------------- 4 | System Broadcast - 0x0 system broadcast | 0x1 broadcast ------+--------------------------------------------------------------- 3 | Priority - 0x0 system | 0x1 normal (also called alarm priority) ------+ 0x2 urgent (also called high priority) 2 | 0x3 low | ------+--------------------------------------------------------------- 1 | Acknowledge Request - 0x0 no ACK requested | (L_Data.req) 0x1 ACK requested ------+--------------------------------------------------------------- 0 | Confirm - 0x0 no error | (L_Data.con) - 0x1 error ------+---------------------------------------------------------------


def priority=(value : Priority) #

Bit | ------+--------------------------------------------------------------- 7 | Frame Type - 0x0 for extended frame | 0x1 for standard frame ------+--------------------------------------------------------------- 6 | Reserved | ------+--------------------------------------------------------------- 5 | Repeat Flag - 0x0 repeat frame on medium in case of an error | 0x1 do not repeat ------+--------------------------------------------------------------- 4 | System Broadcast - 0x0 system broadcast | 0x1 broadcast ------+--------------------------------------------------------------- 3 | Priority - 0x0 system | 0x1 normal (also called alarm priority) ------+ 0x2 urgent (also called high priority) 2 | 0x3 low | ------+--------------------------------------------------------------- 1 | Acknowledge Request - 0x0 no ACK requested | (L_Data.req) 0x1 ACK requested ------+--------------------------------------------------------------- 0 | Confirm - 0x0 no error | (L_Data.con) - 0x1 error ------+---------------------------------------------------------------


[View source]
def source_address : Bytes #

When sending, setting the source address to 0 allows the router to configure


def source_address=(source_address : Bytes) #

When sending, setting the source address to 0 allows the router to configure


def tpci : TpciType #

transport protocol control information


[View source]
def tpci=(tpci : UInt8) #

transport protocol control information


def tpci=(value : TpciType) #

transport protocol control information


[View source]
def tpci_seq_num : UInt8 #

Bit 1 Bit 2 Bit 3 Bit 4 Bit 5 Bit 6 Bit 7 Bit 8 Bit 1 Bit 2 +--------+--------+--------+--------+--------+--------+--------+--------++--------+----.... | | | | | | | | || | | APCI | APCI | APCI/ | APCI/ | APCI/ | APCI/ | APCI/ | APCI/ || Data | Data |(bit 3) |(bit 4) | Data | Data | Data | Data | Data | Data || | +--------+--------+--------+--------+--------+--------+--------+--------++--------+----....

  •                        B  Y  T  E    2                            ||       B Y T E  3

+-----------------------------------------------------------------------++-------------....


def tpci_seq_num=(tpci_seq_num : UInt8) #

Bit 1 Bit 2 Bit 3 Bit 4 Bit 5 Bit 6 Bit 7 Bit 8 Bit 1 Bit 2 +--------+--------+--------+--------+--------+--------+--------+--------++--------+----.... | | | | | | | | || | | APCI | APCI | APCI/ | APCI/ | APCI/ | APCI/ | APCI/ | APCI/ || Data | Data |(bit 3) |(bit 4) | Data | Data | Data | Data | Data | Data || | +--------+--------+--------+--------+--------+--------+--------+--------++--------+----....

  •                        B  Y  T  E    2                            ||       B Y T E  3

+-----------------------------------------------------------------------++-------------....


Macro Detail

macro knx_cemi(name, onlyif = nil, verify = nil, value = nil) #

Add.Info Length = 0x00 - no additional info Control Field 1 = see the bit structure above Control Field 2 = see the bit structure above Source Address = 0x0000 - filled in by router/gateway with its source address which is part of the KNX subnet Dest. Address = KNX group or individual address (2 byte) Data Length = Number of bytes of data in the APDU excluding the TPCI/APCI bits APDU = Application Protocol Data Unit - the actual payload including transport protocol control information (TPCI), application protocol control information (APCI) and data passed as an argument from higher layers of the KNX communication stack


[View source]
macro knx_header(name, onlyif = nil, verify = nil, value = nil) #

Add.Info Length = 0x00 - no additional info Control Field 1 = see the bit structure above Control Field 2 = see the bit structure above Source Address = 0x0000 - filled in by router/gateway with its source address which is part of the KNX subnet Dest. Address = KNX group or individual address (2 byte) Data Length = Number of bytes of data in the APDU excluding the TPCI/APCI bits APDU = Application Protocol Data Unit - the actual payload including transport protocol control information (TPCI), application protocol control information (APCI) and data passed as an argument from higher layers of the KNX communication stack


[View source]
macro knx_header_timer(name, onlyif = nil, verify = nil, value = nil) #

Add.Info Length = 0x00 - no additional info Control Field 1 = see the bit structure above Control Field 2 = see the bit structure above Source Address = 0x0000 - filled in by router/gateway with its source address which is part of the KNX subnet Dest. Address = KNX group or individual address (2 byte) Data Length = Number of bytes of data in the APDU excluding the TPCI/APCI bits APDU = Application Protocol Data Unit - the actual payload including transport protocol control information (TPCI), application protocol control information (APCI) and data passed as an argument from higher layers of the KNX communication stack


[View source]
macro knx_header_wrapper(name, onlyif = nil, verify = nil, value = nil) #

Add.Info Length = 0x00 - no additional info Control Field 1 = see the bit structure above Control Field 2 = see the bit structure above Source Address = 0x0000 - filled in by router/gateway with its source address which is part of the KNX subnet Dest. Address = KNX group or individual address (2 byte) Data Length = Number of bytes of data in the APDU excluding the TPCI/APCI bits APDU = Application Protocol Data Unit - the actual payload including transport protocol control information (TPCI), application protocol control information (APCI) and data passed as an argument from higher layers of the KNX communication stack


[View source]