void CPtnZler::OnCrackTout() { KillAllTimer(); WChess_ExitThreadCrack(); //还原盘面 memcpy(board, ptnboard, sizeof(board)); //保存结果 SaveToLog(TIMEOUT, 0); SaveToFile(); //按红强进行调整子力 ProcessPattern(true); }
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; }
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"); }
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); } }
} 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("ПОМИЛКА: Невідомий результат виконання процедури");