Beispiel #1
0
        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);
            }
        }
Beispiel #2
0
        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();
            }
        }