赞
踩
(PS:房屋模型的搭建是靠纸板箱和淘宝买的家居模型,户型参考了留学时短租的公寓~)
到目前为止,对于linux的嵌入式软件开发,从底层到上层都有了一定的认识。这个项目的初衷就是整合知识并以工厂模式的架构开发项目。
对于这个项目的实现,采用上节学到的工厂模式来设计,从而提升整体代码的稳定性和可拓展性。
阅读功能需求后,结合工厂模式的思路可以先设计两个工厂:指令工厂 和 设备工厂
工厂模式的主要的考量有两点:
- struct device //设备工厂
- {
- char device_name[64]; //设备名称
- int status;
-
- int (*init)(); //初始化函数
- int (*open)(); //打开设备的函数
- int (*close)(); //关闭设备的函数
- int (*read_status)(); //查看设备状态的函数
-
-
- struct device *next;
- };
-
-
- struct cmd //指令工厂
- {
- char cmd_name[64]; //指令名称
- //char cmd_log[1024]; //指令日志
- int (*init)(int port, char *IP, char *UART, int BAUD); //初始化函数
- int (*accept)(int fd); //接受函数
- int (*cmd_handler)(struct device *phead, int fd); //处理指令的函数
-
-
- struct cmd *next;
- };
Q:如何实现socket服务器的远程控制?
A:使用之前学习的socket知识,创建一个服务端一个客户端,服务端负责创建套接字并绑定,然后阻塞监听;客户端负责建立连接后发送指令。指令在服务端通过指令工厂中socket对象的cmd_handler函数进行分析并作出相关动作。最后在main函数中使用一个线程不断阻塞等待新客户端的加入;使用另一个线程不断阻塞接受客户端传来的指令并分析。
参考我之前的博文:
(
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/weixin_40725706/article/detail/466582
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。