本帖最后由 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)
这样的函数中实现,比如读出超时消息等等。
|