desk_calendar/以上就是我项目文件夹的结构设置,其中软件包部分略有缩减。
├── Kconfig
├── README.md
├── SConscript
├── SConstruct
├── applications
│ ├── SConscript
│ ├── defines.h
│ ├── init.c
│ ├── keyboard.c
│ ├── logic.c
│ ├── main.c
│ ├── mqtt.c
│ ├── network.c
│ ├── qrcode_array.h
│ ├── screen.c
│ └── timer.c
├── makeimg.py
├── packages
│ ├── EasyFlash-v3.3.0
│ ├── SConscript
│ ├── airkissOpen-latest
│ ├── bs8116a-latest
│ │ ├── LICENSE
│ │ ├── README.md
│ │ ├── SConscript
│ │ ├── inc
│ │ ├── samples
│ │ └── src
│ ├── cJSON-v1.0.2
│ ├── fal-v0.3.0
│ ├── lunar_calendar-latest
│ │ ├── LICENSE
│ │ ├── README.md
│ │ ├── SConscript
│ │ ├── inc
│ │ ├── samples
│ │ └── src
│ ├── netutils-v1.1.0
│ ├── packages.dbsqlite
│ ├── pahomqtt-v1.1.0
│ ├── pkgs.json
│ ├── pkgs_error.json
│ └── u8g2-c-latest
├── ports
│ ├── SConscript
│ ├── easyflash
│ │ ├── SConscript
│ │ └── ef_fal_port.c
│ ├── fal
│ │ ├── SConscript
│ │ ├── fal_cfg.h
│ │ ├── fal_flash_port.c
│ │ └── fal_flash_sfud_port.c
│ └── wifi
│ ├── SConscript
│ ├── wifi_config.c
│ └── wifi_config.h
├── rtconfig.h
└── rtconfig.py
applications下面我随意挑选部分内容简单介绍一下:defines.h
├── SConscript /* 编译文件 */
├── defines.h /* 变量 函数声明 */
├── init.c /* 初始化 */
├── keyboard.c /* 键盘相关处理 */
├── logic.c /* 逻辑处理 */
├── main.c /* 主函数 */
├── mqtt.c /* MQTT操作相关 */
├── network.c /* 网络操作相关 */
├── qrcode_array.h /* 配网二维码数组 */
├── screen.c /* 屏幕操作相关 */
└── timer.c /* 计时器 */
#define MAX_TODO_SIZE 8 此处定义了我传输数据的结构体,大部分数据都是存储在这个结构体中。init.c
typedef struct {
char content[64];
short status;
} TODO;
typedef struct {
char date[16];
TODO todo_list[MAX_TODO_SIZE];
char festival[64];
char words[256];
} CALENDAR;
extern CALENDAR calendar_data;
/* 集中初始化 */这个函数将各个部分放置到一起,按照顺序逐个初始化。keyboard.c
void init_all(void) {
fal_init();
easyflash_init();
init_mq();
init_sem();
init_keyboard();
hwtimer_init();
}
/* 按键触发调用函数 */这里便是实现了检测到按键触发后的逻辑,将键值通过消息队列发送出去,并且启动按键提示灯和开始按键计时。
void got_key_callback(rt_uint8_t key_code) {
if (REFRESH_END_FLAG == 1) {
/* 发送消息到消息队列中 */
int result = rt_mq_send(&mq, &key_code, 1);
if (result != RT_EOK) {
rt_kprintf("rt_mq_send ERR\n");
}
touch_led();
start_timer(30);
REFRESH_END_FLAG = 0;
}
}
Liam 发表于 2019-12-9 16:42
可以把服务端后台、前台、终端、通信这个系统串起来很厉害!有一点我觉得不是很完美的地方,终端这里PCB上 ...