当前位置: 首页 > news >正文

生鲜网站建设的项目总结网站如何后台管理

生鲜网站建设的项目总结,网站如何后台管理,使用html5的网站,网站建设合同浩森宇特stm32mp157开发板FS-MP1A是华清远见自主研发的一款高品质、高性价比的Linux单片机二合一的嵌入式教学级开发板。开发板搭载ST的STM32MP157高性能微处理器#xff0c;集成2个Cortex-A7核和1个Cortex-M4 核#xff0c;A7核上可以跑Linux操作系统#xff0c;M4核上可以跑FreeRT…stm32mp157开发板FS-MP1A是华清远见自主研发的一款高品质、高性价比的Linux单片机二合一的嵌入式教学级开发板。开发板搭载ST的STM32MP157高性能微处理器集成2个Cortex-A7核和1个Cortex-M4 核A7核上可以跑Linux操作系统M4核上可以跑FreeRTOS、RT-Thread等实时操作系统。开发板搭配仿真器、显示屏、摄像头、资源扩展板等丰富的扩展模块可拓展物联网、人工智能等相关技术学习还可以拓展丰富的项目实战非常贴合企业当下开发需求是一款嵌入式Linux入门进阶必备开发板可学习技术嵌入式Linux应用/系统/驱动开发、ARM裸机开发、Qt界面编程、STM32单片机、FreeRTOS、人工智能机器视觉等。其中ARM Cortex-A7裸机开发课程是华清远见独有特色课程可关注https://www.bilibili.com/video/BV1Xe4y1i7vm/持续更新中。14个LinuxQt综合项目案例6个MP1A物联网拓展项目关注公众号“华清远见在线实验室”回复“mp157项目”即可领取项目配套文档及源码。LinuxQt综合项目案例华清远见stm32mp157开发板优势特色部分包括音乐播放器、智慧家庭、智能工业电表、智能出行助手、智能猫眼、环境监测、智能安防、智能语音识别等10余个项目案例涉及家居、医疗、农业多种应用方向在案例中使用了多种物联网和嵌入式技术包括OT开发、linux应用开发、linux驱动开发、物联网云端接入、MQTT协议、json字符串等知识点。基于LinuxQt的智能语音识别项目项目简介语言是人与人之间最重要的交流方式、能与机器进行自然的人机交流是人类一直期待的事情。随着人工智能快速发展。语音识别技术作为人机交流接口的关键技术、发展迅速。本项目调用百度 AI 开发平台 API 进行语音识别进行语音控制传感器的联动。开发平台华清远见stm32mp157开发板豪华套餐开发板仿真器五寸屏摄像头资源扩展板tf卡读卡器项目实战Qt 开发环境搭建主机开发环境说明1) 本文档主要介绍 linux 环境下的 Qt 程序开发2) 主机 Qt 版本为 5.14.1主机 Qt 环境搭建及使用Qt Creator 安装将 qt-creator-opensource-linux-x86_64-4.10.1.runQt 实验源码\工具软件 复制到 ubuntu 主机中可以采用共享文件夹的方式也可以使用 tfp方式将文 件存入家目录下的 Downloads 目录。我们需要在终端中赋予安装程序可执行的权限我们可以使用图形化的文件管理器来查看双击“qt-creator-opensource-linux-x86_64-4.10.1.run”图标运行安装程序。出现如下界面等待程序验证完成后点击“Next”这里我们需要登录或者注册一个账号如果我们之前已经注册过直接登录就可以。如果没有注册过则需要新注册有一个账号后登录。这里笔者已经注册过账号所以直接登录。 登录成功后出现如下界面点击 Next这里选择安装路径可以直接默认Next这路选择安装的组件直接默认即可这里我们需要同意用户协议这个界面告诉我们安装完成后需要占用的空间。点击”Install”按钮后开始安装。安装完成后出现如下界面点击“Finish”按钮后将弹出 Qt Creator 主界面点击“Cancel”按钮后即可正常使用Qt5.14.1 安装复制到 qt-opensource-linux-x64-5.14.1.runQt 实验源码\工具软件到 ubuntu 主机中可以采用共享文件夹的方式也可以使用 tfp 方式将文件存入家目录下的 Downloads 目录。进入所在文件夹先给执行权限输入命令chmod x ./qt-opensource-linux-x64-5.14.1.run安装在命令行输入./qt-opensource-linux-x64-5.14.1.run会有可视化引导安装一直 next 就行了在选择安装组件的时候要是不知道选择那些就全选了 大概有 4 个 G 左右下载 gcc 和 gsudo apt-get install gcc g 下载 cmakesudo apt-get install cmake下载链接库sudo apt-get install libgl1-mesa-dev libglu1-mesa-devQt Creator 配置1配置 GCC运行 QtCreator 后依次点击Tool-Options出现选项对话框在左侧点击Kits右 边选择Compilers标签。 检查有没有下图标注的 C和 C 般按上面步骤执行后都会有点击右侧Add按钮弹出下拉列表后选择GCC的C填写信息如下Name为Auto-GCCCompiler path点击旁边的Browse..按钮选择编译器的路径例子中的路径是 “/usr/bin/gcc”2配置 G点击右侧Add按钮弹出下拉列表后选择GCC的C下面的文本框填写Name 为Auto-GCompiler path点击旁边的Browse..按钮选择编译器的路径例子中的路径是 /usr/bin/g。填写完成后点击Apply。3配置 qmake选择Qt Versions标签如果有下面红框中的文本可以跳过下面步骤如果没有在右侧点击Add...会弹出 qmake 路径选择对话框这里以/home/linux/Qt5.14.1/5.14.1/gcc_64/bin/qmake为例子。 选择”qmake”文件后点击Open按钮Version name改为 Qt %{Qt:Version} GCC。然后点击Apply按钮。4配置 Kits点击左侧Kits右侧选择Kits标签。检查有没有下图红框选中的文本如果有可以跳过下面步骤然后没有点击 Add在弹出的对话框中Name为DesktopDevice Type选择Desktop选项, Sysroot选择目标设备的系统目录Compiler选择之前配置的名称Auto-GCC和Auto-GQt version选择之前配 置的名称Qt 5.14.1GCC其它默认即可最后点击Apply和OK按钮。Qt Creator 新建工程注意工程路径最好不要包含中文、特殊字符、空格等。我们可以新建一个“qt”文件夹该文件夹用作我们以后存放源代码。打开 Qt Creator在欢迎页面点击 “New”按钮来新建一个工程。在出现的新建项目窗口中我们选则“Application”-“Qt WidgetsApplication”然后点击右下方“Choose…”按钮来创建一个桌面 Qt 应用。我们在这里设置项目介绍和源码位置我们这里创建一个名为“HelloWorld”的示例项目设置完成之后点击 next直接点击 next随后进行细节设置主要设置要创建的源码文件的基本类信息包括类名等。这里我们可以根据自己的项目特点进行设置。需要说明的一点就是基类的选择这里基类有 QMainWindow、QWidget、QDialog 三种它们的不同之处如下QMainWindow 类提供一个带有菜单条工具条和一个状态条的主应用程序窗口。主窗口通常提供一个大的中央窗口部件以及周围菜单工具条和一个状态栏。QMainWindow 窗口经常被继承使得封装中央部件菜单工具条状态栏等都变得很容易当用户点击它的时候相应的槽就会被调用QWidget 类是所有用户界面对象的基类窗口部件是用户界面的一个基本单元它从窗口系统接收鼠标键盘和其他消息并在屏幕上绘制自己。一个窗口部件可以被他的父窗口或者是其他窗口挡住一部分QDialog 类是对话框窗口的基类对话框窗口主要用于短期任务和用户进行短期通讯的顶级窗口QDialog 可以是模态对话框或者是非模态对话框。QDialog 支持扩展并带有返回值他们可以带有默认值我们在这里选择 QDialog 类即可点击 next 完成类信息设置。直接点击 next 按钮即可。然后进行工具选择该页面可以选择我们创建的工程可以使用的工具选择想要使用的编译器模块例如下图 。点击 next最后我们设置汇总信息如果不需要版本控制等功能直接点击完成finish 即可。随后我们就进入到了主界面这时候 Qt 已经帮我们做好了一些准备工作包括创建了一些文件写好了一些前置代码等等。我们可以点击左边 protect 栏来查看我们的编译选项。我们可以在左下角选择编译 Debug 版或者 Release 版即调试版或发行版。左下角绿色剪头是编译并运行锤子是仅编译我们可以直接点击绿色小箭头将我们导入的工程编译并运行起来。点击运行按钮后我们可以看到 HelloWorld 窗口运行起来了。Qt Creator导入工程我们可以将已存在的 Qt 程序项目直接打开这里以上一章节的HelloWorld 程序为例。首先我们确定源码存在的位置如 HelloWorld 程序源码在 /home/linux/qt/helloworld 路径下点击欢迎页面的“Open” 按钮可以打开已有的工程找到我们刚才解压好的源码选择“helloworld.pro”文件并点击打开接下来我们就可以进入到代码编辑界面了。左上角是项目栏点击项目名称左边的小箭头可以展开项目目录我们可以点击左边项目栏来查看我们的编译选项。需注意的是构建设置中的路径应与工程路径处于同级目录下。我们可以在左下角选择编译 Debug 版或者 Release 版即调试版或发行版。左下角绿色剪头是编译并运行锤子是仅编译我们可以直接点击绿色小箭头将我们导入的工程编译并运行起来点击运行按钮后我们可以看到 HelloWorld 窗口运行起来了。文件说明通过上面两个章节我们学习到了 Qt 程序的新建与导入的方法也知道了Qt 会帮我们做一些基础工作比如帮我们建立了一些文件那么这些文件都是干什么用的呢我们以 HelloWorld 程序来说明一下。以“.pro”为后缀名的文件为 Qt 的项目管理文件存储项目设置的文件“Qt core gui”表示项目中加入 core gui 模块。core gui 是 Qt 用于GUI 设计的类库模块如果创建的是控制台console应用程序就不需要添加 core gui。Qt 类库以模块的形式组织各种功能的类根据项目涉及的功能需求在项目中添加适当的类库模块支持。例如如果项目中使用到了涉及数据库操作的类就需要用到 sql数据库模块在 pro 文件中需要在后面加上 sql1 Qt core gui sql“greaterThan(QT_MAJOR_VERSION, 4): QT widgets”这是个条件执行语句表示当 Qt 主版本大于 4 时才加入 widgets 模块。“TARGET HelloWorld”表示生成的目标可执行文件的名称即编译后生成的可执行文件是 HelloWorld.exe。“TEMPLATE app”表示项目使用的模板是 app是一般的应用程序。后面的 SOURCES、HEADERS、FORMS 记录了项目中包含的源程序文件、头文件和窗体文件.ui 文件的名称。这些文件列表是 Qt Creator 自动添加到项目管理文件里面的用户不需要手动修改。当添加一个文件到项目或从项目里删除一个文件时项目管理文件里的条目会自动修改。文件夹“Header”中存放的是所设计的窗体类的头文件文件夹“Sources”中存放着源码文件。main.cpp 是实现 main()函数的程序文件HelloWorld.cpp 是 widget.h 里定义类的实现文件。C中任何窗体或界面组件都是用类封装的一个类一般有一个头文件.h 文件和一个源程序文件.cpp 文件文件夹“Forms”中存放着界面设计文件“.ui”文件是一个 XML 格式存储的窗体上的元件及其布局的文件双击项目文件目录树中的文件 ui会打开一个集成在 Qt Creator 中的 Qt Designer 对窗体进行可视化设计UI 设计器有以下一些功能区域组件面板窗口左侧是界面设计组件面板分为多个组如 Layouts、Buttons、Display Widgets 等界面设计的常见组件都可以在组件面板里找到。中间主要区域是待设计的窗体。如果要将某个组件放置到窗体上时从组件面板上拖放一个组件到窗体上即可。Signals 和 Slots 编辑器与 Action 编辑器是位于待设计窗体下方的两个编辑器。Signals 和 Slots 编辑器用于可视化地进行信号与槽的关联Action 编辑器用于可视化设计 Action。布局和界面设计工具栏窗口上方的一个工具栏工具栏上的按钮主要实现布局和界面设计。对象浏览器Object Inspector窗口右上方是 Object Inspector用树状视图显示窗体上各组件之间的布局包含关系视图有两列显示每个组件的对象名称ObjectName和类名称。属性编辑器Property Editor窗口右下方是属性编辑器是界面设计时最常用到的编辑器。属性编辑器显示某个选中的组件或窗体的各种属性及其取值可以在属性编辑器里修改这些属性的值。属性编辑器的内容分为两列左侧为属性的名称右侧为属性的值。属性又分为多个组实际上表示了类的继承关系位于下方的类属性组继承自位于上方的类属性组如果我们需要新建资源文件、源码文件等可以在项目文件夹出点击鼠标右键选择 Add New如果我们有新的文件需要添加可以在项目文件夹出点击鼠标右键选择 Add Existing Files。帮助文档Qt 的帮助文档是伴随我们学习 Qt 开发的好伙伴。在 Qt 开发过程中我们会面临图形接口使用的问题它不像 C 语言那样就那么几个函数接口图形接口的接口数量可以用海量来形容常用的我们可能能记住其它的就没有必要去记了用到什么就去帮助文档查看用法是比较方便的。我们可以按 F1 按键或通过上方导航栏的“help-contects”来进入帮助文档。上方的前进后退按钮方便我们查看文档如返回到上一步返回到下一步。我们可以通过帮助文档来查看以下几个部分类使用的相关介绍查看相关类的使用介绍我们可以先进入到帮助文档然后在左上角选择“Search”。笔者这里以 QWidget 类为例输入我们想要查找的类的名字然后双击查找结果来查看说明。也可以先将鼠标移动到想要查询的类的位置如图所示将鼠标移动至“QWidget”处然后按“F1”键即可跳转到相应的帮助文档。我们可以通过再按一次“F1”键来全窗口查看帮助文档按“Esc”键可以退出。部分常用的成员元素包括以下几项公有成员函数操作部件属性的相关函数公有槽函数Qt 类中已经定义好的槽函数直接可与信号相连接信号软中断如按下按钮触发 pressed() 信号等 保护成员函数通常事件所对应的虚函数放在此处事件常用事件如操作鼠标触发的鼠标事件滚动鼠标滚轮向下即可看到“Qwdget Class”类的相关说明了。部分常用的成员元素包括以下几项公有成员函数操作部件属性的相关函数公有槽函数Qt 类中已经定义好的槽函数直接可与信号相连接信号软中断如按下按钮触发 pressed() 信号等保护成员函数通常事件所对应的虚函数放在此处事件常用事件如操作鼠标触发的鼠标事件滚动鼠标滚轮向下即可看到“Qwdget Class”类的相关说明了。1) 查看所用的部件的相应成员函数。我们可以查找到该类所用部件的相应成员函数的使用方法、功能、参数、返回值等等我们以“按钮”控件即“QPushButton Class”类为例我们通过索引搜索的方式来找到这个类我们可以通过点击“Public Functions” 来查看“QPushButton”这个类中的成员函数。这里以“QPushButton(const QString text, QWidget *parent Q_NULLPTR)”为例我们点击函数名字可以进入到函数详情中。我们可以看到相应的描述为以“text”为显示内容以“parent”为父对象构造一个push 按钮。“text”“parent”为函数参数由于是构造函数所以此函数没有返回值。还有一些函数是继承自其它类的例如“Public Functions”中有 21 个继承自“QAbstractButton”类的函数我们点击“QAbstractButton”即可查看。击“QAbstractButton”即可查看同样我们可以点击相应的函数进入查看详情。如查看“voidsetText(const QString text)”。2) 查看所用的部件的信号。我们这里还是以“PushButton”为例我们点击“Public Slots”。可以看到“PushButton”本身有一个“void showMenu()”的信号并且有很多继承自其他类的信号。一般来说我们用的“PushButton”的信号最多的是用到其继承自基类“QAbstractButton”中的几个信号分别是点击按下后抬起、按压单按下、释放单抬起等我们可以点击相应信号查看详情3) 查看所用的部件的事件(所对应的虚函数如何编写)。部件常用事件主要在 “QWidget”中声明选择“Events”即可查看相关说明。每个事件都对应着事件函数。点击事件函数可查看详情UI 界面设计Ui 界面设计如下由于我们配置的七寸屏幕是 1024*768 分辨率的所以我们的 MainWindow主界面的尺寸设置为 1024*768。共使用如下几个控件使用 QTextEdit 控件textEdit 来显示语音识别后返回的最佳匹配语音。使用 QPushButton 控件pushButton_video 点击录音和释放识别使用 pushButton_clear 来清空 QtextEdit的内容使用 textEdit_2 来显示传感器的反馈。录音在 pro 文件添加QT networkQT multimedia在 mainwindow.h 头文件添加下面定义void RecorderStart(QString fileName);//开始录音void RecorderEnd();//结束录音并转换格式QFile *outFile;//录音时的变量QAudioInput *my_audio;//录音时的变量QAudioFormat audioFormat;//录音时的变量 Mainwindow.cpp 录音函数实现void MainWindow::RecorderStart(QString fileName){ QAudioDeviceInfo device QAudioDeviceInfo::defaultInputDevice(); if(device.isNull()) { QMessageBox::warning(NULL,QAudioDeviceInfo,录音设备不存在); return; }// 设置通道数 audioFormat.setChannelCount(1);// 设置编码 audioFormat.setCodec(audio/pcm);// 设置采样频率 audioFormat.setSampleRate(16000);// 设置位深 audioFormat.setSampleSize(16);// 判断设备是否支持该格式 if(!device.isFormatSupported(audioFormat)){ //当前使用设备是否支持 audioFormat device.nearestFormat(audioFormat); //转换为最接近格式 }// 创建录音对象 my_audio new QAudioInput(audioFormat,this); outFile new QFile; outFile-setFileName(fileName); //语音原始文件 outFile-open(QIODevice::WriteOnly);// 开始录音 my_audio-start(outFile);}结束录音函数实现/*********************** 结束录音并转换格式**********************/void MainWindow::RecorderEnd(){// 结束录音 my_audio-stop(); outFile-close(); delete outFile; outFile NULL; delete my_audio;my_audio NULL;}点击释放按钮槽函数右键按钮转到槽选择 pressed 和 released 点击 ok。会在 mainwindow.cpp生成 on_pushButton_video_pressed()和 on_pushButton_video_released()槽函数。在两个槽函数分别实现如上图所示申请百度 AI 开发平台语音识别应用语音识别是利用百度的 API 在线识别。所以需要申请项目 ID。进入百度的 API 平台https://ai.baidu.com/在产品服务下选择语音识别点击立即使用申请账号点击登录点击创建应用输入应用名称、应用描述点击立即创建点击返回应用列表获取 AppID、API Key 和 Secret Key我们记住其中的 API Key 和 Secret Key下面会用到。HTTP 请求类实现我们录好的音频文件需要通过 HTTPS 协议上传到百度 AI 开发平台进行语音识别之后 AI 平台会返回给我们识别的结果。http 类只需要封装一个方法bool post_sync(QString url,QMapQString,QStringheader,QByteArrayrequestData,QByteArray replyData);使用这个方法去 URL 发送请求会收到 URL 的返回值。http.h#ifndef HTTP_H#define HTTP_H#include QObject#include QMap#include QNetworkAccessManager#include QNetworkRequest#include QNetworkReply#include QEventLoop#include QDebugclass Http : public QObject{ Q_OBJECTpublic: explicit Http(QObject *parent nullptr); bool post_sync(QString url,QMapQString,QStringheader,QByteArrayrequestData,QByteArray replyData);};#endif // HTTP_Hhttp.cpp这个方法的第一个参数是 post 方法发送请求的 URL第二个参数是请求的方法头第三个参数是请求的数据第四个参数是返回的数据。这里要说的是必须要设置 openssl 签名配置,否则在 ARM 上会报错。bool Http::post_sync(QString url,QMapQString,QStringheader,QByteArrayrequestData,QByteArray replyData){// 发送请求的对象 QNetworkAccessManager manager;// 请求 对象 QNetworkRequest request; request.setUrl(url); QMapIteratorQString,QString it(header); while (it.hasNext()) { it.next(); request.setRawHeader(it.key().toLatin1() ,it.value().toLatin1()); }//设置 openssl 签名配置,否则在 ARM 上会报错 QSslConfiguration conf request.sslConfiguration(); conf.setPeerVerifyMode(QSslSocket::VerifyNone);#if (QT_VERSION QT_VERSION_CHECK(5,0,0)) conf.setProtocol(QSsl::TlsV1_0);#else conf.setProtocol(QSsl::TlsV1);#endif request.setSslConfiguration(conf);QNetworkReply *reply manager.post(request,requestData); QEventLoop l; //一旦服务器返回reply 会发出信号 connect(reply,QNetworkReply::finished,l,QEventLoop::quit); l.exec(); if(reply ! nullptr reply-error() QNetworkReply::NoError) { replyData reply-readAll(); return true; } else { qDebug()request error!; return false; }} 发送请求这里需要向两个 URL 发送两个请求第一个请求是把我们 4.2.3 创建应用得到的 API Key 和 Secret Key 组合成一个 URL 获取 access_token第二个请求是把音频文件发送请求到语音识别的 URL 才能返回语音识别的结果。我们新建一个类 SpeechSpeech.h这里我们把 API Key 和 Secret Key 作为参数传到 const QStringbaiduTokenUrl 里面去。把主机名和获取的 access_token 做为参数传入 constQString baiduSpeechUrl。#include QObject#include QJsonDocument#include QJsonParseError#include QJsonObject#include QJsonValue#include QJsonArray#include QFile#include http.h#include QHostInfo// 获取 Access Tokenconst QString baiduTokenUrl https://aip.baidubce.com/oauth/2.0/token?grant_typeclient_credentialsclient_id%1client_secret%2;const QString client_id 我们创建应用的 API Key;const QString client_secret 我们创建应用的 Secret Key;// 语音识别 urlconst QString baiduSpeechUrl https://vop.baidu.com/server_api?dev_pid1537cuid%1token%2;class Speech:public QObject{ Q_OBJECTpublic: Speech(); QString speechIdentify(QString fileName);private: QString getJsonValue(QByteArray ba,QString key);};#endif // SPEECH_HSpeech.cppQString Speech::speechIdentify(QString fileName){// 获取 Access TokenQString tokenUrl QString(baiduTokenUrl).arg(client_id).arg(client_secret); Http my_http; QMapQString,QStringheader; header.insert(QString(Content-Type),QString(audio/pcm;rate16000)); QByteArray requestData;//请求内容 QByteArray replyData;//url 返回内容 qDebug()tokenUrl; bool result my_http.post_sync(tokenUrl,header,requestData,replyData); if(result) { QString key access_token; QString accessToken getJsonValue(replyData,key); qDebug()accessToken; // 语音识别 QString speechUrl QString(baiduSpeechUrl).arg(QHostInfo::localHostName()).arg(accessToken); QFile file; file.setFileName(fileName); file.open(QIODevice::ReadOnly); requestData file.readAll(); file.close(); replyData.clear();// 再次发起请求 result my_http.post_sync(speechUrl,header,requestData,replyData); if(result) { QString key result; QString retText getJsonValue(replyData,key); qDebug()retText; return retText;} else{ return NULL; } } else { return error; }}解析返回的数据返回的数据是这种 Json 类型的我们只需要获取里边 result 的值就能得到我们想要的结果了。{err_no:0,err_msg:success.,corpus_no:15984125203285346378,sn:481D633F-73BA-726F-49EF-8659ACCC2F3D,result:[北京天气]}QString Speech::getJsonValue(QByteArray ba,QString key){ QJsonParseError parseError; QJsonDocument jsondocument QJsonDocument::fromJson(ba,parseError); if(parseError.error QJsonParseError::NoError) { if(jsondocument.isObject()) { QJsonObject jsonObject jsondocument.object(); if(jsonObject.contains(key)){ QJsonValue jsonvalue jsonObject.value(key); if(jsonvalue.isString()) return jsonvalue.toString(); else if(jsonvalue.isArray()){QJsonArray arr jsonvalue.toArray(); QJsonValue val arr.at(0); return val.toString(); } } } } return ;}MainWindow 类调用函数我们在释放按钮的槽函数里添加以下代码。void MainWindow::on_pushButton_video_released(){ ui-pushButton_video-setText(按住说话); RecorderEnd(); Speech my_speech; QString text my_speech.speechIdentify(./1.pcm); ui-textEdit-append(text); audioCtrl(text);}语音控制设备联动代码如下void MainWindow::audioCtrl(QString text){ if(text 开灯。) { system(echo 1 /sys/class/leds/user1/brightness); system(echo 1 /sys/class/leds/user2/brightness); system(echo 1 /sys/class/leds/user3/brightness); ui-textEdit_2-setText(灯已打开); } else if(text 关灯。) { system(echo 0 /sys/class/leds/user1/brightness); system(echo 0 /sys/class/leds/user2/brightness); system(echo 0 /sys/class/leds/user3/brightness); ui-textEdit_2-setText(灯已关闭); } else if(text 报警。) { int fd; struct input_event event; struct timeval time; fd open(/dev/input/by-path/platform-beeper-event, O_RDWR); event.type EV_SND; event.code SND_TONE; event.value 1000; time.tv_sec 1; time.tv_usec 0; event.time time; write(fd, event, sizeof(struct input_event));ui-textEdit_2-setText(蜂鸣器已报警); } else if(text 关闭。) { int fd; struct input_event event; struct timeval time; fd open(/dev/input/by-path/platform-beeper-event, O_RDWR); event.type EV_SND; event.code SND_TONE; event.value 0; time.tv_sec 0; time.tv_usec 0; event.time time; write(fd, event, sizeof(struct input_event)); ui-textEdit_2-setText(蜂鸣器报警已关闭); } else if(text 关风扇。) { unsigned char arg; Ioctl(EXIT_FAN,arg); ui-textEdit_2-setText(风扇已关闭); } else if(text 开风扇。) { unsigned char arg; Ioctl(EXIT_FAN,arg); Ioctl(INIT_FAN,arg); Ioctl(FAN_UP,arg);ui-textEdit_2-setText(风扇已打开); } else if(text 温度。) { QString tem temCollect(); ui-textEdit_2-setText(QString( 此 时 温 度为:).append(tem).append(C)); } else if(text 湿度。) { QString hum humCollect(); ui-textEdit_2-setText(QString( 此时湿度为:).append(hum).append(%)); }}实验源码源码路径【10_智能语音识别\实验源码\04-Aivideo】注意事项1.在开发板运行时需要导入中文字库否则会因为识别不了中文。将【10_智能语音识别\工具软件\wqy-zenhei-0.9.47-nightlybuild.tar.gz 或 wqy-zenhei-0.8.38-1.tar.gz】复制到 ubuntu 下。并使用 scp 命令将文件拷贝到开发板的 usr/share/fonts 目录下使用 tar 命令解压后即可。linuxubuntu:~$ scp wqy-zenhei-0.8.38-1.tar.gzroot192.168.10.128:/usr/share/fonts/2.如果使用 mipi 五寸屏运行此项目需要进行屏幕旋转以适应屏幕具体步骤如下在/etc/profile.d/qt-eglfs.sh 添加环境变量如下下面变量的 event0 设备需要填实际的触摸屏设备这里即填 event0export QT_QPA_EGLFS_ROTATION90export QT_QPA_EGLFS_NO_LIBINPUT1exportQT_QPA_EVDEV_TOUCHSCREEN_PARAMETERS/dev/input/event0:rotate90
http://www.dnsts.com.cn/news/68815.html

相关文章:

  • 网上虚拟银行注册网站怎样做淘宝客网站
  • 建一个网站大概需要多少钱太原seo网站排名优化
  • 网络推广网站制作设计中的网络系统是什么
  • 杭州网站设计建设公司资料共享的网站开发
  • 珠海网站建设杰作网络营销推广主要做什么?有哪些方法和技巧
  • 做画册好的网站城市网站建设
  • asp网站伪静态规则强化网站建设
  • wordpress 文章 数据库seo站内优化包括
  • 国外怎么做直播网站济南网站维护公司
  • centos建设网站weex做网站
  • 越南做购物网站视频号商店怎么开通
  • 乌兰察布做网站公司郑州哪家做网站便宜
  • 绍兴网站制作价格张掖市住房和城乡建设局网站
  • 网站开发工程师工作职责旅游网站设计需求分析
  • 什么物流公司网站建设帮企业建设网站保密合同
  • ps免费模板素材网站新产品宣传推广策划方案
  • 做网站导航栏目怎么做湖南住房建设厅网站
  • 免费搭建手机网站源码教育培训门户网站模板下载
  • 网站属性设置引流获客app下载
  • 如何管理网站后台肉山谷英雄传说新手任务登录英文网站怎么做
  • 网站建设人才有哪些做电影网站挣钱
  • 合肥建设局网站领导成都软件网站开发
  • 做旅行网站的依据及意义在哪个网站上做蓝思测评
  • 网站ui设计报价单深圳网站建设公司市场
  • 物流网站公司做网站花都
  • 个人可以建设哪些网站广州建设培训网站
  • 网站建设培训哪个好网站排名优化怎么做
  • 站长工具在线免费深圳公布最新出行政策
  • 网站建设与管理实训总结wordpress 美术
  • 社区网站建设申请报告中国十大管理咨询公司