ESP8266学习笔记(九)

作者: JaydenOnly | 来源:发表于2016-11-21 12:16 被阅读0次

通过上次的说明,在基本的app界面xml编好了之后,我们就开始写主程序文件。

变量申明

首先,tcp通讯需要的是服务器的ip地址和端口号,所以我们需要两个变量

private final String SERVER_HOST_IP = "192.168.199.191";//随便写的,根据自己需要改
private final int SERVER_HOST_PORT = 23333; ```
然后,我们需要有三个按钮和一个文本框

private Button btnConnect;
private Button btnOpen;
private Button btnClose;
private TextView state;```
接着,我们需要tcp通讯的相关控件

  private Socket socket;
  private PrintStream output;
  private InputStream input;
  private String readMessage;
  private BufferedReader bufferedReader = null;```
最后,我们需要写一个函数,将控件和它们对应的id连接起来

public void initView()
{
btnClose = (Button)findViewById(R.id.btn1);
btnOpen = (Button)findViewById(R.id.btn2);
btnConnect= (Button)findViewById(R.id.btn3);
state = (TextView)findViewById(R.id.tx1);
}```

添加监听

因为按钮要实现的功能都不一样,所以我们需要对每个按钮添加对应的监听事件

  1. btnConnect
    btnConnect.setOnClickListener(new Button.OnClickListener()
    {
      @Override
      public void onClick(View v)
      {
        initClientSocket();
       
      }
    });```
2. btnOpen

btnOpen.setOnClickListener(new Button.OnClickListener()
{
@Override
public void onClick(View v)
{
sendMessage("(@devcall "MCU_RES" (uartdata "open") (lambda x x))"+"\r\n");

  }
});```
  1. btnClose
    btnClose.setOnClickListener(new Button.OnClickListener()
    {
      @Override
      public void onClick(View v)
      {
        sendMessage("(@devcall \"MCU_RES\" (uartdata \"close\") (lambda x x))"+"\r\n");

      }
    });```

##初始化
对于一个socket通讯,我们首先要对它进行初始化,建立socket连接。

private void initClientSocket()
{
try
{

  socket = new Socket(SERVER_HOST_IP, SERVER_HOST_PORT);
  output = new PrintStream(socket.getOutputStream(), true, "utf-8");
  GetLogTask task = new GetLogTask();
  SendLogTask task1=new SendLogTask(); 
  task.execute();
  task1.execute();
  sendMessage("(login\"xxx\"\"code\"\"xxx\" \"USER\")"+"\r\n");

}
catch (UnknownHostException e)
{
}
catch (IOException e)
{
}

}```
其中,sendMessage中间的信息是登录服务器用的,因此放在初始化函数里,只执行一次。我用的是我以前推荐的方法,所以可以当成一个示例,如果用的是别的服务器,可以根据自己的需要修改初始化代码。
其中GetLogTask是用来接收设备端信息的,而SendLogTask是用来发送心跳与服务器进行通讯的,具体代码等下次再说。

相关文章

  • ESP8266学习笔记(九)

    通过上次的说明,在基本的app界面xml编好了之后,我们就开始写主程序文件。 变量申明 首先,tcp通讯需要的是服...

  • 【ESP8266】使用uPyLoader调试运行MicroPyt

    前言 在《基于ESP8266的MicroPython入门笔记》这篇文章中博主记录了在ESP8266运行MicroP...

  • ESP8266学习笔记(十)

    上一次我们讲了app的基本控件的监听和初始化的过程,这次我们就把上次提到的socket通讯进行更细的讲解。 发送消...

  • ESP8266学习笔记(一)

    这段时间一直在想着设计一个远程遥控开关,所以这个星期在研究esp8266这款芯片,接下来我要讲的内容也是跟这个芯片...

  • ESP8266学习笔记(五)

    上次讲了基础的网络开发,已经可以满足基本的调试需求了,但是当我们真正做项目时,我们是不可能把自己的电脑作为一个实时...

  • ESP8266学习笔记(二)

    上一周讲了ESP8266的初步开发,也就是AT模式工作,这种模式是最适合初学者使用的,因为wifi模块内部的函数都...

  • ESP8266学习笔记(四)

    通过上次讲了ESP8266的SDK基础开发和之前的介绍,相信大家对这块芯片已经有了比较详细的了解了,这一周我们就来...

  • ESP8266学习笔记(三)

    上一次讲了ESP8266这块芯片的深度开发的准备工作和有关编译指导文件makefile的一些要点,那么这一次就来讲...

  • ESP8266学习笔记(八)

    这次我们开始进入android上位机的开发,根据上次的介绍,这次针对ESP8266的上位机我们会采用与公网服务器对...

  • wifi模块ESP8266学习笔记-使用乐鑫NON-OS SDK

    上一篇是wifi模块ESP8266学习笔记-环境搭建,踏了点坑,接下来(也就是12月1号)动手写了个Hello W...

网友评论

    本文标题:ESP8266学习笔记(九)

    本文链接:https://www.haomeiwen.com/subject/prnypttx.html