kdriveExpress SDK 23.2.0
kdrive_express_access.h File Reference

kdriveExpress Access API More...

Go to the source code of this file.

Data Structures

struct  usb_dev_t
 Structure holding usb device information. More...
 
struct  ip_tunn_slot_info_t
 Structure holding ip tunnling slot information. More...
 
struct  ip_tunn_dev_t
 Structure holding ip tunneling device information. More...
 
struct  ip_rout_info_t
 Structure holding ip routing information. More...
 

Macros

#define KDRIVE_MAX_TUNNEL_INFO_ITEMS   (63)
 Maximum of tunneling info elements in ip_tunn_slot_info_t. More...
 

Typedefs

typedef struct usb_dev_t usb_dev_t
 Structure holding usb device information. More...
 
typedef struct ip_tunn_slot_info_t ip_tunn_slot_info_t
 Structure holding ip tunnling slot information. More...
 
typedef struct ip_tunn_dev_t ip_tunn_dev_t
 Structure holding ip tunneling device information. More...
 
typedef struct ip_rout_info_t ip_rout_info_t
 Structure holding ip routing information. More...
 
typedef void(* kdrive_ap_telegram_callback) (const uint8_t telegram[], uint32_t telegram_len, void *user_data)
 Callback function type (pointer to function definition) More...
 
typedef 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) More...
 

Enumerations

enum  data_sec_t { Off = 0x00 , On = 0x01 , Auto = 0x03 }
 

Functions

kdriveExpress_API int32_t kdrive_ap_create (void)
 Creates an internal AccessPort interface This should be the first function called when working with the access library. More...
 
kdriveExpress_API bool_t kdrive_ap_release (int32_t ap)
 Releases the AccessPort interface. More...
 
kdriveExpress_API error_t kdrive_ap_set_keyring (int32_t ap, int32_t keyring)
 Sets the used knx keyring project. More...
 
kdriveExpress_API uint32_t kdrive_ap_enum_usb (int32_t ap)
 Scan for all KNX USB Interface devices. More...
 
kdriveExpress_API error_t kdrive_ap_enum_usb_ex (usb_dev_t items[], uint32_t *items_length)
 Scan for all KNX USB Interface devices. More...
 
kdriveExpress_API error_t kdrive_ap_only_enum_usb (usb_dev_t items[], uint32_t *items_length)
 Scan for all KNX USB Interface devices. More...
 
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..iface_count-1 where iface_count is > 0. More...
 
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 by the user). More...
 
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. More...
 
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 network interface. More...
 
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 Address Translation (NAT) mode. More...
 
kdriveExpress_API error_t kdrive_ap_open_ip (int32_t ap, const char *ip_address)
 
kdriveExpress_API error_t kdrive_ap_open_ip_ex (int32_t ap, const char *ip_address, const char *iface_address)
 
kdriveExpress_API error_t kdrive_ap_open_ip_nat (int32_t ap, const char *ip_address, const char *iface_address)
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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). More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
kdriveExpress_API error_t kdrive_ap_close (int32_t ap)
 Closes the access port If the access port is not open nothing happens. More...
 
kdriveExpress_API bool_t kdrive_ap_is_open (int32_t ap)
 Returns whether the access port is open. More...
 
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. More...
 
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 to be sent (i.e. More...
 
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_Response telegram. More...
 
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. More...
 
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 telegram (with a matching Group Address). More...
 
kdriveExpress_API error_t kdrive_ap_enable_queue (int32_t ap, bool_t enabled)
 Enables/Disables the receive queue for the access port. More...
 
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. More...
 
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. More...
 
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. More...
 
kdriveExpress_API error_t kdrive_ap_remove_telegram_callback (int32_t ap, uint32_t key)
 Removes (de-registers) a telegram callback. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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 Additional Info field i.e. More...
 
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, GroupValue_Write or GroupValue_Response. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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). More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
kdriveExpress_API error_t kdrive_ap_set_layer (int32_t ap, uint16_t layer)
 Sets the Layer of the Local Device (KNX Interface Device) More...
 
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) More...
 
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) More...
 
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) More...
 
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) More...
 
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) More...
 
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) More...
 
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). More...
 
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). More...
 
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) More...
 
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) More...
 
kdriveExpress_API error_t kdrive_ap_get_filter_dest_addr (int32_t ap, bool_t *is_enabled)
 Gets the destination individual address filter setting. More...
 
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. More...
 
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. More...
 
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. More...
 
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 knx bus from the cache (use_cache == true). More...
 
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) More...
 
kdriveExpress_API error_t kdrive_ap_packet_trace_connect (int32_t ap)
 Starts the Packet Trace, for a specific access port. More...
 
kdriveExpress_API error_t kdrive_ap_packet_trace_disconnect (int32_t ap)
 Stops the Packet Trace. More...
 
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. More...
 

Detailed Description

kdriveExpress Access API

Author
Copyright (c) 2002-2023 WEINZIERL ENGINEERING GmbH

Macro Definition Documentation

◆ KDRIVE_MAX_TUNNEL_INFO_ITEMS

#define KDRIVE_MAX_TUNNEL_INFO_ITEMS   (63)

Maximum of tunneling info elements in ip_tunn_slot_info_t.

Enumeration Type Documentation

◆ data_sec_t

enum data_sec_t
Enumerator
Off 

KNX individual address.

On 

knx media types (bit field, encoding is DPT_Media)

Auto 

numbered in the order that the hid driver enumerates the devices