
智能音箱
学习我是拒绝的
这个作者很懒,什么都没留下…
展开
-
六、服务端开发
服务器端开发:服务器设计框架:缓解和转发的作用连接音箱和app最大一个作用转发一个app操作音箱app绑定音箱服务器类实现:jsoncpplibventverser.h当有客户端发起连接的时候调用listener_cb回调函数server.hserver.cppserver.cpp在main.cpp创建服务器对象服务器数据解析:这里解析解析消息有可能app发过来有可能音箱发过来app向服务器发送音箱向服务器发送server.hserver.cppnode.h保活消息。原创 2023-02-01 18:32:13 · 1877 阅读 · 0 评论 -
五、mini2440按键,从设备文件读取按键数据
select.c。原创 2023-02-01 17:49:29 · 243 阅读 · 0 评论 -
四、与服务器进行数据交换
JSON 值可以是:字符串(在双引号中)、数组(在中括号中)、数字(整数或浮点数)、逻辑值(true 或 false)、对象(在大括号中)、 null。json键值对用来保存js对象的一种方式,键/值对包括字段名称(在双引号中),后面写一个冒号,然后是值。成功:如果调用此alarm()前,进程已经设置了闹钟时间,则返回上一个闹钟时间的剩余时间,否则返回0。json是一种轻量级的数据交换格式,json选用完全独立于语言的文本格局,。来简化上面的JSON,这是一个拥有一个name数组的对象。原创 2023-02-01 17:43:35 · 358 阅读 · 0 评论 -
三、结束播放
暂停前提正在播放或者已经暂停了都不可以。没有播放没法继续,如果没有暂停没法继续。父进程把子孙进程杀死就可以了。暂停继续:通过信号继续。通过信号让子孙进程停止。只有播放才能切换上一首。信号杀死再选择一首歌。player.c实现。2、暂停也不能上一首。原创 2023-02-01 17:00:36 · 191 阅读 · 0 评论 -
三、初始化共享内存
因为涉及到上一首下一首,需要改变链表,上一首下一首,双向循环链表。在pleyer.c中编写开始播放的主要程序。开始播放涉及到多进程并发涉及到共享内存。父进程作用产生子进程,孙进程播放音乐。父进程创建子进程,子进程创建孙进程。在main.c中初始化共享内存。当输出1的时候开始播放音乐。开始播放需要有三个进程的。原创 2023-02-01 16:46:34 · 513 阅读 · 0 评论 -
二、音箱初始化
因为开发板有led,现在考虑连接的时候用led提示,发起连接的时候第一个灯亮,初始化时led灭,音箱的触发要么是按键触发g_buttonfd,要么是app触发g_sockfd。在select.c中加一个标准输入 的测试代码,后续会删除,主要用于测试功能。考虑到会连接失败,线程会向服务器发起5次连接,如果五次均为成功,返回失败。初始化网络,一旦连接成功后,下面就要监听,到底是按键还是网络有信息发过来。在main.c中做一个判断,当网络初始化失败后亮两个灯。再开始播放音乐的时候,需要把所有音乐的名字读出来。原创 2023-02-01 11:13:51 · 572 阅读 · 0 评论 -
一、项目简介客户端实现:
使用mini2440开发板,实现播放音乐客户端需要同时做三件事情:播放音乐监听按键(读设备文件和文件描述符)上位机app有没有发出指令(监听网络socket,文件描述符,app通过网络发送数据)对于上述事情的2和3使用select来监听文件描述符因为存在监听和播放两个事情,需要使用并发,这里选择多进程来并发,因为多进程比较健壮,一个负责监听,一个负责播放音乐创建三个进程父进程创建子进程,子进程创建孙进程父进程通过select来监听按键和网络。原创 2023-02-01 00:18:50 · 278 阅读 · 2 评论