1.一种嵌入式设备远程实验方法,包括以下步骤:
1)首先搭建Sip服务器和Web服务器,具体包括:
Sip服务器用于建立信令通信,使用户可以发现远端嵌入式设备并绑定该设备以及转发用户消息到嵌入式设备;Web服务器用于转发接收用户来自浏览器发送的消息,将消息体转为满足Sip协议要求的Sip消息到Sip服务器,还需要有保存用户上传文件以及给嵌入式设备下载文件的功能,还需要保存来自嵌入式设备的反馈信息;
2)运行嵌入式设备代码进而和Sip服务器建立连接等待被用户绑定,具体包括:
设备在本地两个进程代码,分别为Sip进程和Dev进程,Sip进程用于Sip消息的发送和接收,Dev进程用于Sip消息的解析和处理,两个进程之间采用了满足UDP协议的UPD通信实现了进程间通信,进程间通信实现的功能是将Sip进程收到的来自Sip服务器发来的用户消息的消息体转发给Dev进程,Dev进程负责发起设备登录消息和解析消息体,解析得到具体的命令后执行对应命令;通过运行这两个进程完成设备登录到Sip服务器并发送心跳保活消息至Sip服务器,使得设备保持在线状态;从而使得嵌入式设备可以被远端的用户发现并进行绑定;
3)用户登录与Sip服务器建立通信并绑定设备,具体包括:用户通过浏览器进行登录操作,通过Web服务器的协议转换功能使得浏览器用户可以和Sip服务器建立连接,进行信令通信;由于嵌入式设备已经登录,因此用户登录后可以看见已经在线的嵌入式设备并选择一台在线的嵌入式设备进行绑定;
4)嵌入式设备等待用户发送命令,并解析命令,具体包括:用户通过浏览器发送命令,通过Sip服务器转发到绑定的嵌入式设备,设备通过Sip进程接收这个消息,转发消息的消息体到Dev进程进行解析处理,Dev进程通过判断消息体内容得知执行的命令种类,命令种类包括下载命令和操作命令,操作命令是Linux常用命令,下载命令是和前端以及Sip服务器协商好的自定义的字符串;
5)执行下载命令进行文件下载,具体包括:如果解析后发现是下载命令,那么获取下载命令中待下载文件的名字的字符串;在嵌入式设备本地创建同名文件,接着通过http协议和Web服务器进行通信,具体操作就是Dev进程使用libcurl库提供的GET方法访问Web服务器提供的文件下载接口,将Web服务器反馈的数据保存到嵌入式设备本地的同名文件当中实现文件下载的功能;
6)执行操作命令并获取嵌入式设备执行命令后的响应数据,具体包括:如果是操作命令,那么Dev进程会通过调用system或popen函数执行解析出的具体操作命令,通过输出重定向的方式将嵌入式设备执行操作的反馈数据保存到指定的文件当中,通过读取这个文件的内容获取到嵌入式设备执行操作的响应数据;
7)将响应数据反馈到Web服务器进行保存,具体包括:获取嵌入式设备执行操作的反馈数据后,再次通过http协议和Web服务器进行通信,通过Dev进程使用libcurl库提供的POST方法访问Web提供的数据上传接口,将数据上传到Web服务器,被Web服务器保存到数据库当中;
8)用户通过浏览器请求获取Web服务器的数据库内容将其显示在浏览器。