实例介绍
【实例截图】
【核心代码】
#include "test.h" #include<QUdpSocket> //unsigned char buf[1024]; //QByteArray arrayB; #include<QTableWidgetItem> #include <QColumnView> test::test(QWidget *parent) : QWidget(parent) { ui.setupUi(this); m_blocalSend=false; ssocket = new QUdpSocket(); ssocket->bind(QHostAddress::AnyIPv4,65001,(QAbstractSocket::BindMode)1|(QAbstractSocket::BindMode)0x04); ssocket->joinMulticastGroup(QHostAddress("224.1.1.1") ); connect(ssocket,SIGNAL(readyRead()),this,SLOT(read_data())); connect(ui.pushButton,SIGNAL(pressed()),this,SLOT(on_pushButton_clicked ())); connect(ui.pushButton_2,SIGNAL(clicked(bool)),this,SLOT(on_pushButton_2_clicked ())); //connect(ui.pushButton_3,SIGNAL(clicked(bool)),this,SLOT(on_pushButton_3_clicked ())); //connect(ui.pushButton_4,SIGNAL(clicked(bool)),this,SLOT(on_pushButton_4_clicked ())); ui.tableWidget->setColumnCount(24); ui.tableWidget->setRowCount(10); ui.tableWidget->verticalHeader()->setVisible(false); // 隐藏水平header ui.tableWidget->setSelectionBehavior(QAbstractItemView::SelectItems); // 单个选中 ui.tableWidget->setSelectionMode(QAbstractItemView::ExtendedSelection); // 可以选中多个 ui.tableWidget->verticalHeader()->setDefaultSectionSize(20); ui.tableWidget->horizontalHeader()->setDefaultSectionSize(100); ui.tableWidget->setHorizontalHeaderLabels(QStringList() << QString::fromLocal8Bit("载荷动作") << QString::fromLocal8Bit("待机命令") << QString::fromLocal8Bit("分辨率") << QString::fromLocal8Bit("工作模式") << QString::fromLocal8Bit("指令编码") << QString::fromLocal8Bit("逻辑块号") << QString::fromLocal8Bit("工作频点") << QString::fromLocal8Bit("雷达编号") << QString::fromLocal8Bit("作用距离") << QString::fromLocal8Bit("目标经度") << QString::fromLocal8Bit("目标纬度") << QString::fromLocal8Bit("目标高度") << QString::fromLocal8Bit("扫描起始角度") << QString::fromLocal8Bit("扫描起始角度") << QString::fromLocal8Bit("CFAR门限") << QString::fromLocal8Bit("DBF截位") << QString::fromLocal8Bit("扫描步进") << QString::fromLocal8Bit("回访率") << QString::fromLocal8Bit("捷变频") << QString::fromLocal8Bit("变换检测标志") << QString::fromLocal8Bit("通道1M/AGC码") << QString::fromLocal8Bit("通道2M/AGC码") << QString::fromLocal8Bit("通道3M/AGC码") << QString::fromLocal8Bit("通道4M/AGC码")); /* ui.tableWidget_2->setColumnCount(7); ui.tableWidget_2->setRowCount(10); ui.tableWidget_2->verticalHeader()->setVisible(false); // 隐藏水平header ui.tableWidget_2->setSelectionBehavior(QAbstractItemView::SelectItems); // 单个选中 ui.tableWidget_2->setSelectionMode(QAbstractItemView::ExtendedSelection); // 可以选中多个 ui.tableWidget_2->verticalHeader()->setDefaultSectionSize(20); ui.tableWidget_2->horizontalHeader()->setDefaultSectionSize(100); ui.tableWidget_2->setHorizontalHeaderLabels(QStringList() << QString::fromLocal8Bit("载荷控制") << QString::fromLocal8Bit("指令编码") << QString::fromLocal8Bit("逻辑块号") << QString::fromLocal8Bit("参数设置") << QString::fromLocal8Bit("工作模式") << QString::fromLocal8Bit("激光测距") << QString::fromLocal8Bit("跟踪照射") );*/ //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ui.tableWidget_3->setColumnCount(6); ui.tableWidget_3->setRowCount(3); ui.tableWidget_3->verticalHeader()->setVisible(false); // 隐藏水平header ui.tableWidget_3->setSelectionBehavior(QAbstractItemView::SelectItems); // 单个选中 ui.tableWidget_3->setSelectionMode(QAbstractItemView::ExtendedSelection); // 可以选中多个 ui.tableWidget_3->verticalHeader()->setDefaultSectionSize(20); ui.tableWidget_3->horizontalHeader()->setDefaultSectionSize(100); ui.tableWidget_3->setHorizontalHeaderLabels(QStringList() << QString::fromLocal8Bit("主命令方式") << QString::fromLocal8Bit("初始化命令") << QString::fromLocal8Bit("工作模式命令") << QString::fromLocal8Bit("工作频点") << QString::fromLocal8Bit("目标参数") << QString::fromLocal8Bit("分辨率") ); return; QTableWidgetItem *item_max10 = new QTableWidgetItem();//第一行,第1列, item_max10->setText(QString::fromLocal8Bit("")); ui.tableWidget_3->setItem(0, 0, item_max10);//第一行,第1列, QTableWidgetItem *item_max11 = new QTableWidgetItem();//第一行,第1列, item_max11->setText(QString::fromLocal8Bit("")); ui.tableWidget_3->setItem(0, 1, item_max11);//第一行,第1列, } test::~test() { } void test::read_data() { if(m_blocalSend) { m_blocalSend=false; QByteArray sar; sar.resize(ssocket->bytesAvailable());//根据可读数据来设置空间大小 ssocket->readDatagram(sar.data(),sar.size()); //读取数据 QString str(sar.data()); return; } /**/ QHostAddress addr; quint16 port; QByteArray arrayA; arrayA.resize(ssocket->bytesAvailable()); ssocket->readDatagram(arrayA.data(),arrayA.size(),&addr,&port ); QString ss=addr.toString(); ui.textEdit->setText(arrayA.toHex()); //memcpy(arrayB.data(),arrayA.data(),strlen(arrayA)); ///////////////////////////////////////////////////////////////////////////////////////////////////////////// QTableWidgetItem *item_max = new QTableWidgetItem();//第一行,第一列,载荷动作 if(arrayA.data()[4]==0) item_max->setText(QString::fromLocal8Bit("初始化")); if(arrayA.data()[4]==1) item_max->setText(QString::fromLocal8Bit("启动自检")); if(arrayA.data()[4]==2) item_max->setText(QString::fromLocal8Bit("维护自检")); if(arrayA.data()[4]==3) item_max->setText(QString::fromLocal8Bit("加电")); if(arrayA.data()[4]==4) item_max->setText(QString::fromLocal8Bit("断电")); if(arrayA.data()[4]==5) item_max->setText(QString::fromLocal8Bit("复位")); if(arrayA.data()[4]==6) item_max->setText(QString::fromLocal8Bit("待机")); if(arrayA.data()[4]==8) item_max->setText(QString::fromLocal8Bit("软件版本查询")); if(arrayA.data()[4]==9) item_max->setText(QString::fromLocal8Bit("MFL请求")); if(arrayA.data()[4]==0x11) item_max->setText(QString::fromLocal8Bit("工作状态请求")); ui.tableWidget->setItem(0, 0, item_max);//第一行,第一列,载荷动作 ///////////////////////////////////////////////////////////////////////////////////////////////////////////// QTableWidgetItem *item_max12 = new QTableWidgetItem();//第一行,第2列,待机命令 if( arrayA.data()[6]==(char)0x80 ) item_max12->setText(QString::fromLocal8Bit("x波段左阵面待机")); if( arrayA.data()[6]==(char)0x40 ) item_max12->setText(QString::fromLocal8Bit("X波段右阵面待机")); if( arrayA.data()[6]==(char)0x20 ) item_max12->setText(QString::fromLocal8Bit("L波段左阵面待机")); if( arrayA.data()[6]==(char)0x10 ) item_max12->setText(QString::fromLocal8Bit("L波段右阵面待机")); if( arrayA.data()[6]==(char)0x08 ) item_max12->setText(QString::fromLocal8Bit("p波段左阵面待机")); if( arrayA.data()[6]==(char)0x04 ) item_max12->setText(QString::fromLocal8Bit("p波段右阵面待机")); //SAR_1[6]=0x40;//x波段右阵面待机 //SAR_1[6]=0x20;//l波段左阵面待机 //SAR_1[6]=0x10;//l波段右阵面待机 //SAR_1[6]=0x08;//p波段左阵面待机 //SAR_1[6]=0x04;//p波段右阵面待机 ui.tableWidget->setItem(0, 1, item_max12);//第一行,第2列,待机命令 ///////////////////////////////////////////////////////////////////////////////////////////////////////////// QTableWidgetItem *item_max13 = new QTableWidgetItem();//第一行,第3列,分辨率 item_max13->setText(QString::fromLocal8Bit("(0,1)")); ui.tableWidget->setItem(0, 2, item_max13);//第一行,第3列,分辨率 ///////////////////////////////////////////////////////////////////////////////////////////////////////////// QTableWidgetItem *item_max14 = new QTableWidgetItem();//第一行,第4列, 工作模式 if( arrayA.data()[8]==0x41 ) item_max14->setText(QString::fromLocal8Bit("广域地面动目标指示(GMTI)")); if( arrayA.data()[8]==0x42 ) item_max14->setText(QString::fromLocal8Bit("同时合成孔径成像/地面动目标指示(SAR/GMTI)")); if( arrayA.data()[8]==0x43 ) item_max14->setText(QString::fromLocal8Bit("(条带合成孔径成像(条带SAR)")); if( arrayA.data()[8]==0x44 ) item_max14->setText(QString::fromLocal8Bit("聚束合成孔径成像(聚束SAR)")); if( arrayA.data()[8]==0x45 ) item_max14->setText(QString::fromLocal8Bit("空中动目标指示(AMTI)")); if( arrayA.data()[8]==0x46 ) item_max14->setText(QString::fromLocal8Bit("无效工作模式")); ui.tableWidget->setItem(0, 3, item_max14);//第一行,第4列, 工作模式 ///////////////////////////////////////////////////////////////////////////////////////////////////////////// QTableWidgetItem *item_max15 = new QTableWidgetItem();//第一行,第5列, 指令编码 if( arrayA.data()[8]==0x41 ) item_max15->setText(QString::fromLocal8Bit("0x41 ")); if( arrayA.data()[8]==0x42 ) item_max15->setText(QString::fromLocal8Bit("0x42 ")); if( arrayA.data()[8]==0x43 ) item_max15->setText(QString::fromLocal8Bit("0x43 ")); if( arrayA.data()[8]==0x44 ) item_max15->setText(QString::fromLocal8Bit("0x44 ")); if( arrayA.data()[8]==0x45 ) item_max15->setText(QString::fromLocal8Bit("0x45 ")); if( arrayA.data()[8]==0x46 ) item_max15->setText(QString::fromLocal8Bit("0x46 ")); ui.tableWidget->setItem(0, 4, item_max15);//第一行,第5列, 指令编码 ///////////////////////////////////////////////////////////////////////////////////////////////////////////// } void test::on_pushButton_clicked() { QString proName1 = ui.tableWidget_3->item(0, 0)->text();//主方式命令反馈 QString proName2 = ui.tableWidget_3->item(0, 1)->text(); QString proName3 = ui.tableWidget_3->item(0, 2)->text();//工作模式 QString proName4 = ui.tableWidget_3->item(0, 3)->text(); QString proName5 = ui.tableWidget_3->item(0, 4)->text(); QString proName6 = ui.tableWidget_3->item(0, 5)->text(); QByteArray SAR_1; SAR_1.resize(6); for(int i=0;i<6;i ) { SAR_1.data()[i] = 0x1F; } if(proName1=="0") SAR_1.data()[0] = 0x00;//初始化 if(proName1=="1") SAR_1.data()[0] = 0x01;//启动自建 if(proName1=="2") SAR_1.data()[0] = 0x02;//维护自检 if(proName1=="3") SAR_1.data()[0] = 0x03;// 加电 if(proName1=="4") SAR_1.data()[0] = 0x04;// 断电 if(proName1=="5") SAR_1.data()[0] = 0x05;// 复位 if(proName1=="6") SAR_1.data()[0] = 0x06;// 待机 if(proName1=="7") SAR_1.data()[0] = 0x07;// 工作及指令 if(proName1=="8") SAR_1.data()[0] = 0x08;//软件版本查询 if(proName1=="9") SAR_1.data()[0] = 0x09;// MFL请求 if(proName1=="11") SAR_1.data()[0] = 0x11;// 工作状态请求 if(proName2=="0") SAR_1.data()[1] = 0x00;// 初始化 //工作模式 if(proName3=="0") SAR_1.data()[2] = 0x00; if(proName3=="1") SAR_1.data()[2] = 0x01; if(proName3=="2") SAR_1.data()[2] = 0x02; if(proName3=="3") SAR_1.data()[2] = 0x03; if(proName3=="4") SAR_1.data()[2] = 0x04; if(proName3=="5") SAR_1.data()[2] = 0x05; if(proName3=="6") SAR_1.data()[2] = 0x06; if(proName4=="0") SAR_1.data()[3] = 0x00;// 無應答 if(proName5=="0") SAR_1.data()[4] = 0x00;// 無應答 if(proName6=="0") SAR_1.data()[5] = 0x00;//0.15 if(proName6=="1") SAR_1.data()[5] = 0x01;//0.3 if(proName6=="2") SAR_1.data()[5] = 0x02;//0.5 if(proName6=="3") SAR_1.data()[5] = 0x03;//1 if(proName6=="4") SAR_1.data()[5] = 0x04;//3 if(proName6=="5") SAR_1.data()[5] = 0x05;//5 if(proName6=="6") SAR_1.data()[5] = 0x06;//10 ssocket->writeDatagram(SAR_1,QHostAddress("224.1.1.1"),65001 ); m_blocalSend=true; } void test::on_pushButton_2_clicked() { QTableWidgetItem *item_max = new QTableWidgetItem(); item_max->setText(QString("123456")); QTableWidgetItem *item_max2 = new QTableWidgetItem(); item_max2->setText(QString("789789789")); QTableWidgetItem *item_max3 = new QTableWidgetItem(); item_max3->setText(QString("5555")); QTableWidgetItem *item_max4 = new QTableWidgetItem(); item_max4->setText(QString("5555")); QTableWidgetItem *item_max5 = new QTableWidgetItem(); item_max5->setText(QString("5555")); QTableWidgetItem *item_max6 = new QTableWidgetItem(); item_max6->setText(QString("5555")); QTableWidgetItem *item_max7 = new QTableWidgetItem(); item_max7->setText(QString("5555")); ui.tableWidget_2->setItem(0, 0, item_max); ui.tableWidget_2->setItem(0, 1, item_max2); ui.tableWidget_2->setItem(0, 2, item_max3); ui.tableWidget_2->setItem(0, 3, item_max4); ui.tableWidget_2->setItem(0, 4, item_max5); ui.tableWidget_2->setItem(0, 5, item_max6); ui.tableWidget_2->setItem(0, 6, item_max7); /*QString str = ui.lineEdit->text(); QString str1 = ui.lineEdit_2->text(); QString str2 = ui.lineEdit_3->text(); QString str3 = ui.lineEdit_4->text(); QString str4 = ui.lineEdit_5->text(); QString str5 = ui.lineEdit_6->text(); QString strsend=str str1 str2 str3 str4 str5; ssocket->writeDatagram(strsend.toLatin1(),QHostAddress("224.1.1.1"),65001 );*/ } void test::on_pushButton_3_clicked() { } void test::on_pushButton_4_clicked() { } /* QTableWidgetItem *item_max = new QTableWidgetItem(); item_max->setText(QString("11111")); QTableWidgetItem *item_max2 = new QTableWidgetItem(); item_max2->setText(QString("22222")); QTableWidgetItem *item_max3 = new QTableWidgetItem(); item_max3->setText(QString("33333")); QTableWidgetItem *item_max4 = new QTableWidgetItem(); item_max4->setText(QString("44444")); QTableWidgetItem *item_max5 = new QTableWidgetItem(); item_max5->setText(QString("5555")); QTableWidgetItem *item_max6 = new QTableWidgetItem(); item_max6->setText(QString("6666")); QTableWidgetItem *item_max7 = new QTableWidgetItem(); item_max7->setText(QString("5555")); QTableWidgetItem *item_max8 = new QTableWidgetItem(); item_max8->setText(QString("5555")); QTableWidgetItem *item_max9 = new QTableWidgetItem(); item_max9->setText(QString("5555")); QTableWidgetItem *item_max10 = new QTableWidgetItem(); item_max10->setText(QString("5555")); QTableWidgetItem *item_max11 = new QTableWidgetItem(); item_max11->setText(QString("5555")); QTableWidgetItem *item_max12 = new QTableWidgetItem(); item_max12->setText(QString("5555")); QTableWidgetItem *item_max13 = new QTableWidgetItem(); item_max13->setText(QString("5555")); QTableWidgetItem *item_max14 = new QTableWidgetItem(); item_max14->setText(QString("5555")); QTableWidgetItem *item_max15 = new QTableWidgetItem(); item_max15->setText(QString("5555")); QTableWidgetItem *item_max16 = new QTableWidgetItem(); item_max16->setText(QString("5555")); QTableWidgetItem *item_max17 = new QTableWidgetItem(); item_max17->setText(QString("5555")); QTableWidgetItem *item_max18 = new QTableWidgetItem(); item_max18->setText(QString("5555")); QTableWidgetItem *item_max19 = new QTableWidgetItem(); item_max19->setText(QString("5555")); QTableWidgetItem *item_max20 = new QTableWidgetItem(); item_max20->setText(QString("5555")); QTableWidgetItem *item_max21 = new QTableWidgetItem(); item_max21->setText(QString("5555")); QTableWidgetItem *item_max22 = new QTableWidgetItem(); item_max22->setText(QString("6666")); QTableWidgetItem *item_max23 = new QTableWidgetItem(); item_max23->setText(QString("7777")); QTableWidgetItem *item_max24 = new QTableWidgetItem(); item_max24->setText(QString("8888")); ui.tableWidget->setItem(0, 0, item_max); ui.tableWidget->setItem(0, 1, item_max2); ui.tableWidget->setItem(0, 2, item_max3); ui.tableWidget->setItem(0, 3, item_max4); ui.tableWidget->setItem(0, 4, item_max5); ui.tableWidget->setItem(0, 5, item_max6); ui.tableWidget->setItem(0, 6, item_max7); ui.tableWidget->setItem(0, 7, item_max8); ui.tableWidget->setItem(0, 8, item_max9); ui.tableWidget->setItem(0, 9, item_max10); ui.tableWidget->setItem(0, 10, item_max11); ui.tableWidget->setItem(0, 11, item_max12); ui.tableWidget->setItem(0, 12, item_max13); ui.tableWidget->setItem(0, 13, item_max14); ui.tableWidget->setItem(0, 14, item_max15); ui.tableWidget->setItem(0, 15, item_max16); ui.tableWidget->setItem(0, 16, item_max17); ui.tableWidget->setItem(0, 17, item_max18); ui.tableWidget->setItem(0, 18, item_max19); ui.tableWidget->setItem(0, 19, item_max20); ui.tableWidget->setItem(0, 20, item_max21); ui.tableWidget->setItem(0, 21, item_max22); ui.tableWidget->setItem(0, 22, item_max23); ui.tableWidget->setItem(0, 23, item_max24); */
标签: UDP
小贴士
感谢您为本站写下的评论,您的评论对其它用户来说具有重要的参考价值,所以请认真填写。
- 类似“顶”、“沙发”之类没有营养的文字,对勤劳贡献的楼主来说是令人沮丧的反馈信息。
- 相信您也不想看到一排文字/表情墙,所以请不要反馈意义不大的重复字符,也请尽量不要纯表情的回复。
- 提问之前请再仔细看一遍楼主的说明,或许是您遗漏了。
- 请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。
关于好例子网
本站旨在为广大IT学习爱好者提供一个非营利性互相学习交流分享平台。本站所有资源都可以被免费获取学习研究。本站资源来自网友分享,对搜索内容的合法性不具有预见性、识别性、控制性,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明
网友评论
我要评论