# tv **Repository Path**: Jimth/tv ## Basic Information - **Project Name**: tv - **Description**: tv库是一款应用于嵌入式产品的基于事件驱动的库,主要用于无OS系统的嵌入式产品中。 tv库提供: 1、基于消息机制的异步事件通知机制,方便各模块之间低耦合的通信。 2、提供软定时器,模块内部可基于定时器主动执行一些动作,如定时查询等。 - **Primary Language**: C - **License**: 0BSD - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 2 - **Forks**: 2 - **Created**: 2021-08-25 - **Last Updated**: 2022-09-17 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # tv #### 介绍 tv库是一款应用于嵌入式产品的基于事件驱动的库,主要用于无OS系统的嵌入式产品中。 tv库提供: 1、基于消息机制的异步事件通知机制,方便各模块之间低耦合的通信。 2、提供软定时器,模块内部可基于定时器主动执行一些动作,如定时查询等。 #### 软件架构 tv库是一个基于消息驱动的库。 tv库定义了一个名为struct _tvControl的对象,用于接收消息响应。所有需要接收消息的对象必须由此结构体派生。 tv库同时还提供了软定时器功能。 #### 安装教程 1. xxxx 2. xxxx 3. xxxx #### 使用说明 1. 在main函数初始化中添加tvRunnerInit(); 2. 在main函数中,添加app_init()调用,app_init为用户代码入口,由用户实现; 3. 在main的while(1)循环中,添加tvRunnerRun()函数,至此,整个库跑起来了; 4. tvPeekMessage函数用于发送消息。可指定接收消息的具体对象;当不指定时(目标对象NULL),将把消息发送给默认对象;默认对象由函数tvRunnerDefaultMessageDstSet指定。 tv库创建对象时,默认使用malloc分配内存,可在tvConfig.h中修改为其他方式; tv库移植部分,需要用户实现uint32_t systemGetMsSinceStart(void)函数,此函数返回CPU自上电后运行的时间,单位ms。 需要注意的是:由于tv库与用户代码是在同一个任务中运行的,因此,在编码时,尽量避免硬延时(如i=50000; while(i--);之类)。 #### 参与贡献 1. Fork 本仓库 2. 新建 Feat_xxx 分支 3. 提交代码 4. 新建 Pull Request