本帖最后由 keer_zu 于 2020-4-10 16:17 编辑
这里实现了一个简单的key-value的内存数据库,可以在单片机上运行。
可以在单片机上使用的内存数据库
接口简单:
- /////////////////////////// user implementation //////////////////////
- typedef int (*EVENT_HANDLER)(const int event,const int msgId);
- int CRITICAL_INIT();
- void ENTER_CRITICAL();
- void EXIT_CRITICAL();
- int CRITICAL_DEINIT();
- /////////////////////////////////// debug ////////////////////////////
- //#define __DEBUG__
- #ifdef __DEBUG__
- #define DEBUG(format,...) printf("File: "__FILE__", Line: %05d: "format"/n", __LINE__, ##__VA_ARGS__)
- #else
- #define DEBUG(format,...)
- #endif
- /*example*/
- // char str[]="Hello World";
- // DEBUG("A ha, check me: %s",str);
- //
- //////////////////////////////////////////////////////////////////////
- #define MAX_ASYNC_MSG_NUM 10
- ///////////////////////////// API ////////////////////////////////////
- int CommuInit(void);
- int CommSetEventHandler(EVENT_HANDLER ev);
- int CommSaveMsg(const int msgId,const char *msgData,unsigned int dataLen);
- int CommGetMsg(const int msgId,char *msgData,unsigned int* pDataLen);
- int OnTimer();
- #endif
源代码:
https://github.com/smtp-http/ucomlib.git
欢迎star,fork。。。
欢迎一起完善。
在mcu下,可以在定时器里面调用:OnTimer(),来实现超时机制。
超时后的处理在类似:- int handler(const int event,const int msgId)
这样的函数中实现,比如读出超时消息等等。
|