public void init(String proxyAddress) { if (!ConverterHandler.Equals(IntPtr.Zero)) { return; } int hr = ZGIntf.ZG_Initialize(ZPIntf.ZP_IF_NO_MSG_LOOP); if (hr < 0) { log.Fatal("Ошибка ZG_Initialize: " + hr); throw new ZCommonException("Ошибка ZG_Initialize").setErrorCode(hr); } ZG_CVT_INFO ConverterInfo = new ZG_CVT_INFO(); ZG_CVT_OPEN_PARAMS OpenParams = new ZG_CVT_OPEN_PARAMS(); if (proxyAddress.Contains(":")) { OpenParams.nPortType = ZP_PORT_TYPE.ZP_PORT_IP; } else { OpenParams.nPortType = ZP_PORT_TYPE.ZP_PORT_COM; } OpenParams.pszName = @proxyAddress; OpenParams.nSpeed = ZG_CVT_SPEED.ZG_SPEED_57600; hr = ZGIntf.ZG_Cvt_Open(ref ConverterHandler, ref OpenParams, ConverterInfo); if (hr < 0) { log.Fatal("Ошибка ZG_Cvt_Open: " + hr); throw new ZCommonException("Ошибка ZG_Cvt_Open").setErrorCode(hr); } }
private void Form1_Load(object sender, EventArgs e) { // Проверяем версию SDK UInt32 nVersion = ZGIntf.ZG_GetVersion(); if ((((nVersion & 0xFF)) != ZGIntf.ZG_SDK_VER_MAJOR) || (((nVersion >> 8) & 0xFF) != ZGIntf.ZG_SDK_VER_MINOR)) { Console.WriteLine("Неправильная версия SDK Guard."); Console.ReadLine(); return; } IntPtr hCvt = new IntPtr(0); m_hCtr = new IntPtr(0); int hr; hr = ZGIntf.ZG_Initialize(ZPIntf.ZP_IF_NO_MSG_LOOP); if (hr < 0) { Console.WriteLine("Ошибка ZG_Initialize ({0}).", hr); Console.ReadLine(); return; } try { ZG_CVT_INFO rInfo = new ZG_CVT_INFO(); ZG_CVT_OPEN_PARAMS rOp = new ZG_CVT_OPEN_PARAMS(); rOp.nPortType = CvtPortType; rOp.pszName = CvtPortName; rOp.nSpeed = ZG_CVT_SPEED.ZG_SPEED_57600; hr = ZGIntf.ZG_Cvt_Open(ref hCvt, ref rOp, rInfo); if (hr < 0) { Console.WriteLine("Ошибка ZG_Cvt_Open ({0}).", hr); Console.ReadLine(); return; } ZG_CTR_INFO rCtrInfo = new ZG_CTR_INFO(); hr = ZGIntf.ZG_Ctr_Open(ref m_hCtr, hCvt, CtrAddr, 0, ref rCtrInfo); if (hr < 0) { Console.WriteLine("Ошибка ZG_Ctr_Open ({0}).", hr); Console.ReadLine(); return; } m_nCtrMaxBanks = ((rCtrInfo.nFlags & ZGIntf.ZG_CTR_F_2BANKS) != 0) ? 2 : 1; m_fProximity = ((rCtrInfo.nFlags & ZGIntf.ZG_CTR_F_PROXIMITY) != 0); Console.WriteLine("{0} адрес: {1}, с/н: {2}, v{3}.{4}, Количество банков: {5}, Тип ключей: {6}.", CtrTypeStrs[(int)rCtrInfo.nType], rCtrInfo.nAddr, rCtrInfo.nSn, rCtrInfo.nVersion & 0xff, (rCtrInfo.nVersion >> 8) & 0xff, m_nCtrMaxBanks, KeyModeStrs[m_fProximity ? 1 : 0]); m_oEvent = new ManualResetEvent(false); ZG_CTR_NOTIFY_SETTINGS rNS = new ZG_CTR_NOTIFY_SETTINGS( ZGIntf.ZG_NF_CTR_KEY_TOP, m_oEvent.SafeWaitHandle, IntPtr.Zero, 0, 0, 3000, // Период проверки верхней границы ключей 0); hr = ZGIntf.ZG_Ctr_SetNotification(m_hCtr, rNS); if (hr < 0) { Console.WriteLine("Ошибка ZG_Ctr_SetNotification ({0}).", hr); Console.ReadLine(); return; } StartNotifyThread(); Console.WriteLine("-----"); //while (true) //{ //DoOpenLock(0); /* * Console.WriteLine("Введите номер команды:"); * Console.WriteLine("1 - показать времена замков"); * Console.WriteLine("2 - установить времена замков..."); * Console.WriteLine("3 - открыть замок (Вход)"); * Console.WriteLine("4 - открыть замок (Выход)"); * Console.WriteLine("9 - восстановить заводские настройки (для всех банков)"); * Console.WriteLine("0 - выход"); * s = Console.ReadLine(); * if (s != "") * { * Console.WriteLine(); * switch (Convert.ToInt32(s)) * { * case 1: * //ShowLockTimes(); * break; * case 2: * //DoSetLockTimes(); * break; * case 3: * DoOpenLock(0); * break; * case 4: * DoOpenLock(1); * break; * case 9: * //DoRestoreFactorySettings(); * break; * case 0: * return; * default: * Console.WriteLine("Неверная команда."); * break; * } * } * Console.WriteLine("-----"); */ //} } finally { if (m_hCtr != IntPtr.Zero) { ZGIntf.ZG_CloseHandle(m_hCtr); } if (hCvt != IntPtr.Zero) { ZGIntf.ZG_CloseHandle(hCvt); } ZGIntf.ZG_Finalyze(); } }