Exemplo n.º 1
0
/**
* @brief 保存综合参数
* @return 0成功, 否则失败
*/
int SaveParaMix(void)
{
	SaveBinFile(PARAM_SAVE_PATH "mix.bin", MIX_MAGIC, (unsigned char *)&ParaMixSave, sizeof(ParaMixSave));
	SaveBinFile(PARAM_BAK_PATH "mix.bin", MIX_MAGIC, (unsigned char *)&ParaMixSave, sizeof(ParaMixSave));

	return 0;
}
Exemplo n.º 2
0
void SavePlStic(void)
{
	sysclock_t clock;
	int i = 0;
	char filename[32];

	printf("SavePlStic...\n");
	PrintLog(0, "SavePlStic...\n");
	
	sprintf(filename,"/home/nandflash/data/plsticinfo");
	SysClockReadCurrent(&clock);//读系统时间

	if(ReadBinFile(filename, PLMDB_MAGIC, (unsigned char *)&pl_read_meter_stic, sizeof(pl_read_meter_stic)) > 0) 
	{
		PrintLog(0, "ReadBinFileSucc...\n");
	}
	else 
	{
		PrintLog(0, "ReadBinFileFail...\n");
	}
	i = clock.day;
	if(i < 1 || i > 31)		return;
	pl_read_meter_stic[i - 1].read_meter_succ_cnt = check_read_meter_succ_cnt();
	pl_read_meter_stic[i - 1].read_meter_prd = check_read_meter_succ_cnt()*100/(meter_total_cnt - cen_meter_cnt);

	LOCK_PLMDB;
	system("rm -r -f /home/nandflash/data/plsticinfo");
	SaveBinFile(filename, PLMDB_MAGIC, (unsigned char *)&pl_read_meter_stic,sizeof(pl_read_meter_stic));
	UNLOCK_PLMDB;
}
Exemplo n.º 3
0
/**
* @brief 保存月冻结表数据
* @param pmon 缓存区指针
* @param dbtime 保存时间
* @return 成功返回保存表数, 失败返回0
*/
static int SavePlMdbMonth(const plmdb_mon_t *pmon, dbtime_t dbtime)
{
	char filename[32];
	int writelen, metnum;
	unsigned char *pcache;
	plmdb_savehead_t *phead;

	printf("SavePlMdbMonth...\n");
	PlMdbFileName(filename, PLMDB_MONTH, dbtime);

	DebugPrint(LOGTYPE_SHORT, "save %s...\n", filename);

	for(metnum=MAX_PLCMET-1; metnum>=0; metnum--) {
		if(ParaMeter[metnum+PLC_BASEMETP].metp_id >= PLC_BASEMETP) break;
	}
	if(metnum < 0) return 0;
	metnum += 1;

	phead = (plmdb_savehead_t *)PlMdbCache;
	phead->metnum1 = phead->metnum2 = metnum;
	pcache = (unsigned char *)(phead+1);
	writelen = metnum*sizeof(plmdb_mon_t);
	memcpy(pcache, pmon, writelen);
	SaveBinFile(filename, PLMDB_MAGIC, (unsigned char *)phead, writelen+sizeof(plmdb_savehead_t));

	return metnum;
}
Exemplo n.º 4
0
/**
* @brief 保存事件
* @param idx 事件分类索引(重要事件,一般事件)
* @param pbuf 储存事件缓存区指针
*/
static void SaveAlarm(unsigned char idx, const alarm_t *pbuf)
{
	alarm_t *pbase;
	char filename[32];
	unsigned char idxbase;
	runstate_t *pstat = RunStateModify();

	AssertLogReturnVoid(idx>=2, "invalid idx(%d)\n", idx);

	if(0 == idx) pbase = AlarmBufferImportant;
	else pbase = AlarmBufferNormal;

	LockSysLock(LockIdAlarm);

	if(RunState.alarm.cur[idx] == RunState.alarm.head[idx])  //empty
		pstat->alarm.cur[idx] = pstat->alarm.head[idx] = 0;

	//pbase[RunState.alarm.cur[idx]] = *pbuf;
	memcpy(pbase+RunState.alarm.cur[idx], pbuf, sizeof(alarm_t));

	AlarmFileName(idx, RunState.alarm.cur[idx], filename);

	idxbase = RunState.alarm.cur[idx] & ALARM_BASEMASK;
	SaveBinFile(filename, ALARM_MAGIC, (unsigned char *)&pbase[idxbase], sizeof(alarm_t)*ALMNUM_PERFILE);

	pstat->alarm.cur[idx]++;
	if(RunState.alarm.cur[idx] == RunState.alarm.head[idx]) pstat->alarm.head[idx]++;

	UnlockSysLock(LockIdAlarm);
}
Exemplo n.º 5
0
static void SavePltData(const sysclock_t *pclk)
{
	char filename[64];
	int len, prd, itemlen;
	plt_filedata_t *pcache;
	unsigned char *pbuf;

	sprintf(filename, "%sdaytest@%02d%02d%02d.db", PLT_FILEPATH, pclk->year, pclk->month, pclk->day);

	itemlen = PltConfig.maxmet*MET_DATA_LEN+PRD_HEAD_LEN;
	len = itemlen*PltConfig.maxprd + FILE_HEAD_LEN;
	AssertLogReturnVoid(len > LEN_FILE_CACHE, "too long file(%d)\n", len);

	pcache = (plt_filedata_t *)PltFileCache;
	pcache->max_prd = PltConfig.maxprd;
	pcache->invaid_prd = PltFileData.invaid_prd;
	pcache->max_met = PltConfig.maxmet;
	pbuf = (unsigned char *)pcache->prd;

	for(prd=0; prd<PltConfig.maxprd; prd++) {
		memcpy(pbuf, &PltFileData.prd[prd], itemlen);
		pbuf += itemlen;
	}

	SaveBinFile(filename, MAGIC_FILE_PLT, PltFileCache, len);
}
Exemplo n.º 6
0
int SavePlCjqNodeInfo(void)
{
	char filename[32];

	LOCK_PLMDB;
	printf("SavePlCjqNodeInfo...\n");
	PrintLog(LOGTYPE_DOWNLINK, "SavePlCjqNodeInfo...\n");

	system("rm -r -f /home/nandflash/data/plcjqnodeinfo");
	sprintf(filename,"/home/nandflash/data/plcjqnodeinfo");
	SaveBinFile(filename, PLMDB_MAGIC, (unsigned char *)&pl_cjq_info,sizeof(pl_cjq_info));
	UNLOCK_PLMDB;	
	return 1;
}
Exemplo n.º 7
0
/**
* @brief 保存重点用户表数据
* @param pimp 缓存区指针
* @param dbtime 保存时间
* @return 成功返回保存表数, 失败返回0
*/
static int SavePlMdbImp(const plmdb_imp_t *pimp, dbtime_t dbtime)
{
	char filename[32];

	printf("SavePlMdbImp...\n");
	if(0 == ParaMix.impuser.num) return 0;

	PlMdbFileName(filename, PLMDB_IMP, dbtime);

	DebugPrint(LOGTYPE_SHORT, "save %s...\n", filename);

	SaveBinFile(filename, PLMDB_MAGIC, (unsigned char *)pimp,sizeof(PlMdbImp));

	return MAX_IMPORTANT_USER;
}