加入通讯协议 初始化 命令发送 使能 停止使能

This commit is contained in:
xin
2020-08-05 18:15:32 +08:00
parent 93cd9f1af2
commit 657493ba8e
2 changed files with 173 additions and 9 deletions

View File

@ -1,16 +1,77 @@
#include "vincecontrol.h" #include "vincecontrol.h"
#include"QSerialPortInfo"
VinceControl::VinceControl() VinceControl::VinceControl(ProTools proto)
{ {
protools = proto;
IsMotorInit = false;
RS485ID = "0";
} }
VinceControl::~VinceControl() VinceControl::~VinceControl()
{ {
serial->close();
IsMotorInit = false;
} }
void VinceControl::connect(QString comname, QString bandrate) bool VinceControl::serialconnect(QString comname, QString bandrate)
{ {
QSerialPortInfo info;
QList<QSerialPortInfo> infos = QSerialPortInfo::availablePorts();
int i = 0;
foreach(info, infos) {
if (info.portName() == comname) break;
i++;
}
if (i != infos.size())
{
serial->close();
serial->setPort(info);
bool aa = serial->open(QIODevice::ReadWrite);
qint32 b = bandrate.toInt();
serial->setBaudRate(b);
IsMotorInit = true;
}
else
{
serial->close();
IsMotorInit = false;
}
}
void VinceControl::SetRS485ID(QString id)
{
RS485ID = id;
}
void VinceControl::EnableMotro()
{
QString str = "ena\n";
SendCommandtoSerial(str);
} }
void VinceControl::DisableMotro()
{
QString str = "off\n";
SendCommandtoSerial(str);
}
void VinceControl::SendCommandtoSerial(QString str)
{
if (protools == RS232)
{
QByteArray buf;
buf.append(str);
serial->write(buf);
}
else if(protools==RS485)
{
QString str2 = RS485ID + " " + str;
QByteArray buf;
buf.append(str2);
serial->write(buf);
}
}

View File

@ -1,17 +1,120 @@
/******************************************************
* <20>ļ<EFBFBD><C4BC><EFBFBD> : vincecontrol.h
* <20><><EFBFBD><EFBFBD> :
* <20><><EFBFBD><EFBFBD> :<3A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƴ<EFBFBD><C6B3><EFBFBD>
* <20><><EFBFBD><EFBFBD> : xin
* <20><><EFBFBD><EFBFBD> : renlixin@iris-rs.cn
* <20><><EFBFBD><EFBFBD> : 2020-8-5
********************************************************
* *
* _ooOoo_ *
* o8888888o *
* 88" . "88 *
* (| -_- |) *
* O\ = /O *
* ____/`---'\____ *
* .' \\| |// `. *
* / \\||| : |||// \ *
* / _||||| -:- |||||- \ *
* | | \\\ - /// | | *
* | \_| ''\---/'' | | *
* \ .-\__ `-` ___/-. / *
* ___`. .' /--.--\ `. . __ *
* ."" '< `.___\_<|>_/___.' >'"". *
* | | : `- \`.;`\ _ /`;.`/ - ` : | | *
* \ \ `-. \_ __\ /__ _/ .-` / / *
* ======`-.____`-.___\_____/___.-`____.-'====== *
* `=---=' *
* ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ *
* <20><><EFBFBD><EFBFBD><E6B1A3> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> *
* *
********************************************************/
#ifndef VINCECONTROL_H #ifndef VINCECONTROL_H
#define VINCECONTROL_H #define VINCECONTROL_H
#include "vincecontrol_global.h" #include "vincecontrol_global.h"
#include "QString" #include "QString"
#include <QSerialPort>
enum ProTools
{
RS232 = 0,
RS485 = 1
};
/********************************************************************
* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƴ<EFBFBD><C6B3><EFBFBD>
* ʹ<>ò<EFBFBD><C3B2><EFBFBD>
* 1<><31><EFBFBD><EFBFBD>ʼ<EFBFBD><CABC> <20><>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD>ͨѶЭ<D1B6>飨Vince<63><EFBFBD>ģ<EFBFBD><C4A3><EFBFBD>
* 2<><32><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>485 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>id Ĭ<><C4AC>Ϊ0
* 3) serialconnect <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* 4<><34>ʹ<EFBFBD><CAB9>
* 2020-8-5<><35><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
*******************************************************************/
class VINCECONTROL_EXPORT VinceControl class VINCECONTROL_EXPORT VinceControl
{ {
public: public:
VinceControl(); //************************************
// Method: VinceControl
// FullName: VinceControl::VinceControl
// Access: public
// Returns:
// Qualifier:
// Parameter: ProTools ͨѶЭ<D1B6><D0AD> RS485 <20><><EFBFBD><EFBFBD> RS232
//************************************
VinceControl(ProTools proto);
~VinceControl(); ~VinceControl();
void connect(QString comname,QString bandrate); //************************************
// Method: serialconnect
// FullName: VinceControl::serialconnect
// Access: public
// Returns: bool
// Qualifier:
// Parameter: QString comname <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// Parameter: QString bandrate <20><><EFBFBD>ڲ<EFBFBD><DAB2><EFBFBD><EFBFBD><EFBFBD>
//************************************
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: <20><><EFBFBD><EFBFBD>ʹ<EFBFBD><CAB9>
// FullName: VinceControl::EnableMotro
// Access: public
// Returns: void
// Qualifier:
//************************************
void EnableMotro();
//************************************
// Method: ȡ<><C8A1>ʹ<EFBFBD><CAB9>
// FullName: VinceControl::DisableMotro
// Access: public
// Returns: void
// Qualifier:
//************************************
void DisableMotro();
//************************************
// Method: SendCommandtoSerial
// FullName: VinceControl::SendCommandtoSerial
// Access: public
// Returns: void
// Qualifier:
// Parameter: QString str <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>id
//************************************
void SendCommandtoSerial(QString str);
private: private:
QSerialPort *serial;
bool IsMotorInit;
ProTools protools;
QString RS485ID;
}; };