简单智能远程控制服务器课题

一、项目概述:简单智能远程监控

    功能:

服务器端:

1、服务器端利用随机数模拟向串口读取传感数据,需要模拟的传感数据要求有:温度、湿度、光

   照、室内噪音度等等。

 

2、服务器要求在数据保中保存有采集传感数据的日期和时间。

 

3、服务器利用网络接收客户端发送过来的设备控制信号,通过写驱动,实现对底层硬件的控制,

   这里使用打印显示的方式模拟。

 

4、在进程之间IPC通信时,要求使用文件锁或信号量实现资源保护。

 

客户端:

 

1、客户端能够通过网络通信实现接收服务器端传输过来的传感数据,并将传感数据打印到屏幕上

   显示。

 

2、客户端能够从键盘输入控制信号,并且通信将控制信号发送给服务器。

 

3、客户端要求实现控制信号有,开灯、关灯,开风扇、关风扇,开窗、关窗,开空调、关空调等。

 

4、如果有安卓客户端的话,要求能与安卓客户端通信。

 

实现:

服务器端:

    1、利用linux C实现服务器;

    2、服务器端使用多进程实现多客户网络服务;

    3、服务器多个进程之间需要使用IPC通信(进程间通信);

客户端:

        1、在linux C下实现网络客户端;

2、为了实现同时读阻塞的键盘和阻塞的网络,使用多路IO(select或POLL机制)实现阻塞的读键盘和

读网络。

服务器客户端的网络通信:

1、这里要求采用TCP协议进行通信,实现所要求的S/C模式,并且要求实现多客户服务。



涉及知识:
(1)文件io操作  (2)时间函数  (3)进程控制  (4)信号  (5)进程间通信(IPC) 
  (6)线程控制。(7)高级IO的多路IO、文件锁 (8)网络通信等等。类容基本囊括系统编程
和网络编程课程内所讲授的核心知识点。


学生完成本项目的目的:
1、利用项目实操强化c语言的使用,有效增加学生进企业前的实际编程代码量的积累。
2、实现系统编程、网络编程知识从理论到实践过度,经过切身实际项目的操作,加深对于这门课  
   知识系统化理解。
3、利用功能上几乎完全的企业项目,让学生了解实际企业项目的大致开发流程。
4、有效提升学生实际自主解决问题的能力,以及培养团队合作的能力。


    课程设计的最后成果,内容包括:
      1、答辩,项目成果演示。
      2、预习报告(题目、流程图、程序的设计思想等);
      3、实验总结报告(测试方案、源程序代码(需打印)、调试中问题及解决方案、小结等)。

二、详细图解




三、程序逻辑框图

(1)服务器程序

•随机数模拟传感数据
        /* 利用时间作为随机数种子 */
        tim = time(NULL);
        srand(tim);
        /* 取随机数后两位作为模拟数值 */
        illumination = (float)(rand()%100);//光照
        humidity     = (float)(rand()%100);//湿度
        temperature  = (float)(rand()%100);//温度



•数据包格式
a、传感数据包的字符串格式
光照;温度;湿度;采集时间\r\n


b、控制命令
#define FAN_ON         "1"
#define FAN_OFF         "2"
#define LIGHT_ON       "3"
#define LIGHT_OFF       "4" 
#define WINDOW_OPEN     "5"
#define WINDOW_CLOSE     "6"
#define CLIENT_OFFLINE   "7"




•读写驱动进程与客户服务进程之间的TPC通信
a、共享内存:实现传感数据的通信
b、消息队列:实现控制命令的通信

共享内存的最大不足之处在于,由于多个进程对同一块内存区域有访问的权限,各个进程之间的同步问题显得尤为重要。必须控制同一时刻只有一个进程对共享内存区域写入数据,否则将造成数据的混乱。由于本项目只有一个进程写共享内存不需要额外的同步机制


•服务器与客户的强扩通信
a、TCP协议
b、S/C模式


四、客户端
(1)安卓客户端:略


(2)linux客户端:自己实现,使用多路io(select或者poll)机制,实现阻塞读键盘和读网络



  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值