lv17 安防监控项目实战 3

代码目录

框架 

our_storage 编译最终生成的目标文件

obj 编译生成中间的.o文件
data_global.c 公共资源定义(使用在外extern即可)

        定义了锁

        定义了条件变量

        消息队列id、共享内存id、信号量id及key值

        发送短信、接收短信的号码

        向消息队列发送消息的函数(与cgi进程通信)

data_global.h 

        设备节点

        通信协议

        

 

 main.c

        引用data_global的互斥锁和条件变量,并初始化

        信号处理函数(捕获ctrl+c,线程回收处理函数,因为这个程序一但运行不会停止

        释放锁和条件变量,分离线程资源,进程退出后把线程清理)

        创建线程分配资源,线程处理函数在其他文件中实现

        配合创建使用,等待线程结束并收回线程资源(虽然不会执行)
pthread_buzzer.c 线程操作

        思路

        蜂鸣器驱动,向上提供接口,设备节点

        打开蜂鸣器,关闭蜂鸣器,通过ioctl控制设备节点

pthread_led.c

        思路

        led驱动,向上提供接口,设备节点

            5.    open(dev_led,  )
            6.    pthread_cond_wait (cond_led,  ); //等待条件表里
            7.    获取dev_led_mask(控制标志)//互斥锁
            8.    通过ioctl()控制led

pthread_sqlite.c 

        保存数据、更新数据

pthread_transfer.c

        zigbee向a9发送数据

        实现进程间通信

        实现线程间同步互斥

        从m0上把数据拿过来通知其他线程工作

 pthread_refresh.c

        把a9采集的数据和zigbee的采集的数据向网页上展示

pthread_client_request.c

        把网页当作客户端,a9当作服务端,客户端发送命令即向服务器进行请求

        通过消息队列机制

        通过拿到消息队列的id,实现读写

        拿到消息队列的消息,判断消息类型处理不同的事情(led、蜂鸣器等)

pthread_sms.c 

        gprs线程发短信、打电话

sem.c

        与其他进程间通信,CGI

        线程间通信、同步互斥

        

        
 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

4IOT

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值