代码目录
框架
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()控制ledpthread_sqlite.c 保存数据、更新数据pthread_transfer.czigbee向a9发送数据实现进程间通信实现线程间同步互斥从m0上把数据拿过来通知其他线程工作pthread_refresh.c把a9采集的数据和zigbee的采集的数据向网页上展示pthread_client_request.c把网页当作客户端,a9当作服务端,客户端发送命令即向服务器进行请求通过消息队列机制通过拿到消息队列的id,实现读写拿到消息队列的消息,判断消息类型处理不同的事情(led、蜂鸣器等)pthread_sms.c gprs线程发短信、打电话sem.c与其他进程间通信,CGI线程间通信、同步互斥