Files
witmotionDll/source/witmotiondll.h
xin 277e347e56 构建新的cmakelist工程
修改了  delay_tc函数
修返回频率为20hz
修改波特率修改后先重新设置通讯波特率在保存
2023-02-13 09:15:17 +08:00

86 lines
2.5 KiB
C++
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#ifndef WITMOTIONDLL_H
#define WITMOTIONDLL_H
#include <iostream>
#include <string>
#include <thread>
#include "serialportbase.h"
#include "register.h"
#include "witcommand.h"
typedef void (*delay)(uint32_t millisecond);
typedef void (*witPrintf)(const char* text);
class WitmotionDll
{
public:
WitmotionDll(SerialPortBase * serialPort);
int delayMsRegister(delay delayFunction);
int printfRegister(witPrintf printfFunction);
void setDelayTimeMs(uint32_t millisecond);
int constructAndSendInstruction(int registerAddress, int registerContent);
int unlockInstruction();
int saveInstruction();
void recordData();
//系统
int algorithm(ALGROITHM_ENUM algorithm);
int installationOrientation(ORIENT_ENUM orient);
int instructStart(POWONSEND_ENUM command);//是否上电输出数据,可以防止鼠标乱跳
//校准:完成后,需要退出校准模式( 调用exitCalibration
int exitCalibration();//退出校准模式
int magneticCalibration();
int setHeightToZero();//需要JY901B带有高度数据输出的模块才能进行高度校准此为相对高度短时间内有效
int setZAxisAngleToZero();//Z轴角度归零只在切换成 6 轴算法下才能成功置零;
int setAngleReference();//询问技术支持,文档没有,不建议使用,设置后只能在静态下运动,即原点旋转单轴,其他方式旋转出来会有比较大的误差
//范围
int setTimeZone(TIMEZONE_ENUM timeZone);
//设置回传内容
int setContent(RETURN_CONTENT_STRUCT content);
int clearContent(RETURN_CONTENT_STRUCT content);
//通讯
int SetBaudrate(BAUD_ENUM baudrate);
int SetReturnRate(RRATE_ENUM returnRate);
int SetDeviceAddress(int deviceAddress);//1只用于IIC协议串口不用2设置、保存后重新上电生效3最大为0x7f(124)
//接口
int setD0Model(MODEL_D0_D2_D3_ENUM model);
int setD1Model(MODEL_D1_ENUM model);
int setD2Model(MODEL_D0_D2_D3_ENUM model);
int setD3Model(MODEL_D0_D2_D3_ENUM model);
int setD0HighLevelPulseWidth(int PWMH);
int setD1HighLevelPulseWidth(int PWMH);
int setD2HighLevelPulseWidth(int PWMH);
int setD3HighLevelPulseWidth(int PWMH);
int setD0Period(int period);
int setD1Period(int period);
int setD2Period(int period);
int setD3Period(int period);
private:
SerialPortBase * m_SerialPort;
uint32_t TIME_TO_SLEEP = 500;//毫秒
delay m_delayFunction;
witPrintf m_witPrintf;
};
#endif // WITMOTIONDLL_H