FreeRtos项目-智能家居(3)

智能家居-底层控制模块实现
一.底层控制模块的控制逻辑
底层控制模块会创建两个任务,任务1用于处理灯光控制的业务,任务2用于处理风扇控制的业务。
每个任务跟中间层的总控制模块之间都有一个mmc_ctl_stru模块间通讯结构体。总控制模块通过
sem_req向底层下发控制命令,底层通过sem_ack应答。底层和中间层的总控制模块之间通过共享
内存传递数据,p_shared_mem就是指向这块共享内存的指针,shared_mem_nbyte是共享内存的
大小。mmc_ctl_stru结构体如下所示:
typedef struct
        {
                SemaphoreHandle_t sem_req;  //上层模块向下层模块请求数据的信号量
                SemaphoreHandle_t sem_ack;  //下层模块向上层模块应答的信号量
                void *p_shared_mem;         //上下层模块共用的内存块,上面两个结构体就是
                int shared_mem_nbyte;       //共享内存块的字节长度
        } mmc_ctl_stru;
二.控制函数与驱动适配层的实现
由于控制只涉及到设备的开关,所以函数的实现就只有一个开关而已,这样驱动适配层就很容易实现了。
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

小吴的嵌入式笔记

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

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

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

打赏作者

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

抵扣说明:

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

余额充值