Files
vince/vincecontrol.h

256 lines
8.1 KiB
C
Raw Normal View History

/******************************************************
2020-08-11 18:02:24 +08:00
* : vincecontrol.h
* :
* :
* : xin
* : renlixin@iris-rs.cn
* : 2020-8-5
********************************************************
* *
* _ooOoo_ *
* o8888888o *
* 88" . "88 *
* (| -_- |) *
* O\ = /O *
* ____/`---'\____ *
* .' \\| |// `. *
* / \\||| : |||// \ *
* / _||||| -:- |||||- \ *
* | | \\\ - /// | | *
* | \_| ''\---/'' | | *
* \ .-\__ `-` ___/-. / *
* ___`. .' /--.--\ `. . __ *
* ."" '< `.___\_<|>_/___.' >'"". *
* | | : `- \`.;`\ _ /`;.`/ - ` : | | *
* \ \ `-. \_ __\ /__ _/ .-` / / *
* ======`-.____`-.___\_____/___.-`____.-'====== *
* `=---=' *
* ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ *
2020-08-11 18:02:24 +08:00
* *
* *
********************************************************/
2020-08-05 17:04:25 +08:00
#ifndef VINCECONTROL_H
#define VINCECONTROL_H
#ifdef VINCECONTROL_LIB
# define VINCECONTROL_EXPORT Q_DECL_EXPORT
#else
# define VINCECONTROL_EXPORT Q_DECL_IMPORT
#endif
#define LOGOUT
2020-08-05 17:04:25 +08:00
#include "vincecontrol_global.h"
2020-08-05 17:33:45 +08:00
#include "QString"
#include "QStringList"
#include "QList"
#include <QObject>
#include <QSerialPort>
#include <QTcpServer> //监听套接字
#include <QTcpSocket> //通信套接字
#include "QByteArray"
enum ProTools
{
RS232 = 0,
RS485 = 1,
NETTCP=2
};
/********************************************************************
2020-08-11 18:02:24 +08:00
*
* 使
* 1 Vince规定的
* 2485 id 0
* 3) serialconnect
* 4使
* 2020-8-5
*******************************************************************/
class VINCECONTROL_EXPORT VinceControl:public QObject
2020-08-05 17:04:25 +08:00
{
Q_OBJECT
2020-08-05 17:04:25 +08:00
public:
//************************************
// Method: VinceControl
// FullName: VinceControl::VinceControl
// Access: public
// Returns:
// Qualifier:
2020-08-11 18:02:24 +08:00
// Parameter: ProTools 通讯协议 RS485 或者 RS232
//************************************
VinceControl(ProTools proto);
//************************************
// Method: VinceControl //走网络协议 需要两个参数 第一个为NETTCP 第二个为端口 6000或者6001
// FullName: VinceControl::VinceControl
// Access: public
// Returns:
// Qualifier:
// Parameter: ProTools proto
// Parameter: int port
//************************************
VinceControl(ProTools proto,int port);
2020-08-05 17:04:25 +08:00
~VinceControl();
//************************************
// Method: serialconnect
// FullName: VinceControl::serialconnect
// Access: public
// Returns: bool
// Qualifier:
2020-08-11 18:02:24 +08:00
// Parameter: QString comname 串口名称
// Parameter: QString bandrate 串口波特率
//************************************
bool serialconnect(QString comname,QString bandrate);
//************************************
// Method: Handshacke
// FullName: VinceControl::Handshacke
// Access: public
// Returns: void
// Qualifier:
//************************************
void Handshacke(QString motorid = "non");
//************************************
// Method: SetRS485ID
// FullName: VinceControl::SetRS485ID
// Access: public
// Returns: void
// Qualifier:
// Parameter: QString id RS485 id
//************************************
void SetRS485ID(QString id);
//************************************
2020-08-11 18:02:24 +08:00
// Method: 电机使能
// FullName: VinceControl::EnableMotro
// Access: public
// Returns: void
// Qualifier:
//************************************
void EnableMotro(QString motornetid="non");
//************************************
2020-08-11 18:02:24 +08:00
// Method: 取消使能
// FullName: VinceControl::DisableMotro
// Access: public
// Returns: void
// Qualifier:
//************************************
void DisableMotro(QString motornetid = "non");
//************************************
// Method: SendCommandtoSerial
// FullName: VinceControl::SendCommandtoSerial
// Access: public
// Returns: void
// Qualifier:
// Parameter: QString str 命令 不包含id 如果是nettcp 默认想第一个发送
//************************************
void SendCommandtoMotor(QString str);
//************************************
// Method: SendCommandtoMotor //两个参数 仅网络协议 第一个为命令 第二个为马达
// FullName: VinceControl::SendCommandtoMotor
// Access: public
// Returns: void
// Qualifier:
// Parameter: QString str
// Parameter: int motorid
//************************************
void SendCommandtoMotor(QString str,QString modor);
//************************************
2020-08-11 18:02:24 +08:00
// Method: MoveSetDistance 电机左移/右移 一定数量(不是距离)
// FullName: VinceControl::MoveSetDistance
// Access: public
// Returns: void
// Qualifier:
// Parameter: long distance
//************************************
void MoveSetDistance(long distance, QString motornetid = "non");
//************************************
2020-08-11 18:02:24 +08:00
// Method: MoveModar 电机左移/右移 direction是方向
// FullName: VinceControl::MoveModar
// Access: public
// Returns: void
// Qualifier:
2020-08-11 18:02:24 +08:00
// Parameter: bool direction 方向
//************************************
void MoveMotar(bool direction, QString motornetid = "non");
//************************************
2020-08-11 18:02:24 +08:00
// Method: SettingSpeed 设置速度
// FullName: VinceControl::SettingSpeed
// Access: public
// Returns: void
// Qualifier:
// Parameter: unsigned long Speed 速度 正值 无方向
//************************************
void SettingSpeed(unsigned long Speed, QString motornetid = "non");
//************************************
2020-08-11 18:02:24 +08:00
// Method: MovetoZero 归零
// FullName: VinceControl::MovetoZero
// Access: public
// Returns: void
// Qualifier:
//************************************
void MovetoZero(QString motornetid = "non");
//************************************
2020-08-11 18:02:24 +08:00
// Method: GetLocationNow 获取当前至0点位置
// FullName: VinceControl::GetLocationNow
// Access: public
2020-08-11 18:02:24 +08:00
// Returns: long 位置
// Qualifier:
//************************************
long GetLocationNow();
//************************************
2020-08-11 18:02:24 +08:00
// Method: MoveToLocation 移动到某位置据0点
// FullName: VinceControl::MoveToLocation
// Access: public
// Returns: void
// Qualifier:
2020-08-11 18:02:24 +08:00
// Parameter: long Location 距离零点的位置
//************************************
void MoveToLocation(long Location);
//************************************
2020-08-11 18:02:24 +08:00
// Method: SettingUpandDownSpeed 设置加减速度
// FullName: VinceControl::SettingUpandDownSpeed
// Access: public
// Returns: void
// Qualifier:
2020-08-11 18:02:24 +08:00
// Parameter: int addspeed 加速度
// Parameter: int downspeed 减速度
//************************************
void SettingUpandDownSpeed(int addspeed, int downspeed);
void StopMotormove(QString motornetid = "non");
QStringList Motorlist;
signals:
void SendLogToCallClass(QString str);
public slots :
void onNewTcpClinetConnet();
void onReciveFromClinet();
void onClinetDisConnet();
2020-08-05 17:04:25 +08:00
private:
QSerialPort *serial;
bool IsMotorInit;
ProTools protools;
QString RS485ID;
unsigned long speed;
QTcpServer *tcpServer; //定义监听套接字tcpServer
QList<QTcpSocket *>tcpSocket; //定义通信套接字tcpSocke
void SendLog(QString str);
QList<bool> isSettingSpeedlist;
QList<int> Speedlist;
bool SpeedisSet;
int Speednow;
//
void SettingSpeedByThis(long Speed, QString motornetid = "non");
2020-08-05 17:04:25 +08:00
};
#endif // VINCECONTROL_H