Livox SDK API  V2.1.0
livox_sdk.h
Go to the documentation of this file.
1 //
2 // The MIT License (MIT)
3 //
4 // Copyright (c) 2019 Livox. All rights reserved.
5 //
6 // Permission is hereby granted, free of charge, to any person obtaining a copy
7 // of this software and associated documentation files (the "Software"), to deal
8 // in the Software without restriction, including without limitation the rights
9 // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10 // copies of the Software, and to permit persons to whom the Software is
11 // furnished to do so, subject to the following conditions:
12 //
13 // The above copyright notice and this permission notice shall be included in
14 // all copies or substantial portions of the Software.
15 //
16 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17 // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18 // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19 // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20 // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21 // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
22 // SOFTWARE.
23 //
24 
25 #ifndef LIVOX_SDK_H_
26 #define LIVOX_SDK_H_
27 
28 #ifdef __cplusplus
29 extern "C" {
30 #endif
31 
32 #include <stdbool.h>
33 #include <stdint.h>
34 #include "livox_def.h"
35 
40 void GetLivoxSdkVersion(LivoxSdkVersion *version);
41 
46 
51 bool Init();
52 
57 bool Start();
58 
62 void Uninit();
63 
67 void SaveLoggerFile();
68 
74 
81 
87 typedef void (*DeviceStateUpdateCallback)(const DeviceInfo *device, DeviceEvent type);
88 
102 
111 livox_status AddHubToConnect(const char *broadcast_code, uint8_t *handle);
112 
120 livox_status AddLidarToConnect(const char *broadcast_code, uint8_t *handle);
121 
128 livox_status GetConnectedDevices(DeviceInfo *devices, uint8_t *size);
129 
139  uint8_t handle,
140  DeviceInformationResponse *response,
141  void *client_data);
142 
150 livox_status QueryDeviceInformation(uint8_t handle, DeviceInformationCallback cb, void *client_data);
151 
159 typedef void (*DataCallback)(uint8_t handle, LivoxEthPacket *data, uint32_t data_num, void *client_data);
160 
168 void SetDataCallback(uint8_t handle, DataCallback cb, void *client_data);
169 
178 typedef void (*CommonCommandCallback)(livox_status status, uint8_t handle, uint8_t response, void *client_data);
179 
187 
194 livox_status HubStopSampling(CommonCommandCallback cb, void *client_data);
195 
202 livox_status HubGetLidarHandle(uint8_t slot, uint8_t id);
203 
211 livox_status DisconnectDevice(uint8_t handle, CommonCommandCallback cb, void *client_data);
212 
220 livox_status SetCartesianCoordinate(uint8_t handle, CommonCommandCallback cb, void *client_data);
221 
229 livox_status SetSphericalCoordinate(uint8_t handle, CommonCommandCallback cb, void *client_data);
230 
237 typedef void (*ErrorMessageCallback)(livox_status status, uint8_t handle, ErrorMessage *message);
238 
247 
258 livox_status SetStaticDynamicIP(uint8_t handle,
261  void *client_data);
272 livox_status SetStaticIp(uint8_t handle,
275  void *client_data);
276 
284 livox_status SetDynamicIp(uint8_t handle,
286  void *client_data);
296  uint8_t handle,
297  GetDeviceIpModeResponse *response,
298  void *client_data);
299 
307 livox_status GetDeviceIpInformation(uint8_t handle, GetDeviceIpInformationCallback cb, void *client_data);
308 
318 livox_status RebootDevice(uint8_t handle, uint16_t timeout, CommonCommandCallback cb, void * client_data);
319 
329  uint8_t handle,
331  void *client_data);
332 
340 
349 typedef void (*HubSetModeCallback)(livox_status status, uint8_t handle, HubSetModeResponse *response, void *client_data);
350 
359 livox_status HubSetMode(HubSetModeRequest *req, uint16_t length, HubSetModeCallback cb, void *client_data);
360 
369 typedef void (*HubQueryLidarStatusCallback)(livox_status status, uint8_t handle, HubQueryLidarStatusResponse *response, void *client_data);
370 
378 
387 
397  uint8_t handle,
399  void *client_data);
400 
410  uint16_t length,
412  void *client_data);
413 
423  uint8_t handle,
425  void *client_data);
426 
434 
442 livox_status HubExtrinsicParameterCalculation(bool enable, CommonCommandCallback cb, void *client_data);
443 
453  uint8_t handle,
454  HubRainFogSuppressResponse *response,
455  void *client_data);
456 
466  uint16_t length,
468  void *client_data);
469 
478 typedef void(*HubQuerySlotPowerStatusCallback)(livox_status status, uint8_t handle, HubQuerySlotPowerStatusResponse *response, void *client_data);
479 
487 
496 typedef void (*HubFanControlCallback)(livox_status status,
497  uint8_t handle,
498  HubFanControlResponse *response,
499  void *client_data);
500 
509 livox_status HubFanControl(HubFanControlRequest *req, uint16_t length, HubFanControlCallback cb, void *client_data);
510 
519 typedef void (*HubGetFanStateCallback)(livox_status status,
520  uint8_t handle,
521  HubGetFanStateResponse *response,
522  void *client_data);
523 
533  uint16_t length,
535  void *client_data);
536 
546  uint8_t handle,
548  void *client_data);
549 
559  uint16_t length,
561  void *client_data);
562 
572  uint8_t handle,
574  void *client_data);
575 
585  uint16_t length,
587  void *client_data);
588 
598  uint8_t handle,
600  void *client_data);
601 
611  uint16_t length,
613  void *client_data);
614 
624  uint8_t handle,
626  void *client_data);
627 
637  uint16_t length,
639  void *client_data);
640 
648 livox_status LidarStartSampling(uint8_t handle, CommonCommandCallback cb, void *client_data);
649 
657 livox_status LidarStopSampling(uint8_t handle, CommonCommandCallback cb, void *client_data);
658 
669 livox_status LidarSetMode(uint8_t handle, LidarMode mode, CommonCommandCallback cb, void *client_data);
670 
682  void *client_data);
683 
693  uint8_t handle,
695  void *client_data);
696 
704 livox_status LidarGetExtrinsicParameter(uint8_t handle, LidarGetExtrinsicParameterCallback cb, void *client_data);
705 
715 livox_status LidarRainFogSuppress(uint8_t handle, bool enable, CommonCommandCallback cb, void *client_data);
716 
725 livox_status LidarTurnOffFan(uint8_t handle, CommonCommandCallback cb, void *client_data);
726 
735 livox_status LidarTurnOnFan(uint8_t handle, CommonCommandCallback cb, void *client_data);
736 
745 typedef void (*LidarGetFanStateCallback)(livox_status status,
746  uint8_t handle,
747  LidarGetFanStateResponse *response,
748  void *client_data);
749 
758 livox_status LidarGetFanState(uint8_t handle, LidarGetFanStateCallback cb, void * client_data) ;
759 
769 livox_status LidarSetPointCloudReturnMode(uint8_t handle, PointCloudReturnMode mode, CommonCommandCallback cb, void * client_data);
770 
780  uint8_t handle,
782  void *client_data);
783 
793 
803 livox_status LidarSetImuPushFrequency(uint8_t handle, ImuFreq freq, CommonCommandCallback cb, void * client_data);
804 
814  uint8_t handle,
816  void *client_data);
817 
826 livox_status LidarGetImuPushFrequency(uint8_t handle, LidarGetImuPushFrequencyCallback cb, void * client_data);
827 
838 livox_status LidarSetRmcSyncTime(uint8_t handle,
839  const char* rmc,
840  uint16_t rmc_length,
842  void *client_data);
843 
853 livox_status LidarSetUtcSyncTime(uint8_t handle,
856  void *client_data);
857 
858 #ifdef __cplusplus
859 }
860 #endif
861 
862 #endif // LIVOX_SDK_H_
livox_status HubStopSampling(CommonCommandCallback cb, void *client_data)
livox_status HubSetImuPushFrequency(HubSetImuPushFrequencyRequest *req, uint16_t length, HubSetImuPushFrequencyCallback cb, void *client_data)
livox_status HubControlSlotPower(HubControlSlotPowerRequest *req, CommonCommandCallback cb, void *client_data)
livox_status SetStaticIp(uint8_t handle, SetStaticDeviceIpModeRequest *req, CommonCommandCallback cb, void *client_data)
livox_status HubQueryLidarStatus(HubQueryLidarStatusCallback cb, void *client_data)
void(* HubGetExtrinsicParameterCallback)(livox_status status, uint8_t handle, HubGetExtrinsicParameterResponse *response, void *client_data)
Definition: livox_sdk.h:422
livox_status LidarRainFogSuppress(uint8_t handle, bool enable, CommonCommandCallback cb, void *client_data)
livox_status HubGetPointCloudReturnMode(HubGetPointCloudReturnModeRequest *req, uint16_t length, HubGetPointCloudReturnModeCallback cb, void *client_data)
livox_status GetConnectedDevices(DeviceInfo *devices, uint8_t *size)
livox_status LidarTurnOffFan(uint8_t handle, CommonCommandCallback cb, void *client_data)
void(* DeviceStateUpdateCallback)(const DeviceInfo *device, DeviceEvent type)
Definition: livox_sdk.h:87
DeviceEvent
Definition: livox_def.h:87
void DisableConsoleLogger()
livox_status SetStaticDynamicIP(uint8_t handle, SetDeviceIPModeRequest *req, CommonCommandCallback cb, void *client_data)
livox_status HubRainFogSuppress(HubRainFogSuppressRequest *req, uint16_t length, HubRainFogSuppressCallback cb, void *client_data)
void(* HubFanControlCallback)(livox_status status, uint8_t handle, HubFanControlResponse *response, void *client_data)
Definition: livox_sdk.h:496
livox_status LidarSetRmcSyncTime(uint8_t handle, const char *rmc, uint16_t rmc_length, CommonCommandCallback cb, void *client_data)
livox_status SetErrorMessageCallback(uint8_t handle, ErrorMessageCallback cb)
void(* HubGetPointCloudReturnModeCallback)(livox_status status, uint8_t handle, HubGetPointCloudReturnModeResponse *response, void *client_data)
Definition: livox_sdk.h:571
void Uninit()
livox_status HubFanControl(HubFanControlRequest *req, uint16_t length, HubFanControlCallback cb, void *client_data)
void(* HubGetImuPushFrequencyCallback)(livox_status status, uint8_t handle, HubGetImuPushFrequencyResponse *response, void *client_data)
Definition: livox_sdk.h:623
livox_status LidarTurnOnFan(uint8_t handle, CommonCommandCallback cb, void *client_data)
void(* GetDeviceIpInformationCallback)(livox_status status, uint8_t handle, GetDeviceIpModeResponse *response, void *client_data)
Definition: livox_sdk.h:295
livox_status GetDeviceIpInformation(uint8_t handle, GetDeviceIpInformationCallback cb, void *client_data)
void(* ErrorMessageCallback)(livox_status status, uint8_t handle, ErrorMessage *message)
Definition: livox_sdk.h:237
livox_status LidarGetExtrinsicParameter(uint8_t handle, LidarGetExtrinsicParameterCallback cb, void *client_data)
void(* HubSetModeCallback)(livox_status status, uint8_t handle, HubSetModeResponse *response, void *client_data)
Definition: livox_sdk.h:349
livox_status HubSetPointCloudReturnMode(HubSetPointCloudReturnModeRequest *req, uint16_t length, HubSetPointCloudReturnModeCallback cb, void *client_data)
void(* HubQuerySlotPowerStatusCallback)(livox_status status, uint8_t handle, HubQuerySlotPowerStatusResponse *response, void *client_data)
Definition: livox_sdk.h:478
void(* HubSetImuPushFrequencyCallback)(livox_status status, uint8_t handle, HubSetImuPushFrequencyResponse *response, void *client_data)
Definition: livox_sdk.h:597
livox_status DisconnectDevice(uint8_t handle, CommonCommandCallback cb, void *client_data)
void(* HubGetFanStateCallback)(livox_status status, uint8_t handle, HubGetFanStateResponse *response, void *client_data)
Definition: livox_sdk.h:519
livox_status LidarStopSampling(uint8_t handle, CommonCommandCallback cb, void *client_data)
void SetBroadcastCallback(DeviceBroadcastCallback cb)
livox_status AddHubToConnect(const char *broadcast_code, uint8_t *handle)
livox_status HubQuerySlotPowerStatus(HubQuerySlotPowerStatusCallback cb, void *client_data)
void GetLivoxSdkVersion(LivoxSdkVersion *version)
livox_status RebootDevice(uint8_t handle, uint16_t timeout, CommonCommandCallback cb, void *client_data)
livox_status LidarStartSampling(uint8_t handle, CommonCommandCallback cb, void *client_data)
void(* HubSetPointCloudReturnModeCallback)(livox_status status, uint8_t handle, HubSetPointCloudReturnModeResponse *response, void *client_data)
Definition: livox_sdk.h:545
livox_status AddLidarToConnect(const char *broadcast_code, uint8_t *handle)
void(* DataCallback)(uint8_t handle, LivoxEthPacket *data, uint32_t data_num, void *client_data)
Definition: livox_sdk.h:159
int32_t livox_status
Definition: livox_def.h:84
basic_data data
Definition: format.h:764
void SaveLoggerFile()
void SetDataCallback(uint8_t handle, DataCallback cb, void *client_data)
livox_status HubSetExtrinsicParameter(HubSetExtrinsicParameterRequest *req, uint16_t length, HubSetExtrinsicParameterCallback cb, void *client_data)
PointCloudReturnMode
Definition: livox_def.h:117
livox_status SetCartesianCoordinate(uint8_t handle, CommonCommandCallback cb, void *client_data)
livox_status LidarGetImuPushFrequency(uint8_t handle, LidarGetImuPushFrequencyCallback cb, void *client_data)
void(* HubSetExtrinsicParameterCallback)(livox_status status, uint8_t handle, HubSetExtrinsicParameterResponse *response, void *client_data)
Definition: livox_sdk.h:396
void(* LidarGetImuPushFrequencyCallback)(livox_status status, uint8_t handle, LidarGetImuPushFrequencyResponse *response, void *client_data)
Definition: livox_sdk.h:813
livox_status LidarSetMode(uint8_t handle, LidarMode mode, CommonCommandCallback cb, void *client_data)
livox_status SetSphericalCoordinate(uint8_t handle, CommonCommandCallback cb, void *client_data)
livox_status HubGetFanState(HubGetFanStateRequest *req, uint16_t length, HubGetFanStateCallback cb, void *client_data)
void(* LidarGetPointCloudReturnModeCallback)(livox_status status, uint8_t handle, LidarGetPointCloudReturnModeResponse *response, void *client_data)
Definition: livox_sdk.h:779
void(* DeviceInformationCallback)(livox_status status, uint8_t handle, DeviceInformationResponse *response, void *client_data)
Definition: livox_sdk.h:138
void(* HubQueryLidarInformationCallback)(livox_status status, uint8_t handle, HubQueryLidarInformationResponse *response, void *client_data)
Definition: livox_sdk.h:328
livox_status HubExtrinsicParameterCalculation(bool enable, CommonCommandCallback cb, void *client_data)
livox_status HubStartSampling(CommonCommandCallback cb, void *client_data)
void(* DeviceBroadcastCallback)(const BroadcastDeviceInfo *info)
Definition: livox_sdk.h:73
ImuFreq
Definition: livox_def.h:124
livox_status HubGetImuPushFrequency(HubGetImuPushFrequencyRequest *req, uint16_t length, HubGetImuPushFrequencyCallback cb, void *client_data)
LidarMode
Definition: livox_def.h:51
bool Init()
livox_status LidarSetPointCloudReturnMode(uint8_t handle, PointCloudReturnMode mode, CommonCommandCallback cb, void *client_data)
void(* CommonCommandCallback)(livox_status status, uint8_t handle, uint8_t response, void *client_data)
Definition: livox_sdk.h:178
livox_status HubSetMode(HubSetModeRequest *req, uint16_t length, HubSetModeCallback cb, void *client_data)
void(* LidarGetFanStateCallback)(livox_status status, uint8_t handle, LidarGetFanStateResponse *response, void *client_data)
Definition: livox_sdk.h:745
livox_status LidarGetPointCloudReturnMode(uint8_t handle, LidarGetPointCloudReturnModeCallback cb, void *client_data)
livox_status HubGetExtrinsicParameter(HubGetExtrinsicParameterCallback cb, void *client_data)
livox_status LidarGetFanState(uint8_t handle, LidarGetFanStateCallback cb, void *client_data)
livox_status HubQueryLidarInformation(HubQueryLidarInformationCallback cb, void *client_data)
void(* HubQueryLidarStatusCallback)(livox_status status, uint8_t handle, HubQueryLidarStatusResponse *response, void *client_data)
Definition: livox_sdk.h:369
livox_status SetDynamicIp(uint8_t handle, CommonCommandCallback cb, void *client_data)
void(* LidarGetExtrinsicParameterCallback)(livox_status status, uint8_t handle, LidarGetExtrinsicParameterResponse *response, void *client_data)
Definition: livox_sdk.h:692
void(* HubRainFogSuppressCallback)(livox_status status, uint8_t handle, HubRainFogSuppressResponse *response, void *client_data)
Definition: livox_sdk.h:452
bool Start()
livox_status QueryDeviceInformation(uint8_t handle, DeviceInformationCallback cb, void *client_data)
livox_status LidarSetImuPushFrequency(uint8_t handle, ImuFreq freq, CommonCommandCallback cb, void *client_data)
livox_status HubGetLidarHandle(uint8_t slot, uint8_t id)
void SetDeviceStateUpdateCallback(DeviceStateUpdateCallback cb)
Add a callback for device connection or working state changing event.
livox_status LidarSetUtcSyncTime(uint8_t handle, LidarSetUtcSyncTimeRequest *req, CommonCommandCallback cb, void *client_data)
livox_status LidarSetExtrinsicParameter(uint8_t handle, LidarSetExtrinsicParameterRequest *req, CommonCommandCallback cb, void *client_data)