智能家居-底层控制模块实现
一.底层控制模块的控制逻辑

底层控制模块会创建两个任务,任务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;
二.控制函数与驱动适配层的实现
由于控制只涉及到设备的开关,所以函数的实现就只有一个开关而已,这样驱动适配层就很容易实现了。