示例#1
0
void CPtnZler::OnCrackTout()
{
	KillAllTimer();
	WChess_ExitThreadCrack();
	//还原盘面
	memcpy(board, ptnboard, sizeof(board));
	//保存结果
	SaveToLog(TIMEOUT, 0);
	SaveToFile();
	//按红强进行调整子力
	ProcessPattern(true);
}
示例#2
0
int XLibraDIGI_SM::ProgrammingTovar(XLibraTovar tovar)
{
	long nomen_num = tovar.nomen_num; //-
	   //	((XEithernetConnection *)connection_descriptor)->prefix * 10000;
	long nomen_num_int = nomen_num;

	if (tovar.art_num > 9999)
	{
		sprintf(result.text, "Для %d код артиулу %d перевищує 9999", tovar.nomen_num, tovar.art_num);
		SaveToLog(result.text);
		result.critical = 0;
		return LIBRA_ERROR_PARAM;
	}

	++tovar_pos;

	BYTE buf[1024];
	int len(0);
	sprintf(buf, "%08d", tovar.art_num);
	memcpy(_recPLU.nPLU, buf, 8);   len+=8;

	//BYTE nSize[2];     //  HEX      len+=2;

	memcpy(_recPLU.nStatus1, "5400", 4);  len+=4;
	memcpy(_recPLU.nStatus2, "0D2601", 6);    len+=6;
	long price = Around_0(tovar.price * 100.0);
	sprintf(buf, "%08d", price);
	memcpy(_recPLU.nPrice100, buf, 8);	len+=8;	// 4 Ціна в копійках
	memcpy(_recPLU.nFet1, "11", 2); len+=2; // HEX № формату 1-ї етикетки  11
	memcpy(_recPLU.nFbCode, "04", 2); len+=2; // HEX № формату штрихкоду 09
	sprintf(buf, "%02d%06d000000", ((XEithernetConnection *)connection_descriptor)->prefix,
						   tovar.nomen_num);
	memcpy(_recPLU.nBCode, buf, 14); len+=14; // BCD Дані штрихкоду  22|28 + IntToBCD(nomen_No, 2) + '00000000'
	sprintf(buf, "%04d", tovar.termin);
	memcpy(_recPLU.nTerminDSell, buf, 4);  len+=4; // BCD 0+Строк продажу в днях
	memcpy(_recPLU.nMsgNum, "01", 2);  len+=2; // BCD Номер спец. повідомлення  01
	memcpy(_recPLU.nIngradientNum, "01", 2);  len+=2; // BCD Номер інградієнту 01
	StrFormat(_recPLU.nName, tovar.name);
	int len_name = strlen(_recPLU.nName);
	len+=len_name + 4;

	sprintf(buf, "%04X", (int)(len)/2);
	memcpy(_recPLU.nSize, buf, 4);

	FILE* fp = fopen(tovar_name, "ab");
	fwrite((char*)&_recPLU, len, 1, fp);
	fclose(fp);

	return 0;
}
示例#3
0
XLibraDIGI_SM::XLibraDIGI_SM(const char *iprog_way,
			 XLibraCallBack icall_finc,
			 const XLibraConnectionString *iconnection_strings) :
						XLibra(LIBRA_LT_DIGI_SM, icall_finc, iconnection_strings)
{
	char buf[256];
	sprintf(buf, "== Вага: DIGI SM #%s ==", ((XEithernetConnection *)connection_descriptor)->ip);
	SaveToLog(buf);
 
	char *way_format = "%sscale\\digi\\sm\\%s";
	sprintf(dll_way, way_format, iprog_way, "digiTCPdrv.dll");
	sprintf(tovar_name, way_format, iprog_way, "tovar.dat");
	sprintf(label_name, way_format, iprog_way, "label.dat");

	code_page = 1;
	std::sprintf(log_name, way_format, iprog_way, "XLibraDIGI_SM.log");
}
示例#4
0
void CPtnZler::OnCrackEnd(WPARAM wParam, LPARAM lParam)
{
	KillAllTimer();

	TCrackResult tCrackResult = WChess_GetCrackResult();
	if (wParam == BLKLOSE)
	{
		//记录结果并保存文件
		if (tCrackResult.nRound >= PTN_MINROUND)
		{
			SaveToLog(wParam, tCrackResult.nRound);
			SaveToFile();
		}
		//弱化攻势
		ProcessPattern(true);
	}
	else
	{
		//弱化守势
		ProcessPattern(false);
	}
}
示例#5
0
}


int XLibraDIGI_SM::ProgrammingAllTovar()
{
	FILE* fp = fopen(tovar_name, "wb");
	fclose(fp);
	tovar_pos = 0;

	XLibra::ProgrammingAllTovar();

	h_dll = LoadLibrary(dll_way);

	DIGIExecute = NULL;
	DIGIExecute = (Tfunc_DIGIExecute)GetProcAddress(h_dll, "Execute");

	DIGIExecute(ERASEOBJECT, (char *)((XEithernetConnection *)connection_descriptor)->ip,
			"", 0x88);
	Sleep(3000);
	DIGIExecute(UPLOAD, (char *)((XEithernetConnection *)connection_descriptor)->ip,
			label_name, 0x34);
	XOperationResult n_ret =
		 DIGIExecute(UPLOAD, (char *)((XEithernetConnection *)connection_descriptor)->ip,
			tovar_name, 37);

	if (n_ret == NON_ERROR)
	{
		SaveToLog("Передача файлу пройшла успішно");
		return 0;
	}

	switch (n_ret)
	{
		case OPEN_FILE_ERR:
		  SaveToLog("ПОМИЛКА відкриття файлу (OPEN_LILE_ERR)");
		 break;
		case READ_FILE_ERR:
		  SaveToLog("ПОМИЛКА читання файлу (READ_FILE_ERR)");
		 break;
		case WRITE_FILE_ERR:
		  SaveToLog("ПОМИЛКА запису в файл (WRITE_FILE_ERR)");
		 break;
		case NETWORK_OPEN_ERR:
		  SaveToLog("ПОМИЛКА з'єднання з вагою (NETWORK_OPEN_ERR)");
		 break;
		case NETWORK_READ_ERROR:
		  SaveToLog("ПОМИЛКА прийняття даних з ваги (NETWORK_READ_ERROR)");
		 break;
		case NETWORK_WRITE_ERR:
		  SaveToLog("ПОМИЛКА посилання даних на вагу (NETWORK_WRITE_ERR)");
		 break;
		case MACHINE_READ_ERR:
		  SaveToLog("ПОМИЛКА: Вага вернула код помилки читання (MACHINE_READ_ERR)");
		 break;
		case MACHINE_WRITE_ERR:
		  SaveToLog("ПОМИЛКА: Вага вернула код помилки запису (MACHINE_WRITE_ERR)");
		 break;
		case MACHINE_NOREC_ERR:
		  SaveToLog("ПОМИЛКА: Вага вернула код помилки 'Немає запису' (MACHINE_NOREC_ERR)");
		 break;
		case MACHINE_SPASE_ERR:
		  SaveToLog("ПОМИЛКА: Вага вернула код помилки 'Немає вільного місця' (MACHINE_SPASE_ERR)");
		 break;
		case MACHINE_UNDEF_ERR:
		  SaveToLog("ПОМИЛКА: Вага вернула код невідомої помилки (MACHINE_UNDEF_ERR)");
		 break;
		default:
			SaveToLog("ПОМИЛКА: Невідомий результат виконання процедури");