kdriveExpress SDK 23.2.0
kdrive_express_access.h
Go to the documentation of this file.
1 //
2 // Copyright (c) 2002-2023 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 
71 
72 /*******************************
73 ** USB
74 ********************************/
75 
83 
89 typedef struct usb_dev_t
90 {
98 
116 
135 
151 
152 /*******************************
153 ** KNXnet/IP Tunneling
154 ********************************/
155 
161 typedef struct ip_tunn_slot_info_t
162 {
168 
169 
175 typedef struct ip_tunn_dev_t
176 {
177  // ip address and network interface
181  // device information
188  // security information
193  // tunnling slot information
194  // optional (When the device not support it then slot_infos_count is 0)
199 
212  ip_tunn_dev_t items[],
213  uint32_t* items_length);
214 
215 
227  const char* ip_address,
228  uint16_t port,
229  const char* iface_address,
230  ip_tunn_dev_t* device_info);
231 
266 kdriveExpress_API error_t kdrive_ap_open_ip_tunn(int32_t ap, const char* ip_address, uint16_t port, const char* iface_address);
267 
279 kdriveExpress_API error_t kdrive_ap_open_ip_tunn_nat(int32_t ap, const char* ip_address, uint16_t port, const char* iface_address);
280 
298 
316 kdriveExpress_API error_t kdrive_ap_open_ip_ex(int32_t ap, const char* ip_address, const char* iface_address);
317 
334 kdriveExpress_API error_t kdrive_ap_open_ip_nat(int32_t ap, const char* ip_address, const char* iface_address);
335 
343 
354 
366 
377 
386 
397 
398 /*******************************
399 ** KNXnet/IP Routing
400 ********************************/
401 
407 typedef struct ip_rout_info_t
408 {
414 
428  ip_rout_info_t items[],
429  uint32_t* items_length);
430 
449 kdriveExpress_API error_t kdrive_ap_open_ip_rout(int32_t ap, const char* multicast_address, const char* iface_address, bool_t secured);
450 
459 
468 
469 /*******************************
470 ** Serial FT1.2
471 ********************************/
472 
486 
487 /*******************************
488 ** TinySerial
489 ********************************/
490 
503 
504 /*******************************
505 ** Connection Management
506 ********************************/
507 
515 
523 
524 /*******************************
525 ** Send KNX Telegrams
526 ********************************/
527 
535 kdriveExpress_API error_t kdrive_ap_send(int32_t ap, const uint8_t telegram[], uint32_t telegram_len);
536 
548 
557 
568 
588  uint8_t telegram[], uint32_t telegram_len, uint32_t timeout);
589 
590 /*******************************
591 ** Receive KNX Telegrams
592 ********************************/
593 
601 
617  uint8_t telegram[], uint32_t telegram_len, uint32_t timeout);
618 
619 /*******************************
620 ** KNX Telegram Callback
621 ********************************/
622 
631 typedef void (*kdrive_ap_telegram_callback)(const uint8_t telegram[], uint32_t telegram_len, void* user_data);
632 
651  kdrive_ap_telegram_callback c, void* user_data, uint32_t* key);
652 
671  kdrive_ap_telegram_callback c, void* user_data, uint32_t* key);
672 
680 
681 /*******************************
682 ** Telegram Attributes
683 ********************************/
684 
693  uint32_t telegram_len, uint16_t* address);
694 
703  uint32_t telegram_len, uint16_t* address);
704 
713  uint32_t telegram_len, uint16_t* apci);
714 
726  uint32_t telegram_len, uint8_t* message_code);
727 
738  uint32_t telegram_len, uint8_t sn[KDRIVE_SN_LEN]);
739 
740 /*******************************
741 ** Group Values
742 ********************************/
743 
753 
762 
771 
780 
795  uint32_t telegram_len, uint8_t* data, uint32_t* data_len);
796 
807  uint32_t telegram_len, bool_t* is_commpressed);
808 
809 /*******************************
810 ** Data Security
811 ********************************/
812 
814 {
815  Off = 0x00,
816  On = 0x01,
817  Auto = 0x03
818 };
819 
832 
845 
854 
864 
872 
873 /*******************************
874 ** Access Port Properties
875 ********************************/
876 
886 
896 
904 
912 
920 
928 
936 
945 
958 
968 
978 
988 
999 
1012 
1023 
1035 
1048 
1056 
1057 /*******************************
1058 ** Packet Trace
1059 ********************************/
1060 
1071 
1078 
1088 typedef void(*kdrive_ap_packet_trace_callback)(const uint8_t telegram[], uint32_t telegram_len, int32_t direction, void* user_data);
1089 
1105 
1106 #ifdef __cplusplus
1107 }
1108 #endif
1109 
1110 #endif /* __KDRIVE_EXPRESS_ACCESS_H__ */
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.
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.
kdriveExpress_API error_t kdrive_ap_get_filter_dest_addr(int32_t ap, bool_t *is_enabled)
Gets the destination individual address filter setting.
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.
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.
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.
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...
struct ip_rout_info_t ip_rout_info_t
Structure holding ip routing information.
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)
kdriveExpress_API error_t kdrive_ap_packet_trace_connect(int32_t ap)
Starts the Packet Trace, for a specific access port.
struct ip_tunn_dev_t ip_tunn_dev_t
Structure holding ip tunneling device information.
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.
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.
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_get_src(const uint8_t telegram[], uint32_t telegram_len, uint16_t *address)
Extracts the Source Address from the Telegram.
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.
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.
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...
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)
kdriveExpress_API uint32_t kdrive_ap_enum_usb(int32_t ap)
Scan for all KNX USB Interface devices.
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:631
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.
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.
kdriveExpress_API bool_t kdrive_ap_release(int32_t ap)
Releases the AccessPort interface.
kdriveExpress_API bool_t kdrive_ap_is_open(int32_t ap)
Returns whether the access port is open.
kdriveExpress_API int32_t kdrive_ap_create(void)
Creates an internal AccessPort interface This should be the first function called when working with t...
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)
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.
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)
kdriveExpress_API error_t kdrive_ap_close(int32_t ap)
Closes the access port If the access port is not open nothing happens.
kdriveExpress_API error_t kdrive_ap_set_keyring(int32_t ap, int32_t keyring)
Sets the used knx keyring project.
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.
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...
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.
kdriveExpress_API error_t kdrive_ap_enable_queue(int32_t ap, bool_t enabled)
Enables/Disables the receive queue for the access port.
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 ...
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.
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)
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.
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....
kdriveExpress_API error_t kdrive_ap_set_layer(int32_t ap, uint16_t layer)
Sets the Layer of the Local Device (KNX Interface Device)
kdriveExpress_API error_t kdrive_ap_packet_trace_disconnect(int32_t ap)
Stops the Packet Trace.
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.
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).
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.
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.
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.
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)
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)
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.
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.
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.
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.
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.
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_set_serial_no(int32_t ap, const uint8_t sn[KDRIVE_SN_LEN])
Sets the Serial Number of the Local Device (KNX Interface Device)
kdriveExpress_API error_t kdrive_ap_enum_usb_ex(usb_dev_t items[], uint32_t *items_length)
Scan for all KNX USB Interface devices.
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).
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:1088
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.
struct usb_dev_t usb_dev_t
Structure holding usb device information.
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.
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.
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.
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.
struct ip_tunn_slot_info_t ip_tunn_slot_info_t
Structure holding ip tunnling slot information.
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.
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).
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,...
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.
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 ...
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)
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)...
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.
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...
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 error_t kdrive_ap_open_ip(int32_t ap, const char *ip_address)
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...
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.
kdriveExpress_API error_t kdrive_ap_only_enum_usb(usb_dev_t items[], uint32_t *items_length)
Scan for all KNX USB Interface devices.
kdriveExpress_API error_t kdrive_ap_remove_telegram_callback(int32_t ap, uint32_t key)
Removes (de-registers) a telegram callback.
#define KDRIVE_MAX_TUNNEL_INFO_ITEMS
Maximum of tunneling info elements in ip_tunn_slot_info_t.
Definition: kdrive_express_access.h:26
data_sec_t
Definition: kdrive_express_access.h:814
@ Auto
numbered in the order that the hid driver enumerates the devices
Definition: kdrive_express_access.h:817
@ On
knx media types (bit field, encoding is DPT_Media)
Definition: kdrive_express_access.h:816
@ Off
KNX individual address.
Definition: kdrive_express_access.h:815
#define kdriveExpress_API
Definition: kdrive_express_config.h:89
unsigned short uint16_t
16 bit unsigned char
Definition: kdrive_express_config.h:31
bool bool_t
Definition: kdrive_express_config.h:58
int int32_t
32 bit signed int
Definition: kdrive_express_config.h:35
unsigned int uint32_t
32 bit unsigned char
Definition: kdrive_express_config.h:32
int32_t error_t
Definition: kdrive_express_config.h:47
unsigned char uint8_t
8 bit unsigned char
Definition: kdrive_express_config.h:30
kdriveExpress Defines
#define KDRIVE_MAC_LEN
The Length of a MAC Address.
Definition: kdrive_express_defs.h:36
#define KDRIVE_DA_LEN
The Length of a KNX Domain Address.
Definition: kdrive_express_defs.h:35
#define KDRIVE_MAX_IP_ADDRESS_LEN
The max length of a formated ip address string e.g.
Definition: kdrive_express_defs.h:41
#define KDRIVE_SN_LEN
The Length of a KNX Serial Number.
Definition: kdrive_express_defs.h:34
#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
Structure holding ip routing information.
Definition: kdrive_express_access.h:408
char iface_address[KDRIVE_MAX_IP_ADDRESS_LEN]
interface adaptor IP address.
Definition: kdrive_express_access.h:410
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:411
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:409
Structure holding ip tunneling device information.
Definition: kdrive_express_access.h:176
bool_t prog_mode_enabled
state of the programming mode 0 = off, 1 = on
Definition: kdrive_express_access.h:186
bool_t is_tunneling_secure
is tunneling service secure 0 = false, 1 = true
Definition: kdrive_express_access.h:190
bool_t is_management_secure
is device management service secure 0 = false, 1 = true
Definition: kdrive_express_access.h:191
char iface_address[KDRIVE_MAX_IP_ADDRESS_LEN]
interface adaptor IP address.
Definition: kdrive_express_access.h:179
uint8_t serial_number[KDRIVE_SN_LEN]
serial number
Definition: kdrive_express_access.h:185
uint16_t slot_infos_count
actual number of tunnling slot information items
Definition: kdrive_express_access.h:195
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:189
ip_tunn_slot_info_t slot_infos[KDRIVE_MAX_TUNNEL_INFO_ITEMS]
tunnling slot information items
Definition: kdrive_express_access.h:196
char dev_name[KDRIVE_MAX_DEVICE_NAME_LEN]
device friendly name.
Definition: kdrive_express_access.h:182
char ip_address[KDRIVE_MAX_IP_ADDRESS_LEN]
IP address in the form "192.168.1.47" for example.
Definition: kdrive_express_access.h:178
uint16_t ind_addr
KNX individual address.
Definition: kdrive_express_access.h:183
uint8_t mac_address[KDRIVE_MAC_LEN]
mac address
Definition: kdrive_express_access.h:184
Structure holding ip tunnling slot information.
Definition: kdrive_express_access.h:162
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:164
uint16_t address
the individual address of the tunnel
Definition: kdrive_express_access.h:163
Structure holding usb device information.
Definition: kdrive_express_access.h:90
uint32_t usb_vendor_id
usb device vendor id
Definition: kdrive_express_access.h:94
uint16_t media_tytes
knx media types (bit field, encoding is DPT_Media)
Definition: kdrive_express_access.h:92
uint32_t usb_product_id
usb device product id
Definition: kdrive_express_access.h:95
uint32_t internal_usb_index
numbered in the order that the hid driver enumerates the devices
Definition: kdrive_express_access.h:93
uint16_t ind_addr
KNX individual address.
Definition: kdrive_express_access.h:91