Files
vince/vincecontrol.h

185 lines
5.9 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.

/******************************************************
* 文件名 : vincecontrol.h
* 类名 :
* 作用 :马达控制程序
* 作者 : xin
* 邮箱 : renlixin@iris-rs.cn
* 日期 : 2020-8-5
********************************************************
* *
* _ooOoo_ *
* o8888888o *
* 88" . "88 *
* (| -_- |) *
* O\ = /O *
* ____/`---'\____ *
* .' \\| |// `. *
* / \\||| : |||// \ *
* / _||||| -:- |||||- \ *
* | | \\\ - /// | | *
* | \_| ''\---/'' | | *
* \ .-\__ `-` ___/-. / *
* ___`. .' /--.--\ `. . __ *
* ."" '< `.___\_<|>_/___.' >'"". *
* | | : `- \`.;`\ _ /`;.`/ - ` : | | *
* \ \ `-. \_ __\ /__ _/ .-` / / *
* ======`-.____`-.___\_____/___.-`____.-'====== *
* `=---=' *
* ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ *
* 佛祖保佑 长发永存 *
* *
********************************************************/
#ifndef VINCECONTROL_H
#define VINCECONTROL_H
#include "vincecontrol_global.h"
#include "QString"
#include <QSerialPort>
enum ProTools
{
RS232 = 0,
RS485 = 1
};
/********************************************************************
* 描述:马达控制程序
* 使用步骤
* 1初始话 需要告诉通讯协议Vince规定的
* 2如果是485 请设置id 默认为0
* 3) serialconnect 建立链接
* 4使用
* 2020-8-5立新
*******************************************************************/
class VINCECONTROL_EXPORT VinceControl
{
public:
//************************************
// Method: VinceControl
// FullName: VinceControl::VinceControl
// Access: public
// Returns:
// Qualifier:
// Parameter: ProTools 通讯协议 RS485 或者 RS232
//************************************
VinceControl(ProTools proto);
~VinceControl();
//************************************
// Method: serialconnect
// FullName: VinceControl::serialconnect
// Access: public
// Returns: bool
// Qualifier:
// Parameter: QString comname 串口名称
// Parameter: QString bandrate 串口波特率
//************************************
bool serialconnect(QString comname,QString bandrate);
//************************************
// Method: SetRS485ID
// FullName: VinceControl::SetRS485ID
// Access: public
// Returns: void
// Qualifier:
// Parameter: QString id RS485 id
//************************************
void SetRS485ID(QString id);
//************************************
// Method: 电机使能
// FullName: VinceControl::EnableMotro
// Access: public
// Returns: void
// Qualifier:
//************************************
void EnableMotro();
//************************************
// Method: 取消使能
// FullName: VinceControl::DisableMotro
// Access: public
// Returns: void
// Qualifier:
//************************************
void DisableMotro();
//************************************
// Method: SendCommandtoSerial
// FullName: VinceControl::SendCommandtoSerial
// Access: public
// Returns: void
// Qualifier:
// Parameter: QString str 命令 不包含id
//************************************
void SendCommandtoSerial(QString str);
//************************************
// Method: MoveSetDistance 电机左移/右移 一定数量(不是距离)
// FullName: VinceControl::MoveSetDistance
// Access: public
// Returns: void
// Qualifier:
// Parameter: long distance
//************************************
void MoveSetDistance(long distance);
//************************************
// Method: MoveModar 电机左移/右移 direction是方向
// FullName: VinceControl::MoveModar
// Access: public
// Returns: void
// Qualifier:
// Parameter: bool direction 方向
//************************************
void MoveMotar(bool direction);
//************************************
// Method: SettingSpeed 设置速度
// FullName: VinceControl::SettingSpeed
// Access: public
// Returns: void
// Qualifier:
// Parameter: unsigned long Speed 速度 无方向
//************************************
void SettingSpeed(unsigned long Speed);
//************************************
// Method: MovetoZero 归零
// FullName: VinceControl::MovetoZero
// Access: public
// Returns: void
// Qualifier:
//************************************
void MovetoZero();
//************************************
// Method: GetLocationNow 获取当前至0点位置
// FullName: VinceControl::GetLocationNow
// Access: public
// Returns: long 位置
// Qualifier:
//************************************
long GetLocationNow();
//************************************
// Method: MoveToLocation 移动到某位置据0点
// FullName: VinceControl::MoveToLocation
// Access: public
// Returns: void
// Qualifier:
// Parameter: long Location 距离零点的位置
//************************************
void MoveToLocation(long Location);
//************************************
// Method: SettingUpandDownSpeed 设置加减速度
// FullName: VinceControl::SettingUpandDownSpeed
// Access: public
// Returns: void
// Qualifier:
// Parameter: int addspeed 加速度
// Parameter: int downspeed 减速度
//************************************
void SettingUpandDownSpeed(int addspeed, int downspeed);
private:
QSerialPort *serial;
bool IsMotorInit;
ProTools protools;
QString RS485ID;
unsigned long speed;
};
#endif // VINCECONTROL_H