• 锋锋++
    了解作者
  • C/C++
    开发工具
  • 15KB
    文件大小
  • rar
    文件格式
  • 0
    收藏次数
  • 10 积分
    下载积分
  • 8
    下载次数
  • 2019-05-06 13:55
    上传日期
实验箱开发智能家居系统的底层硬件树莓派源码
树莓派源码.rar
  • 树莓派源码
  • RaspDataServer.pro
    720B
  • devprotocol.h
    1.1KB
  • server.h
    624B
  • appprotocol.h
    699B
  • mserialport.cpp
    2.7KB
  • connection.cpp
    740B
  • mserialport.h
    699B
  • main.cpp
    183B
  • mainwindow.ui
    4.1KB
  • connection.h
    548B
  • server.cpp
    1.1KB
  • mainwindow.cpp
    16.2KB
  • mainwindow.h
    1.1KB
  • dataframethread.h
    1.3KB
  • dataframeproxy.cpp
    724B
  • devprotocol.cpp
    7KB
  • dataframeproxy.h
    611B
  • RaspDataServer.pro.user
    18.1KB
  • dataframethread.cpp
    1.4KB
  • appprotocol.cpp
    2.1KB
内容介绍
#include "mainwindow.h" #include "ui_mainwindow.h" #include <QDebug> #include <QSerialPortInfo> MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow) { ui->setupUi(this); sysTimer=new QTimer(this); connect(sysTimer,SIGNAL(timeout()),this,SLOT(onSysTimerSlots())); sysTimer->start(1000); myserial=new MSerialPort(this); connect(this,SIGNAL(modbusData(QByteArray)),myserial,SLOT(onSendHandle(QByteArray))); connect(myserial,SIGNAL(serialData(QByteArray)),this,SLOT(onDevtoAppHandle(QByteArray))); QList<QSerialPortInfo> list=QSerialPortInfo::availablePorts(); //获取串口 链表名称 if(list.isEmpty()) { ui->comboBox->addItem("no"); } for(int i=0;i<list.length();i++){ ui->comboBox->addItem(list.at(i).portName()); } QList<QHostAddress> addrList=QNetworkInterface::allAddresses(); foreach(QHostAddress address,addrList){ if(address.protocol()==QAbstractSocket::IPv4Protocol){ ui->addrComboBox->addItem(address.toString()); } } } MainWindow::~MainWindow() { delete ui; } void MainWindow::onSysTimerSlots() { ui->statusBar->showMessage(QDateTime::currentDateTime().toString("系统时间:yyyy-MM-dd hh:mm:ss AP ddd")); } void MainWindow::onDevtoAppHandle(QByteArray frame) { qDebug()<<"serial"<<frame.toHex(); if(frame.isEmpty()) return; devhard=new DevProtocol(this); apphard=new AppProtocol(this); DevProtocol devhard2=devhard->fromModbus(frame); qDebug()<<"special1"<<devhard2.getCmd(); qDebug()<<"special2"<<devhard2.getSlaveID(); qDebug()<<"special3"<<devhard2.getLength(); qDebug()<<"temperature_test"<<devhard2.getData(); qDebug()<<"temperature_test2"<<devhard2.getData().toHex(); if(devhard2.getCmd()==03){ int value; QByteArray v_arr; switch (devhard2.getChecknum()) { case 0x0010: apphard->setDevice(17); apphard->setCmd(0); v_arr = devhard2.getData(); value = v_arr[0]<<8|v_arr[1]; apphard->setData(value); break; case 0x0015: apphard->setDevice(18); apphard->setCmd(0); v_arr = devhard2.getData(); value = v_arr[0]<<8|v_arr[1]; apphard->setData(value); break; case 0x5000: apphard->setDevice(19); apphard->setCmd(0); v_arr = devhard2.getData(); value = v_arr[0]<<8|v_arr[1]; apphard->setData(value); break; case 0x0700: apphard->setDevice(20); apphard->setCmd(0); v_arr = devhard2.getData(); value = v_arr[0]<<8|v_arr[1]; apphard->setData(value); break; case 0x0200: apphard->setDevice(21); apphard->setCmd(0); v_arr = devhard2.getData(); value = v_arr[0]<<8|v_arr[1]; apphard->setData(value); break; case 0x0450: apphard->setDevice(22); apphard->setCmd(0); v_arr = devhard2.getData(); value = v_arr[0]<<8|v_arr[1]; apphard->setData(value); break; case 0x0400: apphard->setDevice(23); apphard->setCmd(0); v_arr = devhard2.getData(); value = v_arr[0]<<8|v_arr[1]; apphard->setData(value); break; case 0x0350: apphard->setDevice(24); apphard->setCmd(0); v_arr = devhard2.getData(); value = v_arr[0]<<8|v_arr[1]; apphard->setData(value); break; case 0x0300: apphard->setDevice(25); apphard->setCmd(0); v_arr = devhard2.getData(); value = v_arr[0]<<8|v_arr[1]; apphard->setData(value); break; default: break; } } QByteArray temphard=apphard->toXmlFormat(); server->sendMessage(temphard); } void MainWindow::onApptoDevHandle(QByteArray frame) { QByteArray d1; QByteArray d2; int data_int; qDebug()<<"rec"<<frame; appsoft=new AppProtocol(this); devsoft=new DevProtocol(this); AppProtocol appsoft2=appsoft->fromXmlFormat(frame); switch (appsoft2.getDevice()) { case 1: devsoft->setSlaveID(0x08); devsoft->setCmd(0x10); devsoft->setSensorID(0x0850); devsoft->setCounter(0x0001); devsoft->setLength(0x02); if(appsoft2.getData()==1){ d1[0] = 0x00; d1[1] = 0x01; devsoft->setData(d1); }else{ QByteArray d1; d1[0] = 0x00; d1[1] = 0x00; devsoft->setData(d1); } break; case 2: devsoft->setSlaveID(0x07); devsoft->setCmd(0x10); devsoft->setSensorID(0x6010); devsoft->setCounter(0x0001); devsoft->setLength(0x02); if(appsoft2.getData()==1){ d1[0] = 0x00; d1[1] = 0x01; devsoft->setData(d1); }else{ d1[0] = 0x00; d1[1] = 0x00; devsoft->setData(d1); } break; case 3: devsoft->setSlaveID(0x07); devsoft->setCmd(0x10); devsoft->setSensorID(0x0F00); devsoft->setCounter(0x0001); devsoft->setLength(0x02); if(appsoft2.getData()==0){ d1[0] = 0x00; d1[1] = 0x00; devsoft->setData(d1); }else if(appsoft2.getData()==1){ d1[0] = 0x00; d1[1] = 0x01; devsoft->setData(d1); }else if(appsoft2.getData()==2){ d1[0] = 0x00; d1[1] = 0x02; devsoft->setData(d1); }else if(appsoft2.getData()==3){ d1[0] = 0x00; d1[1] = 0x03; devsoft->setData(d1); }else if(appsoft2.getData()==4){ d1[0] = 0x00; d1[1] = 0x04; devsoft->setData(d1); }else if(appsoft2.getData()==5){ d1[0] = 0x00; d1[1] = 0x05; devsoft->setData(d1); }else if(appsoft2.getData()==6){ d1[0] = 0x00; d1[1] = 0x06; devsoft->setData(d1); }else if(appsoft2.getData()==7){ d1[0] = 0x00; d1[1] = 0x07; devsoft->setData(d1); } break; case 4: devsoft->setSlaveID(0x01); devsoft->setCmd(0x10); devsoft->setSensorID(0x0650); devsoft->setCounter(0x0001); devsoft->setLength(0x02); if(appsoft2.getData()==1){ d2[0] = 0x00; d2[1] = 0x01; devsoft->setData(d2); }else{ d2[0] = 0x00; d2[1] = 0x00; devsoft->setData(d2); } break; case 5: devsoft->setSlaveID(0x01); devsoft->setCmd(0x10); devsoft->setSensorID(0x0660); devsoft->setCounter(0x0001); devsoft->setLength(0x02); if(appsoft2.getData()==1){ d2[0] = 0; d2[1] = 0x01; devsoft->setData(d2); }else{ d2[0] = 0; d2[1] = 0; devsoft->setData(d2); } break; case 6: devsoft->setSlaveID(0x01); devsoft->setCmd(0x10); devsoft->setSensorID(0x0670); devsoft->setCounter(0x0001); devsoft->setLength(0x02); if(appsoft2.getData()==0){ d2[0] = 0; d2[1] = 0; devsoft->setData(d2); }else if(appsoft2.getData()==1){ d
评论
    相关推荐
    • Proteus7.12.rar
      Proteus7.12完美破解版.rar电路仿真软件很好用可以仿真单片数字模拟电路
    • VHDL 的实例程序,共44个.rar
      经典VHDL 的实例程序,共44个!要下载的尽快
    • USBtoRS232Driver.rar
      USB转串口驱动程序,可以用在笔记本电脑上,方便的通过串口给单片机下载程序!
    • 模糊控制程序.rar
      模糊PID控制程序的源码,是作业,有讲解,
    • 串口编程源代码.rar
      这是本人最近几年所编写的串行通讯的代码集,可以供大家参考学习。
    • DELTA_PLC.rar
      台达PLC Modbus协议通信dll com控件
    • hongwaigooog.rar
      单片机红外遥控最全的资料,包含很多当前电视遥控专用芯片的解码方式,C语言和汇编语言编写的解码范例程序,看完了你就会了!
    • MF500绝密.rar
      非接触式IC卡开发板源程序,包括原理图/PCB图;源程序在KEIL环境下编译,打开压缩包后直接点击PRJ文件,即可编译使用。 这是个保密文件,做Mifare one卡开发人基本上都用过到这个源代码。
    • 20078251299410.rar
      C51实用程序(45个) I/O、定时器、中断、看门狗、计数器、软件AD、VB串口、93c06驱动、24c02系列驱动、7219、20045、软件陷阱、串口中断、码值转换、AVR通讯、IIC、DS1302、DS1820、SPI、1602、12232、12864、T6963、1330、PC键、键盘输入法、智能化、飞机游戏、贪吃蛇、多级菜单实例等
    • mcudesign.rar
      单片机设计,毕业设计 16×16点阵(滚动显示)论文+程序 cdma通信系统中的接入信道部分进行仿真与分析 LED显示屏动态显示和远程监控的实现 MCS-51单片机温度控制系统 USB接口设计 毕业设计(论文)OFDM通信系统基带数据 仓库温湿度的监测系统 单片机串行通信发射机 单片机课程设计__电子密码锁报告 单片机控制交通灯 电动智能小车(完整论文 电气工程系06届毕业设计开题报告 电信运营商收入保障系统设计与实现 电子设计大赛点阵电子显示屏(A题 电子时钟 火灾自动报警系统设计 基于GSM短信模块的家庭防盗报警系统 基于GSM模块的车载防盗系统设计 TC35i 资料 基于网络的虚拟仪器测试系统 门控自动照明电路 全遥控数字音量控制的D类功率放大器 数控直流稳压电源完整论文 数字密码锁设计 数字抢答器(数字电路) 数字时钟 水箱单片机控制系统 同步电机模型的MATLAB仿真 温度监控系统的设计 用单片机控制直流电机 用单片机实现温度远程显示 智能家用电热水器控制器 智能型充电器电源和显示的设计 自动加料机控制系统