构建新的cmakelist工程

修改了  delay_tc函数
修返回频率为20hz
修改波特率修改后先重新设置通讯波特率在保存
This commit is contained in:
xin
2023-02-13 09:15:17 +08:00
parent d870c42486
commit 277e347e56
12 changed files with 61 additions and 7 deletions

85
source/witmotiondll.h Normal file
View File

@ -0,0 +1,85 @@
#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