i.mx287学习笔记7-与图灵机器人对话

上面是我的微信和QQ群,欢迎新朋友的加入。

1.创建QT界面

目前界面比较简单,就是两个按键加两个文本窗口

第一个文本窗口用于输入聊天信息

第二个文本窗口用于显示图灵的返回信息

send按键发送聊天信息

clear按键清除文本框内容

2.修改pro增加模块

#-------------------------------------------------
#
# Project created by QtCreator 2019-08-22T21:01:43
#
#-------------------------------------------------

QT       += core gui

greaterThan(QT_MAJOR_VERSION, 4):
QT += widgets
QT += network
QT += script

TARGET = untitled
TEMPLATE = app

SOURCES += main.cpp\
        mainwindow.cpp

HEADERS  += mainwindow.h

FORMS    += mainwindow.ui

主要增加了网络和script两个模块

3.控制界面的实现

#include "mainwindow.h"
#include "ui_mainwindow.h"

#include <QNetworkReply>
#include <QScriptValue>
#include <QScriptValueIterator>
#include <QScriptEngine>


const QString URL="http://www.tuling123.com/openapi/api";
const QString API_KEY="xxxxxx";//这里自己去申请


MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);
}

MainWindow::~MainWindow()
{
    delete ui;
}

void MainWindow::replyFinish(QNetworkReply *reply)
{
     QString data=reply->readAll();//读取回话信息
     QString strText="";
     QScriptValue jsontext;
     QScriptEngine engineText;
     jsontext=engineText.evaluate("value="+data);
     QScriptValueIterator iteratorText(jsontext);
     //解析回话信息
     while(iteratorText.hasNext())
    {
         iteratorText.next();
        if(iteratorText.name()=="text")
          {
             strText=iteratorText.value().toString();
             ui->textEdit_2->setText(strText);
             //回话对话框设置为回话信息
             break;
           }
     }

}

void MainWindow::on_readyRead()
{
    qDebug()<<"changing ~~~"<<endl;//打印表示回话成功
}

void MainWindow::on_send_clicked()
{
    QString Url=URL+"?key="+API_KEY+"&info="+ui->textEdit->toPlainText();
    //拼接对话信息
    QUrl url;
    url.setUrl(Url);//格式转换
    QNetworkRequest request(url);//传输对话信息
    QNetworkAccessManager *manager=new QNetworkAccessManager(this);
    QNetworkReply *reply=manager->get(request);
    //等待回话信息
    //回话的信号与槽
    connect(manager,SIGNAL(finished(QNetworkReply *)),this,SLOT(replyFinish(QNetworkReply *)));
    connect(reply,SIGNAL(readyRead()),this,SLOT(on_readyRead()));
}

void MainWindow::on_clear_clicked()
{
    QString str="";//空字符串
    ui->textEdit->setText(str);//回应对话框变为空字符串
    ui->textEdit_2->setText(str);//输入对话框变为空字符串
}

功能很简单,实现按键发生输入信息,再显示返回信息

4.API申请

上面的代码copy之后是没有用的,因为key被我删了,这个东西自己申请,如果我放出来,很可能我自己就没得用了

申请链接:http://www.tuling123.com

登录之后,创建一个机器人

然后将自己的key拷贝出来

注意:如果不掏钱,使用是有限制的

5.PC端测试

6.在I.mx287上运行图灵机器人

编译嵌入式qt程序

拷贝到设备上面

7.设备端测试

先测试一下,设备能否连接外网

如果不行

输入rote确定网关正常

route add default gw 192.168.1.1

修改vi /etc/resolv.conf

 增加如下内容:

   nameserver 114.114.114.114 (电信的DNS)

   nameserver 8.8.8.8(googel的DNS)

   就可以实现ping通外网了

我发个123上去

图灵回了个321,不过目前QT不支持中文显示。之后抽时间将QT的中文显示处理一下

同时可以在管理后台可以看到访问了API

我现在没认证,一天就能用两次

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值