河北水利局项目
This commit is contained in:
71
meterseltable/meterseltable.c
Normal file
71
meterseltable/meterseltable.c
Normal file
@@ -0,0 +1,71 @@
|
||||
#include "meterseltable.h"
|
||||
#include "bl24c512.h"
|
||||
//#include "GWD13762.h"
|
||||
#include "filesave.h"
|
||||
|
||||
extern u32 Dwbin2bcd(u32 bin);
|
||||
|
||||
struct meterseltable_struct
|
||||
{
|
||||
u8 addr[METER_ADDR_LEN];
|
||||
u8 type;
|
||||
};
|
||||
|
||||
|
||||
static struct meterseltable_struct meterseltable[METERTABLE_NUM_MAX];
|
||||
static u16 meterseltablenum=0;
|
||||
|
||||
|
||||
//u8
|
||||
void meterseltable_init()
|
||||
{
|
||||
meterseltablenum = 0;
|
||||
memset(meterseltable,0,sizeof(meterseltable));
|
||||
}
|
||||
|
||||
u16 meterseltable_getnum()
|
||||
{
|
||||
if(meterseltablenum>METERTABLE_NUM_MAX)
|
||||
{
|
||||
meterseltable_init();
|
||||
}
|
||||
return meterseltablenum;
|
||||
}
|
||||
|
||||
u8 * meterseltable_getadddr(u16 index)
|
||||
{
|
||||
if(index<meterseltablenum)
|
||||
{
|
||||
return meterseltable[index].addr;
|
||||
}
|
||||
return NULL;
|
||||
}
|
||||
|
||||
bool meterseltable_find(const u8 * addr,u16 * index)
|
||||
{
|
||||
u16 i = 0;
|
||||
for (i=0; i<meterseltable_getnum(); i++)
|
||||
{
|
||||
if(0 == memcmp(meterseltable_getadddr(i),addr,METER_ADDR_LEN))
|
||||
{
|
||||
* index = i;
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
void meterseltable_add(const u8 * addr,const u8 type)
|
||||
{
|
||||
u16 index = 0;
|
||||
if(!meterseltable_find(addr,&index))
|
||||
{
|
||||
if(meterseltablenum < METERTABLE_NUM_MAX )
|
||||
{
|
||||
memmove(meterseltable[meterseltablenum].addr,addr,METER_ADDR_LEN);
|
||||
meterseltable[meterseltablenum].type = type;
|
||||
meterseltablenum ++;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
15
meterseltable/meterseltable.h
Normal file
15
meterseltable/meterseltable.h
Normal file
@@ -0,0 +1,15 @@
|
||||
|
||||
#ifndef __METERSELTABLE_H__
|
||||
#define __METERSELTABLE_H__
|
||||
|
||||
|
||||
#include "include.h"
|
||||
|
||||
void meterseltable_init();
|
||||
bool meterseltable_find(const u8 * addr,u16 * index);
|
||||
void meterseltable_add(const u8 * addr,const u8 type);
|
||||
u8 * meterseltable_getadddr(u16 index);
|
||||
u16 meterseltable_getnum();
|
||||
|
||||
#endif
|
||||
|
||||
Reference in New Issue
Block a user