#include <chrono>
#include <thread>
#include <spdlog/spdlog.h>
void onArmComplete(uint16_t
id,
ArmSide side)
{
spdlog::info("Arm complete id={} side={}", id, (int)side);
}
{
spdlog::error("Arm error id={} side={} type={}",
id, (int)side, (int)errorType);
}
{
spdlog::info("Arm state side={} state={}", (int)side, (int)state);
}
void onArmMovement(
ArmSide side,
float degreeChange)
{
spdlog::info("Arm movement side={} degreeChange={}", (int)side, degreeChange);
}
int main()
{
spdlog::set_level(spdlog::level::info);
spdlog::flush_on(spdlog::level::trace);
spdlog::error("Doly service stop failed");
return -1;
}
if (res < 0)
{
spdlog::error("Read settings failed with code: {}", res);
return -1;
}
{
spdlog::error("ArmControl init failed");
return -2;
}
std::this_thread::sleep_for(std::chrono::milliseconds(50));
}
spdlog::info("Estimated Arm Positions:");
for (const auto& a : arms) {
spdlog::info(" Side:{} Angle:{}", (int)a.side, a.angle);
}
return 0;
}
Public API for Doly arm motion control.
Event dispatcher API for the Doly ArmControl subsystem.
Shared helper utilities and common types used across the Doly SDK.
ArmState
High-level state of an arm operation.
Definition ArmEventListener.h:55
ArmSide
Which arm side an operation or event relates to.
Definition ArmEventListener.h:40
ArmErrorType
Error categories reported by the arm subsystem.
Definition ArmEventListener.h:28
@ COMPLETED
Definition ArmEventListener.h:60
@ BOTH
Definition ArmEventListener.h:42
std::vector< ArmData > getCurrentAngle(ArmSide side)
Get the current angle(s) for the requested side(s).
int8_t setAngle(uint16_t id, ArmSide side, uint8_t speed, uint16_t angle, bool with_brake=false)
Command the arm to move to an angle.
int8_t dispose()
Dispose/stop the arm subsystem and release resources.
int8_t init()
Initialize the arm subsystem.
float getVersion()
Get SDK/library version.
ArmState getState(ArmSide side)
Get current operation state for a side.
void AddListenerOnStateChange(void(*onEvent)(ArmSide side, ArmState state))
Register a C-style callback for state changes.
void AddListenerOnComplete(void(*onEvent)(uint16_t id, ArmSide side))
Register a C-style callback for “command complete” events.
void AddListenerOnMovement(void(*onEvent)(ArmSide side, float degreeChange))
Register a C-style callback for movement notifications.
void RemoveListenerOnStateChange(void(*onEvent)(ArmSide side, ArmState state))
Remove a previously registered state-change callback.
void RemoveListenerOnComplete(void(*onEvent)(uint16_t id, ArmSide side))
Remove a previously registered “command complete” callback.
void AddListenerOnError(void(*onEvent)(uint16_t id, ArmSide side, ArmErrorType errorType))
Register a C-style callback for error events.
void RemoveListenerOnMovement(void(*onEvent)(ArmSide side, float degreeChange))
Remove a previously registered movement callback.
void RemoveListenerOnError(void(*onEvent)(uint16_t id, ArmSide side, ArmErrorType errorType))
Remove a previously registered error callback.
int8_t stopDolyService()
Stop the background Doly service (if running).
int8_t readSettings()
Read default settings from the platform settings file.