加入通讯协议 初始化 命令发送 使能 停止使能
This commit is contained in:
@ -1,16 +1,77 @@
|
||||
#include "vincecontrol.h"
|
||||
|
||||
VinceControl::VinceControl()
|
||||
#include"QSerialPortInfo"
|
||||
VinceControl::VinceControl(ProTools proto)
|
||||
{
|
||||
|
||||
protools = proto;
|
||||
IsMotorInit = false;
|
||||
RS485ID = "0";
|
||||
}
|
||||
|
||||
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);
|
||||
|
||||
}
|
||||
}
|
||||
|
111
vincecontrol.h
111
vincecontrol.h
@ -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
|
||||
#define VINCECONTROL_H
|
||||
|
||||
#include "vincecontrol_global.h"
|
||||
#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
|
||||
{
|
||||
public:
|
||||
VinceControl();
|
||||
//************************************
|
||||
// Method: VinceControl
|
||||
// FullName: VinceControl::VinceControl
|
||||
// Access: public
|
||||
// Returns:
|
||||
// Qualifier:
|
||||
// Parameter: ProTools ͨѶЭ<D1B6><D0AD> RS485 <20><><EFBFBD><EFBFBD> RS232
|
||||
//************************************
|
||||
VinceControl(ProTools proto);
|
||||
~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:
|
||||
QSerialPort *serial;
|
||||
|
||||
bool IsMotorInit;
|
||||
ProTools protools;
|
||||
QString RS485ID;
|
||||
|
||||
};
|
||||
|
||||
|
Reference in New Issue
Block a user