Ejemplo n.º 1
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;
}
Ejemplo n.º 2
0
int AlarmInit(void)
{
	int idx, offset;
	char filename[32];
	alarm_t *pbuf;

	memset(AlarmBufferImportant, 0, sizeof(AlarmBufferImportant));
	memset(AlarmBufferNormal, 0, sizeof(AlarmBufferNormal));

	for(idx=0; idx<2; idx++) {
		if(0 == idx) pbuf = AlarmBufferImportant;
		else pbuf = AlarmBufferNormal;

		DebugPrint(0, "  load ");
		for(offset=0; offset<256; offset+=ALMNUM_PERFILE,pbuf+=ALMNUM_PERFILE) {
			AlarmFileName(idx, offset, filename);

			DebugPrint(0, "%c%d", (idx)?'n':'i', offset/ALMNUM_PERFILE);
			if(ReadBinFile(filename, ALARM_MAGIC, (unsigned char *)pbuf, sizeof(alarm_t)*ALMNUM_PERFILE) > 0) {
				DebugPrint(0, " ok, ");
			}
			else {
				DebugPrint(0, " fail, ");
			}
		}
		DebugPrint(0, "\n");
	}

	LockIdAlarm = RegisterSysLock();

	SET_INIT_FLAG(AlarmInit);

	return 0;
}
Ejemplo n.º 3
0
/**
* @brief 从文件中载入综合参数
* @return 0成功, 否则失败
*/
int LoadParaMix(void)
{
	LoadDefParaMix();

	DebugPrint(0, "  load param mix...(size=%d)", sizeof(ParaMixSave)+12);

	if(ReadBinFile(PARAM_SAVE_PATH "mix.bin", MIX_MAGIC, (unsigned char *)&ParaMixSave, sizeof(ParaMixSave)) < 0) {
		DebugPrint(0, "no main, ");
		if(ReadBinFile(PARAM_BAK_PATH "mix.bin", MIX_MAGIC, (unsigned char *)&ParaMixSave, sizeof(ParaMixSave)) < 0)
			DebugPrint(0, "no bak\n");
			return 1;
	}

	DebugPrint(0, "ok\n");
	return 0;
}
Ejemplo n.º 4
0
void  TestDeviceCode()
{

    char     filename[200] = {0};
    sprintf(filename,"/bin/udevcode");
    unsigned char devicecode[16];
    unsigned char number[4];
    if(ReadBinFile(filename, UUID_MAGIC, devicecode, 16) > 0)
    {
        DebugPrint(0, "Read UUID ok, \n uuid    :");
        PrintHexLog(0, devicecode, 16);
    }
    else
    {
        DebugPrint(0, "Read UUID  fail, ");
    }



}
Ejemplo n.º 5
0
int main(int argc, const char * argv[])
{
	if (argc < 5)
	{
		printf("!!!Error: Not enough arguments. <first_long_number_filename> [ + | - | * | / | % | ^ ] <second_long_number_filename> <result_long_number_filename>!!!\n");
		return 0;
	}

	if (argc > 7)
	{
		printf("!!!Error: Many arguments. <first_long_number_filename> [ + | - | * | / | % | ^ ] <second_long_number_filename> <result_long_number_filename> <module_long_number_filename> <-b>!!!\n");
		return 0;
	}

	FILE* firstLongNumFile = fopen(argv[1], "r");	
	if (!firstLongNumFile)	//проверка открытия первого файла с числом
	{
		printf("!!!Error: Unable to open file: %s !!!\n", argv[1]);
		return 0;
	}
	fclose(firstLongNumFile);

	const char* operation = argv[2];	
	if ((strlen(operation) > 1 || operation[0] == '\0') || operation[0] != '+' && operation[0] != '-' && operation[0] != '*' && operation[0] != '/' && operation[0] != '%' && operation[0] != '^')	//проверка оператора
	{
		printf("!!!Error: Wrong operation: %s !!!\n", operation);
		return 0;
	}

	FILE* secondLongNumFile = fopen(argv[3], "r");	//проверка открытия второго файла с числом
	if (!secondLongNumFile)
	{
		printf("!!!Error: Unable to open file: %s !!!\n", argv[3]);
		return 0;
	}
	fclose(secondLongNumFile);

	FILE* resultLongNumFile = fopen(argv[4], "r");
	if (!resultLongNumFile)	//проверка открытия файла для результата
	{
		printf("!!!Error: Unable to open file: %s !!!\n", argv[4]);
		return 0;
	}
	fclose(resultLongNumFile);

	////////////////////////////////////////////////////////////////////////////////

	int bin = 0; //флаг для бинарного файла

	if (argc == 5)
	if (argv[2][0] == '^')
	{
		printf("!!!Error: Input module file!!!\n");
		return 0;
	}

	if (argc == 6)
	{
		if (argv[2][0] == '^')
		{
			FILE* moduleLongNumFile = fopen(argv[5], "r");
			if (!moduleLongNumFile)
			{
				printf("!!!Error: Unable to open file: %s !!!\n", argv[5]);
				return 0;
			}
			fclose(moduleLongNumFile);
		}
		else
		{
			if (strcmp(argv[5], "-b"))
			{
				printf("!!!Error: Invalid flag: %s !!!\n", argv[5]);
				return 0;
			}
			bin = 1;
		}

	}

	if (argc == 7)
	{
		FILE* moduleLongNumFile = fopen(argv[5], "r");
		if (!moduleLongNumFile)
		{
			printf("!!!Error: Unable to open file: %s !!!\n", argv[5]);
			return 0;
		}
		fclose(moduleLongNumFile);

		if (strcmp(argv[6], "-b"))
		{
			printf("!!!Error: Invalid flag: %s !!!\n", argv[6]);
			return 0;
		}
		bin = 1;
	}

	struct LongNumber a, b;

	//загружаем первое число из бинарного файла
	if (bin == 1)
		a = ReadBinFile(argv[1]);
	else
		a = ReadTextFile(argv[1]);

	//загружаем второе число из бинарного файла
	if (bin == 1)
		b = ReadBinFile(argv[3]);
	else
		b = ReadTextFile(argv[3]);

	//выполняем операцию 

	struct LongNumber result;

	switch (operation[0]) {
	case '+':
	{
				result = ADD(a, b);
				break;
	}
	case '-':
	{
				result = SUB(a, b);
				break;
	}
	case '*':
	{
				result = MUL(a, b);
				break;
	}
	case '/':
	{
				result = DIV(a, b, 1);
				break;
	}
	case '%':
	{
				result = DIV(a, b, 2);
				break;
	}
	case '^':
	{
				struct LongNumber c;
				if (bin == 1)
					c = ReadBinFile(argv[5]);
				else
					c = ReadTextFile(argv[5]);

				result = DEGREE(a, b, c);
				c = clear(c);
				break;
	}
	default:
		break;
	}

	//записываем в файл результат
	if (bin == 1)
		WriteBinFile(argv[4], result);
	else
		WriteTextFile(argv[4], result);


	a = clear(a);
	b = clear(b);
	result = clear(result);


	return 0;
}
Ejemplo n.º 6
0
void ClassLN::ReadBin(const char* filename)
{
    ClassLN res;
    res.num = ReadBinFile(filename);
    *this = res;
}