Esempio n. 1
0
 public bool InitDriver()
 {
     try
     {
         int res = mLib.MV_Usb2Init(string.Format("MVCCamera{0}", devIndex), out devIndex, ref capinfo, out handle);
         if (res == 0 && handle != IntPtr.Zero)
         {
             IsInit = true;
             res    = mLib.MV_SetUsb2ADCMode(handle, luminance);
             DevType type = DevType.MVC1000MF;
             res        = mLib.MV_Usb2GetDeviceType(handle, ref type);
             sourceName = type.ToString() + devIndex.ToString();
             //res = mLib.MV_Usb2SetMirrorMode(handle, 1);//采集数据进行水平垂直翻转 bit0 水平镜像 bit1 垂直镜像 效率较低
             return(res == 0);
         }
         else
         {
             return(false);
         }
     }
     catch
     {
         UninitDriver();
         return(false);
     }
 }
Esempio n. 2
0
        static void Main(string[] args)
        {
            Char    last_c = '\0';
            uint    id     = 0;
            string  line;
            DevType type = DevType.vJoy;
            int     hDev = 0;

            joystick = new vGen();

            // Print device' status
            dev_stat();

            // Get type of device
            Console.WriteLine("\n\nvJoy or vXbox [J/X]?");
            ConsoleKeyInfo key = Console.ReadKey();

            last_c = Char.ToUpper(key.KeyChar);
            if (last_c == 'X')
            {
                type = DevType.vXbox;
            }

            //get device ID
            Console.WriteLine("\n\nDevice ID [1-16]?");
            line = Console.ReadLine();
            if (line.Length == 0)
            {
                Console.WriteLine("\n\nDevice ID <empty>, exiting?");
                return;
            }
            id = Convert.ToUInt32(line);

            // Verify ID
            if (id < 1)
            {
                Console.WriteLine("\n\nDevice ID negative, exiting?");
                return;
            }
            if ((type == DevType.vXbox) && (id > 4))
            {
                Console.WriteLine("\n\nDevice ID is greater than 4, exiting?");
                return;
            }
            if ((type == DevType.vJoy) && (id > 16))
            {
                Console.WriteLine("\n\nDevice ID is greater than 16, exiting?");
                return;
            }

            // Acquire Device and verify
            joystick.AcquireDev(id, type, ref hDev);
            dev_stat();

            Console.WriteLine("\nHit any key to reliquish device");
            Console.ReadKey();
            joystick.RelinquishDev(hDev);
            dev_stat();

            Console.WriteLine("\nHit any key to re-acquire device");
            Console.ReadKey();
            joystick.AcquireDev(id, type, ref hDev);
            dev_stat();

            joystick.GetDevType(hDev, ref type);
            Console.WriteLine("\nDevice type: " + type.ToString());

            dev_axes(hDev);

            uint nBtn = 0;

            joystick.GetDevButtonN(hDev, ref nBtn);
            Console.WriteLine("\nNumber of buttons: " + nBtn.ToString());

            uint nHat = 0;

            joystick.GetDevHatN(hDev, ref nHat);
            Console.WriteLine("\nNumber of Hats: " + nHat.ToString());

            bool go_on = true;

            do
            {
                go_on = SetVal(hDev);
            } while (go_on);

            Console.WriteLine("\nHit any key to exit");
            Console.ReadKey();
        }
Esempio n. 3
0
        /// <summary>
        /// 接收到数据
        /// </summary>
        private void ReceiverHandler(IAsyncResult ar)
        {
            try
            {
                if (!IsConnected)
                {
                    string logMessage = "Cannot start receiver - client not started";
                    throw new InvalidOperationException(logMessage);
                }

                byte[] bufferData = null;
                byte[] buffer     = new byte[ISocketConst.BUFFER_SIZE];

                while (IsConnected)
                {
                    if (!m_Userful || m_Stream == null)
                    {
                        break;
                    }

                    int bytesRead = 0;
                    //try
                    //{
                    bytesRead = m_Stream.Read(buffer, 0, ISocketConst.BUFFER_SIZE);
                    //}
                    //catch (Exception ex)
                    //{
                    //    log.LOG(ex);
                    //    break;
                    //}

                    if (bytesRead == 0)
                    {
                        throw new IOException("No Data!");
                    }
                    byte[] readData = buffer.Take(bytesRead).ToArray();
                    if (bufferData != null && bufferData.Length > 0)
                    {
                        readData = bufferData.Concat(readData).ToArray();
                    }

                    if (m_isScan)
                    {
                        //读取出来消息内容
                        string code = Encoding.ASCII.GetString(readData, 0, ISocketConst.CODE_SIZE);
                        log.LOG("Scan: " + code);
                        //Console.WriteLine(code.Split('@').Length + ":"+code);
                        if (!string.IsNullOrEmpty(code))
                        {
                            string[] str = m_DevName.Split('-');
                            if (ReceiveCode != null)
                            {
                                try
                                {
                                    ReceiveCode(str[1], str[2], code);
                                }
                                catch (Exception e)
                                {
                                    log.LOG(e);
                                    //Console.WriteLine(ex.Message + ex.StackTrace);
                                }
                            }
                        }
                        else
                        {
                            readData = new byte[0];
                        }
                        continue;
                    }

                    int size = 0;
                    // make sure we at least have one header
                    while (readData.Count() > ISocketConst.HEADTAIL_SIZE)
                    {
                        log.LOG("Read: " + BitConverter.ToString(readData));
                        DevType head = (DevType)BitConverter.ToUInt16(ShiftBytes(readData, 0, 2), 0);
                        switch (head)
                        {
                        case DevType.固定辊台:
                            size = ISocketConst.FRT_SIZE;
                            break;

                        case DevType.摆渡车:
                            size = ISocketConst.ARF_SIZE;
                            break;

                        case DevType.运输车:
                            size = ISocketConst.RGV_SIZE;
                            break;

                        case DevType.行车:
                            size = ISocketConst.AWC_SIZE;
                            break;

                        case DevType.包装线辊台:
                            size = ISocketConst.PKL_SIZE;
                            break;

                        default:
                            size = 0;
                            break;
                        }

                        if (size == 0)
                        {
                            readData = new byte[0];
                            break;
                            //throw new IOException("Header key did not match!");
                        }

                        if (readData.Count() < size)
                        {
                            throw new IOException("messagesize is small than" + size + " (" + head.ToString() + ") !");
                        }

                        ushort tailKey = BitConverter.ToUInt16(ShiftBytes(readData, size - 2, 2), 0);
                        if (tailKey == ISocketConst.TAIL_KEY)
                        {
                            byte[] data = new byte[size];
                            Array.Copy(readData, 0, data, 0, size);
                            NoticeDataReceive(head, data);
                        }

                        // remove from data array
                        readData = new byte[0];
                    }

                    if (size != 0)
                    {
                        // save until next round
                        bufferData = readData;
                    }
                }
            }
            catch (Exception e)
            {
                log.LOG(e);
                // unclean disconnect from service
                Reconnect();
                //Console.WriteLine(e.Message + e.StackTrace);
            }
        }