2023-12-02 11:27:25 +08:00
|
|
|
#include "prot/prot_cmdline.h"
|
|
|
|
#include "base/mycfg.h"
|
|
|
|
#include "QNetworkConfigurationManager"
|
|
|
|
#include "QTimer"
|
|
|
|
#include "QtNetwork"
|
2023-12-04 18:15:37 +08:00
|
|
|
#include "prot/prot_slave.h"
|
|
|
|
#include "prot_cmd/cmd_slave.h"
|
|
|
|
#include "QFile"
|
|
|
|
#include "base/base.h"
|
2023-12-02 11:27:25 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 获取设备基本信息
|
|
|
|
static void whos(QList<myarray> args)
|
|
|
|
{
|
|
|
|
QString out;
|
|
|
|
QString name = "local_id:%1,name:%2";
|
|
|
|
QString hostName = QHostInfo::localHostName();
|
|
|
|
command *c=command_start();
|
|
|
|
mycfg *cfg_=syscfg();
|
|
|
|
name = name.arg(cfg_->local_id).arg(hostName);
|
|
|
|
out.append(name + "\n");
|
|
|
|
out.append("builed time:" + cfg_->build_date + "\n");
|
|
|
|
QList<QNetworkInterface> network = QNetworkInterface::allInterfaces();
|
|
|
|
foreach (QNetworkInterface net, network)
|
|
|
|
{
|
|
|
|
QString str = "net:%1";
|
|
|
|
QString netName = net.humanReadableName();
|
|
|
|
str = str.arg(netName);
|
|
|
|
out.append(str + "\n");
|
|
|
|
QList<QNetworkAddressEntry> list = net.addressEntries(); // 获取IP地址与子掩码等
|
|
|
|
foreach (QNetworkAddressEntry address, list)
|
|
|
|
{
|
|
|
|
QString str = "ip:%1";
|
|
|
|
if (address.ip().protocol() == QAbstractSocket::IPv4Protocol) // 获取IPv4的地址
|
|
|
|
{
|
|
|
|
out.append(str.arg(address.ip().toString()) + "\n");
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
out = "ack:1," + out;
|
|
|
|
c->send(out.toLocal8Bit());
|
|
|
|
}
|
|
|
|
|
|
|
|
cmdline_export(whos, whos, print device base info.);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2023-12-04 18:15:37 +08:00
|
|
|
|
|
|
|
// mcu 相关
|
|
|
|
static void mcu_cmdlines(QList<myarray> args)
|
|
|
|
{
|
|
|
|
command *c=command_start();
|
|
|
|
if(args.size()<2){
|
|
|
|
c->send("cmd len too less.");
|
|
|
|
return ;
|
|
|
|
}
|
|
|
|
if((args.size()>=4)&&(args[1]=="updata")){
|
|
|
|
QList<int> addrs=str_to_nums<int>(args[2],',');
|
|
|
|
HandleBoardCast *b=new boardcast_updata();
|
|
|
|
prot_slave *slave=protSlave();
|
|
|
|
mycfg *cfg_=syscfg();
|
|
|
|
bool ack=slave->set_boardcast_handle(addrs,b);
|
|
|
|
if(ack==false){
|
|
|
|
qWarning("handle is busy.");
|
|
|
|
}else{
|
|
|
|
// connect(b,&HandleBoardCast::end_signal,nullptr,[=](int addr,int ack, myarray data){
|
|
|
|
// if(ack==0)
|
|
|
|
// c->send("slave updata success.");
|
|
|
|
// else
|
|
|
|
// c->send("slave updata failed.");
|
|
|
|
// });
|
|
|
|
QFile file;
|
|
|
|
file.setFileName(args[3]);
|
|
|
|
if(file.open(QIODevice::ReadOnly)){
|
|
|
|
myarray data=file.readAll();
|
|
|
|
b->start(data);
|
|
|
|
file.close();
|
|
|
|
}else{
|
|
|
|
qWarning("open file failed.");
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
cmdline_export(mcu, mcu_cmdlines, mcu cmdlines` input [mcu help] to detail.);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|