kdriveExpress SDK 22.1.1
kdrive_express_access.h
Go to the documentation of this file.
1 //
2 // Copyright (c) 2002-2022 WEINZIERL ENGINEERING GmbH
3 // All rights reserved.
4 //
5 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
6 // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
7 // FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT
8 // SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY DAMAGES OR OTHER LIABILITY,
9 // WHETHER IN CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
10 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE
11 //
12 
13 #ifndef __KDRIVE_EXPRESS_ACCESS_H__
14 #define __KDRIVE_EXPRESS_ACCESS_H__
15 
16 #include "kdrive_express_config.h"
17 #include "kdrive_express_defs.h"
18 
26 #define KDRIVE_MAX_TUNNEL_INFO_ITEMS (63)
28 #ifdef __cplusplus
29 extern "C" {
30 #endif
31 
32 /*******************************
33 ** Init
34 ********************************/
35 
47 
58 
59 /*******************************
60 ** Keyring
61 ********************************/
62 
70 
71 /*******************************
72 ** USB
73 ********************************/
74 
82 
88 typedef struct usb_dev_t
89 {
96 } usb_dev_t;
97 
115 
134 
150 
151 /*******************************
152 ** KNXnet/IP Tunneling
153 ********************************/
154 
160 typedef struct ip_tunn_slot_info_t
161 {
162  uint16_t address;
163  uint16_t status;
167 
168 
174 typedef struct ip_tunn_dev_t
175 {
176  // ip address and network interface
180  // device information
187  // security information
192  // tunnling slot information
193  // optional (When the device not support it then slot_infos_count is 0)
197 } ip_tunn_dev_t;
198 
211  ip_tunn_dev_t items[],
212  uint32_t* items_length);
213 
214 
226  const char* ip_address,
227  uint16_t port,
228  const char* iface_address,
229  ip_tunn_dev_t* device_info);
230 
265 kdriveExpress_API error_t kdrive_ap_open_ip_tunn(int32_t ap, const char* ip_address, uint16_t port, const char* iface_address);
266 
278 kdriveExpress_API error_t kdrive_ap_open_ip_tunn_nat(int32_t ap, const char* ip_address, uint16_t port, const char* iface_address);
279 
296 kdriveExpress_API error_t kdrive_ap_open_ip(int32_t ap, const char* ip_address);
297 
315 kdriveExpress_API error_t kdrive_ap_open_ip_ex(int32_t ap, const char* ip_address, const char* iface_address);
316 
333 kdriveExpress_API error_t kdrive_ap_open_ip_nat(int32_t ap, const char* ip_address, const char* iface_address);
334 
342 
352 kdriveExpress_API error_t kdrive_ap_set_ip_tunn_auth_code(int32_t ap, const char* authentication_code);
353 
365 
376 
385 
396 
397 /*******************************
398 ** KNXnet/IP Routing
399 ********************************/
400 
406 typedef struct ip_rout_info_t
407 {
413 
427  ip_rout_info_t items[],
428  uint32_t* items_length);
429 
448 kdriveExpress_API error_t kdrive_ap_open_ip_rout(int32_t ap, const char* multicast_address, const char* iface_address, bool_t secured);
449 
458 
467 
468 /*******************************
469 ** Serial FT1.2
470 ********************************/
471 
484 kdriveExpress_API error_t kdrive_ap_open_serial_ft12(int32_t ap, const char* serial_device);
485 
486 /*******************************
487 ** TinySerial
488 ********************************/
489 
501 kdriveExpress_API error_t kdrive_ap_open_tiny_serial(int32_t ap, const char* serial_device);
502 
503 /*******************************
504 ** Connection Management
505 ********************************/
506 
514 
522 
523 /*******************************
524 ** Send KNX Telegrams
525 ********************************/
526 
534 kdriveExpress_API error_t kdrive_ap_send(int32_t ap, const uint8_t telegram[], uint32_t telegram_len);
535 
547 
556 
567 
587  uint8_t telegram[], uint32_t telegram_len, uint32_t timeout);
588 
589 /*******************************
590 ** Receive KNX Telegrams
591 ********************************/
592 
600 
616  uint8_t telegram[], uint32_t telegram_len, uint32_t timeout);
617 
618 /*******************************
619 ** KNX Telegram Callback
620 ********************************/
621 
630 typedef void (*kdrive_ap_telegram_callback)(const uint8_t telegram[], uint32_t telegram_len, void* user_data);
631 
650  kdrive_ap_telegram_callback c, void* user_data, uint32_t* key);
651 
670  kdrive_ap_telegram_callback c, void* user_data, uint32_t* key);
671 
679 
680 /*******************************
681 ** Telegram Attributes
682 ********************************/
683 
692  uint32_t telegram_len, uint16_t* address);
693 
702  uint32_t telegram_len, uint16_t* address);
703 
712  uint32_t telegram_len, uint16_t* apci);
713 
725  uint32_t telegram_len, uint8_t* message_code);
726 
737  uint32_t telegram_len, uint8_t sn[KDRIVE_SN_LEN]);
738 
739 /*******************************
740 ** Group Values
741 ********************************/
742 
751 kdriveExpress_API bool_t kdrive_ap_is_group(const uint8_t telegram[], uint32_t telegram_len);
752 
760 kdriveExpress_API bool_t kdrive_ap_is_group_write(const uint8_t telegram[], uint32_t telegram_len);
761 
769 kdriveExpress_API bool_t kdrive_ap_is_group_read(const uint8_t telegram[], uint32_t telegram_len);
770 
779 
794  uint32_t telegram_len, uint8_t* data, uint32_t* data_len);
795 
806  uint32_t telegram_len, bool_t* is_commpressed);
807 
808 /*******************************
809 ** Data Security
810 ********************************/
811 
813 {
814  Off = 0x00,
815  On = 0x01,
816  Auto = 0x03
817 };
818 
830 
842 
850 
859 
866 kdriveExpress_API bool_t kdrive_ap_is_data_sec(const uint8_t telegram[], uint32_t telegram_len);
867 
868 /*******************************
869 ** Access Port Properties
870 ********************************/
871 
881 
891 
899 
907 
915 
923 
931 
940 
953 
963 
973 
983 
994 
1007 
1018 
1030 
1043 
1051 
1052 /*******************************
1053 ** Packet Trace
1054 ********************************/
1055 
1066 
1073 
1083 typedef void(*kdrive_ap_packet_trace_callback)(const uint8_t telegram[], uint32_t telegram_len, int32_t direction, void* user_data);
1084 
1100 
1101 #ifdef __cplusplus
1102 }
1103 #endif
1104 
1105 #endif /* __KDRIVE_EXPRESS_ACCESS_H__ */
ip_tunn_slot_info_t::address
uint16_t address
the individual address of the tunnel
Definition: kdrive_express_access.h:164
ip_tunn_dev_t::slot_infos
ip_tunn_slot_info_t slot_infos[KDRIVE_MAX_TUNNEL_INFO_ITEMS]
tunnling slot information items
Definition: kdrive_express_access.h:195
kdrive_ap_open_ip_tunn
kdriveExpress_API error_t kdrive_ap_open_ip_tunn(int32_t ap, const char *ip_address, uint16_t port, const char *iface_address)
Opens a connection to a KNX IP Tunneling Interface device on a specific network interface or default ...
kdrive_ap_remove_telegram_callback
kdriveExpress_API error_t kdrive_ap_remove_telegram_callback(int32_t ap, uint32_t key)
Removes (de-registers) a telegram callback.
kdrive_ap_set_data_sec
kdriveExpress_API error_t kdrive_ap_set_data_sec(int32_t ap, enum data_sec_t dataSec)
Set the Data Security of the access point.
kdrive_ap_register_telegram_callback
kdriveExpress_API error_t kdrive_ap_register_telegram_callback(int32_t ap, kdrive_ap_telegram_callback c, void *user_data, uint32_t *key)
Registers a callback function.
kdrive_ap_packet_trace_connect
kdriveExpress_API error_t kdrive_ap_packet_trace_connect(int32_t ap)
Starts the Packet Trace, for a specific access port.
usb_dev_t::usb_product_id
uint32_t usb_product_id
usb device product id
Definition: kdrive_express_access.h:94
ip_rout_info_t::number_of_devices
uint32_t number_of_devices
Number of found KNXnet/IP Routing devices with the same multicast address and network interface.
Definition: kdrive_express_access.h:412
usb_dev_t::media_tytes
uint16_t media_tytes
knx media types (bit field, encoding is DPT_Media)
Definition: kdrive_express_access.h:91
ip_tunn_dev_t::iface_address
char iface_address[KDRIVE_MAX_IP_ADDRESS_LEN]
interface adaptor IP address.
Definition: kdrive_express_access.h:178
kdrive_ap_is_ip_tunn_secure
kdriveExpress_API error_t kdrive_ap_is_ip_tunn_secure(int32_t ap, bool_t *secured)
Only has works for knxnet ip tunneling ports, returns if security is enabled or not.
uint16_t
unsigned short uint16_t
16 bit unsigned char
Definition: kdrive_express_config.h:30
kdrive_ap_get_message_code
kdriveExpress_API error_t kdrive_ap_get_message_code(const uint8_t telegram[], uint32_t telegram_len, uint8_t *message_code)
Extracts the Message Code from the Telegram.
kdrive_ap_open_serial_ft12
kdriveExpress_API error_t kdrive_ap_open_serial_ft12(int32_t ap, const char *serial_device)
Opens a connection to a KNX FT1.2 serial interface.
uint32_t
unsigned int uint32_t
32 bit unsigned char
Definition: kdrive_express_config.h:31
ip_tunn_slot_info_t::status
uint16_t status
2 bytes of status bits, currently only the last 3 are used, they are Usable(third bit),...
Definition: kdrive_express_access.h:165
kdrive_ap_is_open
kdriveExpress_API bool_t kdrive_ap_is_open(int32_t ap)
Returns whether the access port is open.
kdrive_ap_get_filter_rf_domain_addr
kdriveExpress_API error_t kdrive_ap_get_filter_rf_domain_addr(int32_t ap, bool_t *is_enabled)
Gets the rf domain adrress filter setting.
kdrive_ap_enum_usb
kdriveExpress_API uint32_t kdrive_ap_enum_usb(int32_t ap)
Scan for all KNX USB Interface devices.
Auto
@ Auto
numbered in the order that the hid driver enumerates the devices
Definition: kdrive_express_access.h:818
kdrive_ap_group_response
kdriveExpress_API error_t kdrive_ap_group_response(int32_t ap, uint16_t address, const uint8_t *value, uint32_t bits)
Sends a GroupValue_Response Telegram.
kdrive_ap_get_apci
kdriveExpress_API error_t kdrive_ap_get_apci(const uint8_t telegram[], uint32_t telegram_len, uint16_t *apci)
Extracts the APCI from the Telegram.
kdrive_ap_set_data_sec_own_seq_num
kdriveExpress_API error_t kdrive_ap_set_data_sec_own_seq_num(int32_t ap, const uint8_t seq_num[6])
Set the own sending sequence number.
kdrive_ap_open_tiny_serial
kdriveExpress_API error_t kdrive_ap_open_tiny_serial(int32_t ap, const char *serial_device)
Opens a connection to the KNX Tiny Serial Interface 810.
ip_rout_info_t::multicast_address
char multicast_address[KDRIVE_MAX_IP_ADDRESS_LEN]
Multicast IP address in the form "224.0.23.12" for example.
Definition: kdrive_express_access.h:410
kdrive_ap_receive
kdriveExpress_API uint32_t kdrive_ap_receive(int32_t ap, uint8_t telegram[], uint32_t telegram_len, uint32_t timeout)
Waits for an inbound KNX telegram and (if received) copies the data into the telegram buffer.
kdrive_ap_create
kdriveExpress_API int32_t kdrive_ap_create(void)
Creates an internal AccessPort interface This should be the first function called when working with t...
kdrive_ap_get_layer
kdriveExpress_API error_t kdrive_ap_get_layer(int32_t ap, uint16_t *layer)
Gets the Layer of the Local Device (KNX Interface Device) The default value is Link Layer.
kdrive_ap_enum_ip_tunn
kdriveExpress_API error_t kdrive_ap_enum_ip_tunn(int32_t ap, ip_tunn_dev_t items[], uint32_t *items_length)
Scans for all KNX IP Tunneling Interface devices The items array must exist (should be pre-allocated ...
kdrive_ap_open_ip_ex
kdriveExpress_API error_t kdrive_ap_open_ip_ex(int32_t ap, const char *ip_address, const char *iface_address)
int32_t
int int32_t
32 bit signed int
Definition: kdrive_express_config.h:34
KDRIVE_MAX_TUNNEL_INFO_ITEMS
#define KDRIVE_MAX_TUNNEL_INFO_ITEMS
Maximum of tunneling info elements in ip_tunn_slot_info_t.
Definition: kdrive_express_access.h:26
kdrive_ap_get_ip_tunn_user_id
kdriveExpress_API error_t kdrive_ap_get_ip_tunn_user_id(int32_t ap, uint8_t *user_id)
Gets the security user id for the KNXnet/IP tunneling connection.
kdrive_ap_open_usb
kdriveExpress_API error_t kdrive_ap_open_usb(int32_t ap, uint32_t iface_index)
Opens a connection to a KNX USB Interface device iface_index should be in the range 0....
kdrive_ap_release
kdriveExpress_API bool_t kdrive_ap_release(int32_t ap)
Releases the AccessPort interface.
ip_rout_info_t
Structure holding ip routing information.
Definition: kdrive_express_access.h:406
kdrive_ap_is_group
kdriveExpress_API bool_t kdrive_ap_is_group(const uint8_t telegram[], uint32_t telegram_len)
Determines if the specified telegram is a GroupValue telegram This is, one of GroupValue_Read,...
kdrive_ap_open_ip
kdriveExpress_API error_t kdrive_ap_open_ip(int32_t ap, const char *ip_address)
usb_dev_t::usb_vendor_id
uint32_t usb_vendor_id
usb device vendor id
Definition: kdrive_express_access.h:93
Off
@ Off
KNX individual address.
Definition: kdrive_express_access.h:816
kdrive_ap_group_write
kdriveExpress_API error_t kdrive_ap_group_write(int32_t ap, uint16_t address, const uint8_t *value, uint32_t bits)
Sends a GroupValue_Write Telegram The length is specified in bits to enable values less than one byte...
kdrive_ap_get_additional_ind_addr
kdriveExpress_API error_t kdrive_ap_get_additional_ind_addr(int32_t ap, uint16_t addresses[], uint32_t *addresses_len)
Gets the Additional Individual Addresses of the Local Device (KNX Interface Device)
ip_tunn_dev_t::ip_address
char ip_address[KDRIVE_MAX_IP_ADDRESS_LEN]
IP address in the form "192.168.1.47" for example.
Definition: kdrive_express_access.h:177
kdrive_ap_get_group_data
kdriveExpress_API error_t kdrive_ap_get_group_data(const uint8_t telegram[], uint32_t telegram_len, uint8_t *data, uint32_t *data_len)
Extracts the Group Value data from the KNX telegram.
kdrive_ap_get_tunnel_ind_addr
kdriveExpress_API error_t kdrive_ap_get_tunnel_ind_addr(int32_t ap, uint16_t *address)
Gets the used Individual Address of the tunnel connection (KNX Interface Device).
kdrive_ap_set_ip_rout_backbone_key
kdriveExpress_API error_t kdrive_ap_set_ip_rout_backbone_key(int32_t ap, const char *key)
Sets the backbone key for the KNXnet/IP routing connection.
ip_tunn_dev_t::is_tunneling_secure
bool_t is_tunneling_secure
is tunneling service secure 0 = false, 1 = true
Definition: kdrive_express_access.h:189
kdrive_ap_send
kdriveExpress_API error_t kdrive_ap_send(int32_t ap, const uint8_t telegram[], uint32_t telegram_len)
Sends a KNX Telegram on the Access Port.
kdrive_ap_set_filter_dest_addr
kdriveExpress_API error_t kdrive_ap_set_filter_dest_addr(int32_t ap, bool_t enable)
Enable or disable filter destination individual address for L-Data.ind telegrams.
kdrive_ap_open_ip_rout
kdriveExpress_API error_t kdrive_ap_open_ip_rout(int32_t ap, const char *multicast_address, const char *iface_address, bool_t secured)
Creates an KNXnet/IP Routing access port.
KDRIVE_MAX_IP_ADDRESS_LEN
#define KDRIVE_MAX_IP_ADDRESS_LEN
The max length of a formated ip address string e.g.
Definition: kdrive_express_defs.h:41
kdrive_ap_get_serial_no
kdriveExpress_API error_t kdrive_ap_get_serial_no(int32_t ap, uint8_t sn[KDRIVE_SN_LEN])
Gets the Serial Number of the Local Device (KNX Interface Device)
kdrive_ap_telegram_callback
void(* kdrive_ap_telegram_callback)(const uint8_t telegram[], uint32_t telegram_len, void *user_data)
Callback function type (pointer to function definition)
Definition: kdrive_express_access.h:630
ip_tunn_dev_t::prog_mode_enabled
bool_t prog_mode_enabled
state of the programming mode 0 = off, 1 = on
Definition: kdrive_express_access.h:185
kdrive_ap_get_src
kdriveExpress_API error_t kdrive_ap_get_src(const uint8_t telegram[], uint32_t telegram_len, uint16_t *address)
Extracts the Source Address from the Telegram.
kdrive_ap_get_filter_dest_addr
kdriveExpress_API error_t kdrive_ap_get_filter_dest_addr(int32_t ap, bool_t *is_enabled)
Gets the destination individual address filter setting.
kdrive_ap_get_ind_addr
kdriveExpress_API error_t kdrive_ap_get_ind_addr(int32_t ap, uint16_t *address)
Gets the Individual Address of the Local Device (KNX Interface Device)
kdrive_ap_read_ip_tunn_device_info
kdriveExpress_API error_t kdrive_ap_read_ip_tunn_device_info(int32_t ap, const char *ip_address, uint16_t port, const char *iface_address, ip_tunn_dev_t *device_info)
Gets the information for one specific tunneling device.
kdrive_ap_get_rf_domain_addr
kdriveExpress_API error_t kdrive_ap_get_rf_domain_addr(int32_t ap, uint8_t da[KDRIVE_DA_LEN])
Gets the Domain Address of the Local Device (KNX Interface Device)
ip_tunn_dev_t::serial_number
uint8_t serial_number[KDRIVE_SN_LEN]
serial number
Definition: kdrive_express_access.h:184
On
@ On
knx media types (bit field, encoding is DPT_Media)
Definition: kdrive_express_access.h:817
ip_tunn_slot_info_t
struct ip_tunn_slot_info_t ip_tunn_slot_info_t
Structure holding ip tunnling slot information.
kdrive_ap_get_dest
kdriveExpress_API error_t kdrive_ap_get_dest(const uint8_t telegram[], uint32_t telegram_len, uint16_t *address)
Extracts the Destination Address from the Telegram.
kdrive_ap_set_layer
kdriveExpress_API error_t kdrive_ap_set_layer(int32_t ap, uint16_t layer)
Sets the Layer of the Local Device (KNX Interface Device)
ip_tunn_dev_t::is_security_supported
bool_t is_security_supported
supports the interface security (but it is possible that it is not configured) 0 = false,...
Definition: kdrive_express_access.h:188
kdrive_express_defs.h
kdriveExpress Defines
ip_tunn_slot_info_t
Structure holding ip tunnling slot information.
Definition: kdrive_express_access.h:160
KDRIVE_MAX_DEVICE_NAME_LEN
#define KDRIVE_MAX_DEVICE_NAME_LEN
The max length of a device friendly name (30 char); (inclusive 1 byte for zero + max utf8 char)
Definition: kdrive_express_defs.h:42
kdrive_ap_get_serial_number
kdriveExpress_API error_t kdrive_ap_get_serial_number(const uint8_t telegram[], uint32_t telegram_len, uint8_t sn[KDRIVE_SN_LEN])
Extracts the Serial Number from the Additional Info (if available) This is extracted from the Additio...
error_t
int32_t error_t
Definition: kdrive_express_config.h:46
kdrive_ap_is_group_response
kdriveExpress_API bool_t kdrive_ap_is_group_response(const uint8_t telegram[], uint32_t telegram_len)
Determines if the specified telegram is a GroupValue_Response telegram.
kdrive_ap_set_serial_no
kdriveExpress_API error_t kdrive_ap_set_serial_no(int32_t ap, const uint8_t sn[KDRIVE_SN_LEN])
Sets the Serial Number of the Local Device (KNX Interface Device)
ip_tunn_dev_t::is_management_secure
bool_t is_management_secure
is device management service secure 0 = false, 1 = true
Definition: kdrive_express_access.h:190
bool_t
int32_t bool_t
Definition: kdrive_express_config.h:57
KDRIVE_SN_LEN
#define KDRIVE_SN_LEN
The Length of a KNX Serial Number.
Definition: kdrive_express_defs.h:34
kdrive_ap_open_ip_nat
kdriveExpress_API error_t kdrive_ap_open_ip_nat(int32_t ap, const char *ip_address, const char *iface_address)
ip_tunn_dev_t
Structure holding ip tunneling device information.
Definition: kdrive_express_access.h:174
kdrive_ap_set_tunnel_ind_addr
kdriveExpress_API error_t kdrive_ap_set_tunnel_ind_addr(int32_t ap, uint16_t address)
Sets the used Individual Address of the tunnel connection (KNX Interface Device).
ip_rout_info_t::iface_address
char iface_address[KDRIVE_MAX_IP_ADDRESS_LEN]
interface adaptor IP address.
Definition: kdrive_express_access.h:411
uint8_t
unsigned char uint8_t
8 bit unsigned char
Definition: kdrive_express_config.h:29
ip_tunn_dev_t::mac_address
uint8_t mac_address[KDRIVE_MAC_LEN]
mac address
Definition: kdrive_express_access.h:183
kdrive_ap_only_enum_usb
kdriveExpress_API error_t kdrive_ap_only_enum_usb(usb_dev_t items[], uint32_t *items_length)
Scan for all KNX USB Interface devices.
usb_dev_t
struct usb_dev_t usb_dev_t
Structure holding usb device information.
kdrive_ap_register_sec_telegram_callback
kdriveExpress_API error_t kdrive_ap_register_sec_telegram_callback(int32_t ap, kdrive_ap_telegram_callback c, void *user_data, uint32_t *key)
Registers a callback function.
kdrive_ap_group_read
kdriveExpress_API error_t kdrive_ap_group_read(int32_t ap, uint16_t address)
Sends a GroupValue_Read Telegram on the Access Port This function does not wait for a GroupValue_Resp...
kdrive_ap_set_ip_tunn_credentials
kdriveExpress_API error_t kdrive_ap_set_ip_tunn_credentials(int32_t ap, uint8_t user_id, const char *password)
Sets the user id and the security password for the KNXnet/IP tunneling connection.
kdrive_ap_open_ip_tunn_nat
kdriveExpress_API error_t kdrive_ap_open_ip_tunn_nat(int32_t ap, const char *ip_address, uint16_t port, const char *iface_address)
Opens a connection to a KNX IP Tunneling Interface device on a specific network interface in Network ...
kdriveExpress_API
#define kdriveExpress_API
Definition: kdrive_express_config.h:88
kdrive_ap_set_packet_trace_callback
kdriveExpress_API error_t kdrive_ap_set_packet_trace_callback(int32_t ap, kdrive_ap_packet_trace_callback c, void *user_data)
Sets the packet trace callback function, for a specific access port.
kdrive_ap_enable_queue
kdriveExpress_API error_t kdrive_ap_enable_queue(int32_t ap, bool_t enabled)
Enables/Disables the receive queue for the access port.
kdrive_ap_get_data_sec
kdriveExpress_API error_t kdrive_ap_get_data_sec(int32_t ap, enum data_sec_t *dataSec)
Get the Data Security usage of the access point.
ip_rout_info_t
struct ip_rout_info_t ip_rout_info_t
Structure holding ip routing information.
kdrive_ap_set_additional_ind_addr
kdriveExpress_API error_t kdrive_ap_set_additional_ind_addr(int32_t ap, const uint16_t addresses[], uint16_t addresses_len)
Sets the Additional Individual Addresses of the Local Device (KNX Interface Device)
kdrive_ap_set_data_sec_device_seq_num
kdriveExpress_API error_t kdrive_ap_set_data_sec_device_seq_num(int32_t ap, uint16_t address, const uint8_t seq_num[6])
Set the sequence number of a device.
kdrive_ap_enum_usb_ex
kdriveExpress_API error_t kdrive_ap_enum_usb_ex(usb_dev_t items[], uint32_t *items_length)
Scan for all KNX USB Interface devices.
ip_tunn_dev_t::ind_addr
uint16_t ind_addr
KNX individual address.
Definition: kdrive_express_access.h:182
kdrive_ap_is_compressed_group_data
kdriveExpress_API error_t kdrive_ap_is_compressed_group_data(const uint8_t telegram[], uint32_t telegram_len, bool_t *is_commpressed)
Determines if the group value size is compressed (6 bits or less).
usb_dev_t::ind_addr
uint16_t ind_addr
KNX individual address.
Definition: kdrive_express_access.h:90
kdrive_ap_packet_trace_callback
void(* kdrive_ap_packet_trace_callback)(const uint8_t telegram[], uint32_t telegram_len, int32_t direction, void *user_data)
Packet Trace callback function type (pointer to function definition)
Definition: kdrive_express_access.h:1083
ip_tunn_dev_t
struct ip_tunn_dev_t ip_tunn_dev_t
Structure holding ip tunneling device information.
kdrive_ap_get_max_apdu_length
kdriveExpress_API error_t kdrive_ap_get_max_apdu_length(int32_t ap, uint32_t *max_apdu_length)
Gets the maximum supported apdu length of the Local Device (KNX Interface Device)
usb_dev_t
Structure holding usb device information.
Definition: kdrive_express_access.h:88
kdrive_ap_read_group_object
kdriveExpress_API uint32_t kdrive_ap_read_group_object(int32_t ap, uint16_t address, uint8_t telegram[], uint32_t telegram_len, uint32_t timeout)
Sends a GroupValue_Read Telegram on the Access Port and waits for a GroupValue_Response indication te...
kdrive_express_config.h
kdrive_ap_is_group_write
kdriveExpress_API bool_t kdrive_ap_is_group_write(const uint8_t telegram[], uint32_t telegram_len)
Determines if the specified telegram is a GroupValue_Write telegram.
kdrive_ap_set_ip_tunn_auth_code
kdriveExpress_API error_t kdrive_ap_set_ip_tunn_auth_code(int32_t ap, const char *authentication_code)
Sets the optional authentication code for the KNXnet/IP tunneling connection.
kdrive_ap_set_filter_rf_domain_addr
kdriveExpress_API error_t kdrive_ap_set_filter_rf_domain_addr(int32_t ap, bool_t enable)
Enable or disable filter rf domain address for L-Data.ind telegrams.
usb_dev_t::internal_usb_index
uint32_t internal_usb_index
numbered in the order that the hid driver enumerates the devices
Definition: kdrive_express_access.h:92
kdrive_ap_packet_trace_disconnect
kdriveExpress_API error_t kdrive_ap_packet_trace_disconnect(int32_t ap)
Stops the Packet Trace.
kdrive_ap_set_ip_tunn_requested_ia
kdriveExpress_API error_t kdrive_ap_set_ip_tunn_requested_ia(int32_t ap, uint16_t address)
Sets the (optional) requested individual address This function is used for KNXnet/IP v2 devices.
KDRIVE_MAC_LEN
#define KDRIVE_MAC_LEN
The Length of a MAC Address.
Definition: kdrive_express_defs.h:36
kdrive_ap_set_rf_domain_addr
kdriveExpress_API error_t kdrive_ap_set_rf_domain_addr(int32_t ap, const uint8_t da[KDRIVE_DA_LEN])
Sets the Domain Address of the Local Device (KNX Interface Device)
ip_tunn_dev_t::slot_infos_count
uint16_t slot_infos_count
actual number of tunnling slot information items
Definition: kdrive_express_access.h:194
kdrive_ap_is_ip_rout_secure
kdriveExpress_API error_t kdrive_ap_is_ip_rout_secure(int32_t ap, bool_t *secured)
Only has works for knxnet ip routing ports, returns if security is enabled or not.
kdrive_ap_enum_ip_rout
kdriveExpress_API error_t kdrive_ap_enum_ip_rout(int32_t ap, ip_rout_info_t items[], uint32_t *items_length)
Scans for all KNX IP Routing devices The items array must exist (should be pre-allocated by the user)...
kdrive_ap_close
kdriveExpress_API error_t kdrive_ap_close(int32_t ap)
Closes the access port If the access port is not open nothing happens.
kdrive_ap_set_keyring
kdriveExpress_API error_t kdrive_ap_set_keyring(int32_t ap, int32_t keyring)
Sets the used knx keyring project.
kdrive_ap_get_bus_state
kdriveExpress_API error_t kdrive_ap_get_bus_state(int32_t ap, bool_t use_cache, uint32_t *bus_state)
Reads the current bus state from the interface (use_cache == false) or gets the last status of the kn...
kdrive_ap_set_ip_tunn_user_id
kdriveExpress_API error_t kdrive_ap_set_ip_tunn_user_id(int32_t ap, uint8_t user_id)
Sets the security user id for the KNXnet/IP tunneling connection.
kdrive_ap_set_ind_addr
kdriveExpress_API error_t kdrive_ap_set_ind_addr(int32_t ap, uint16_t address)
Sets the Individual Address of the Local Device (KNX Interface Device)
data_sec_t
data_sec_t
Definition: kdrive_express_access.h:812
kdrive_ap_is_group_read
kdriveExpress_API bool_t kdrive_ap_is_group_read(const uint8_t telegram[], uint32_t telegram_len)
Determines if the specified telegram is a GroupValue_Read telegram.
ip_tunn_dev_t::dev_name
char dev_name[KDRIVE_MAX_DEVICE_NAME_LEN]
device friendly name.
Definition: kdrive_express_access.h:181
KDRIVE_DA_LEN
#define KDRIVE_DA_LEN
The Length of a KNX Domain Address.
Definition: kdrive_express_defs.h:35
kdrive_ap_is_data_sec
kdriveExpress_API bool_t kdrive_ap_is_data_sec(const uint8_t telegram[], uint32_t telegram_len)
Check if the telegram is a data secure one.