RDMnet  HEAD (unstable)
Implementation of ANSI E1.33 (RDMnet)
View other versions:
llrp_manager.h
Go to the documentation of this file.
1 /******************************************************************************
2  * Copyright 2020 ETC Inc.
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  * http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  ******************************************************************************
16  * This file is a part of RDMnet. For more information, go to:
17  * https://github.com/ETCLabs/RDMnet
18  *****************************************************************************/
19 
25 #ifndef RDMNET_LLRP_MANAGER_H_
26 #define RDMNET_LLRP_MANAGER_H_
27 
28 #include "etcpal/uuid.h"
29 #include "etcpal/inet.h"
30 #include "rdm/message.h"
31 #include "rdmnet/common.h"
32 #include "rdmnet/llrp.h"
33 #include "rdmnet/message.h"
34 
46 #ifdef __cplusplus
47 extern "C" {
48 #endif
49 
51 typedef int llrp_manager_t;
53 #define LLRP_MANAGER_INVALID -1
54 
62  const LlrpDiscoveredTarget* target,
63  void* context);
64 
72  const LlrpRdmResponse* resp,
73  void* context);
74 
80 typedef void (*LlrpManagerDiscoveryFinishedCallback)(llrp_manager_t handle, void* context);
81 
83 typedef struct LlrpManagerCallbacks
84 {
88  void* context;
90 
92 typedef struct LlrpManagerConfig
93 {
94  /************************************************************************************************
95  * Required Values
96  ***********************************************************************************************/
97 
104  uint16_t manu_id;
108 
118 #define LLRP_MANAGER_CONFIG_DEFAULT_INIT \
119  { \
120  {{0}}, {kEtcPalIpTypeInvalid, 0}, 0, { NULL, NULL, NULL, NULL } \
121  }
122 
123 void llrp_manager_config_init(LlrpManagerConfig* config, uint16_t manufacturer_id);
125  LlrpManagerTargetDiscoveredCallback target_discovered,
126  LlrpManagerRdmResponseReceivedCallback rdm_response_received,
127  LlrpManagerDiscoveryFinishedCallback discovery_finished,
128  void* context);
129 
132 
135 
137  const LlrpDestinationAddr* destination,
138  rdmnet_command_class_t command_class,
139  uint16_t param_id,
140  const uint8_t* data,
141  uint8_t data_len,
142  uint32_t* seq_num);
144  const LlrpDestinationAddr* destination,
145  uint16_t param_id,
146  const uint8_t* data,
147  uint8_t data_len,
148  uint32_t* seq_num);
150  const LlrpDestinationAddr* destination,
151  uint16_t param_id,
152  const uint8_t* data,
153  uint8_t data_len,
154  uint32_t* seq_num);
155 
156 #ifdef __cplusplus
157 }
158 #endif
159 
164 #endif /* RDMNET_LLRP_MANAGER_H_ */
Functions and definitions common to all RDMnet API modules.
etcpal_error_t
void(* LlrpManagerRdmResponseReceivedCallback)(llrp_manager_t handle, const LlrpRdmResponse *resp, void *context)
An RDM response has been received from an LLRP target.
Definition: llrp_manager.h:71
etcpal_error_t llrp_manager_send_set_command(llrp_manager_t handle, const LlrpDestinationAddr *destination, uint16_t param_id, const uint8_t *data, uint8_t data_len, uint32_t *seq_num)
Send an RDM SET command from an LLRP manager.
Definition: llrp_manager.c:342
int llrp_manager_t
Definition: llrp_manager.h:51
struct LlrpManagerConfig LlrpManagerConfig
struct LlrpManagerCallbacks LlrpManagerCallbacks
void llrp_manager_config_set_callbacks(LlrpManagerConfig *config, LlrpManagerTargetDiscoveredCallback target_discovered, LlrpManagerRdmResponseReceivedCallback rdm_response_received, LlrpManagerDiscoveryFinishedCallback discovery_finished, void *context)
Set the callbacks in an LLRP manager configuration structure.
Definition: llrp_manager.c:103
etcpal_error_t llrp_manager_destroy(llrp_manager_t handle)
Destroy an LLRP manager instance.
Definition: llrp_manager.c:168
etcpal_error_t llrp_manager_send_get_command(llrp_manager_t handle, const LlrpDestinationAddr *destination, uint16_t param_id, const uint8_t *data, uint8_t data_len, uint32_t *seq_num)
Send an RDM GET command from an LLRP manager.
Definition: llrp_manager.c:301
etcpal_error_t llrp_manager_send_rdm_command(llrp_manager_t handle, const LlrpDestinationAddr *destination, rdmnet_command_class_t command_class, uint16_t param_id, const uint8_t *data, uint8_t data_len, uint32_t *seq_num)
Send an RDM command from an LLRP manager.
Definition: llrp_manager.c:259
void(* LlrpManagerDiscoveryFinishedCallback)(llrp_manager_t handle, void *context)
The previously-started LLRP discovery process has finished.
Definition: llrp_manager.h:80
void(* LlrpManagerTargetDiscoveredCallback)(llrp_manager_t handle, const LlrpDiscoveredTarget *target, void *context)
An LLRP target has been discovered.
Definition: llrp_manager.h:61
etcpal_error_t llrp_manager_stop_discovery(llrp_manager_t handle)
Stop discovery on an LLRP manager.
Definition: llrp_manager.c:226
void llrp_manager_config_init(LlrpManagerConfig *config, uint16_t manufacturer_id)
Initialize an LlrpManagerConfig with default values for the optional config options.
Definition: llrp_manager.c:82
etcpal_error_t llrp_manager_create(const LlrpManagerConfig *config, llrp_manager_t *handle)
Create a new LLRP manager instance.
Definition: llrp_manager.c:133
etcpal_error_t llrp_manager_start_discovery(llrp_manager_t handle, uint16_t filter)
Start discovery on an LLRP manager.
Definition: llrp_manager.c:200
rdmnet_command_class_t
An RDM command class, for RDMnet purposes.
Definition: common.h:371
Functions and definitions common to LLRP Managers and Targets.
Basic types for parsed RDMnet messages.
A destination address for an RDM command in LLRP.
Definition: llrp.h:48
Definition: llrp.h:72
Definition: llrp_manager.h:84
LlrpManagerRdmResponseReceivedCallback rdm_response_received
Definition: llrp_manager.h:86
LlrpManagerTargetDiscoveredCallback target_discovered
Definition: llrp_manager.h:85
void * context
Definition: llrp_manager.h:88
LlrpManagerDiscoveryFinishedCallback discovery_finished
Definition: llrp_manager.h:87
Definition: llrp_manager.h:93
EtcPalUuid cid
Definition: llrp_manager.h:99
EtcPalMcastNetintId netint
Definition: llrp_manager.h:102
LlrpManagerCallbacks callbacks
Definition: llrp_manager.h:106
uint16_t manu_id
Definition: llrp_manager.h:104
Definition: message.h:480