/****************************************************** * 文件名 : 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 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