Ejemplo n.º 1
0
    public override void OnInspectorGUI()
    {
        this.serializedObject.Update();

#if UNITY_STANDALONE
        CommSerial socket = (CommSerial)target;
        GUI.enabled = !socket.IsOpen;

#if (UINTY_STANDALONE_WIN || UNITY_EDITOR_WIN)
        EditorGUILayout.LabelField(string.Format("Port Name: {0}", socket.device.name));
#elif (UINTY_STANDALONE_OSX || UNITY_EDITOR_OSX)
        EditorGUILayout.LabelField(string.Format("Port Name: {0}", socket.device.address));
#endif
        EditorGUILayout.BeginHorizontal();
        int      index = -1;
        string[] list  = new string[socket.foundDevices.Count];
        for (int i = 0; i < list.Length; i++)
        {
            list[i] = socket.foundDevices[i].name;
            if (socket.device.Equals(socket.foundDevices[i]))
            {
                index = i;
            }
        }
        index = EditorGUILayout.Popup(" ", index, list);
        if (index >= 0)
        {
            socket.device = new CommDevice(socket.foundDevices[index]);
        }
        if (GUILayout.Button("Search", GUILayout.Width(60f)) == true)
        {
            socket.StartSearch();
        }
        EditorGUILayout.EndHorizontal();

        GUI.enabled = true;
#else
        EditorGUILayout.HelpBox("This component only can work on standalone platform(windows, osx, linux..)", MessageType.Error);
#endif

        EditorGUILayout.PropertyField(baudrate, new GUIContent("Baudrate"));
        EditorGUILayout.PropertyField(dtrReset, new GUIContent("DTR Reset"));

        foldout = EditorGUILayout.Foldout(foldout, "Events");
        if (foldout)
        {
            EditorGUILayout.PropertyField(OnOpen, new GUIContent("OnOpen"));
            EditorGUILayout.PropertyField(OnClose, new GUIContent("OnClose"));
            EditorGUILayout.PropertyField(OnOpenFailed, new GUIContent("OnOpenFailed"));
            EditorGUILayout.PropertyField(OnErrorClosed, new GUIContent("OnErrorClosed"));
            EditorGUILayout.PropertyField(OnStartSearch, new GUIContent("OnStartSearch"));
            EditorGUILayout.PropertyField(OnStopSearch, new GUIContent("OnStopSearch"));
        }

        this.serializedObject.ApplyModifiedProperties();
    }
Ejemplo n.º 2
0
 // Use this for initialization
 void Start()
 {
     _serial = FindObjectOfType <CommSerial>();
     if (_serial == null)
     {
         Debug.LogError("Can not find CommSerial!");
     }
     else
     {
         _serial.OnOpen.AddListener(OnSerialOpened);
     }
 }
    public override void OnInspectorGUI()
    {
        this.serializedObject.Update();

        GUI.enabled = false;
        EditorGUILayout.PropertyField(script, true, new GUILayoutOption[0]);
        GUI.enabled = true;

#if UNITY_STANDALONE
#if UNITY_5_6_OR_NEWER
#if NET_2_0
        CommSerial socket = (CommSerial)target;
        GUI.enabled = !socket.IsOpen;

#if UNITY_EDITOR_WIN
        EditorGUILayout.LabelField(string.Format("Port Name: {0}", socket.device.name));
#elif UNITY_EDITOR_OSX
        EditorGUILayout.LabelField(string.Format("Port Name: {0}", socket.device.address));
#endif
        EditorGUILayout.BeginHorizontal();
        int      index = -1;
        string[] list  = new string[socket.foundDevices.Count];
        for (int i = 0; i < list.Length; i++)
        {
            list[i] = socket.foundDevices[i].name;
            if (deviceName.stringValue.Equals(socket.foundDevices[i].name))
            {
                index = i;
            }
        }
        int newIndex = EditorGUILayout.Popup(" ", index, list);
        if (newIndex != index)
        {
            CommDevice newDevice = socket.foundDevices[newIndex];
            deviceName.stringValue    = newDevice.name;
            deviceAddress.stringValue = newDevice.address;
            deviceArgs.ClearArray();
            deviceArgs.arraySize = newDevice.args.Count;
            for (int i = 0; i < newDevice.args.Count; i++)
            {
                SerializedProperty arg = deviceArgs.GetArrayElementAtIndex(i);
                arg.stringValue = newDevice.args[i];
            }
        }

        if (GUILayout.Button("Search", GUILayout.Width(60f)) == true)
        {
            socket.StartSearch();
        }
        EditorGUILayout.EndHorizontal();

        GUI.enabled = true;
#else
        EditorGUILayout.HelpBox("You must set as '.Net 2.0' for API Compatibility Level in PlayerSetting.", MessageType.Error);
#endif
#else
        CommSerial socket = (CommSerial)target;
        GUI.enabled = !socket.IsOpen;

#if UNITY_EDITOR_WIN
        EditorGUILayout.LabelField(string.Format("Port Name: {0}", socket.device.name));
#elif UNITY_EDITOR_OSX
        EditorGUILayout.LabelField(string.Format("Port Name: {0}", socket.device.address));
#endif
        EditorGUILayout.BeginHorizontal();
        int      index = -1;
        string[] list  = new string[socket.foundDevices.Count];
        for (int i = 0; i < list.Length; i++)
        {
            list[i] = socket.foundDevices[i].name;
            if (deviceName.stringValue.Equals(socket.foundDevices[i].name))
            {
                index = i;
            }
        }
        int newIndex = EditorGUILayout.Popup(" ", index, list);
        if (newIndex != index)
        {
            CommDevice newDevice = socket.foundDevices[newIndex];
            deviceName.stringValue    = newDevice.name;
            deviceAddress.stringValue = newDevice.address;
            deviceArgs.ClearArray();
            deviceArgs.arraySize = newDevice.args.Count;
            for (int i = 0; i < newDevice.args.Count; i++)
            {
                SerializedProperty arg = deviceArgs.GetArrayElementAtIndex(i);
                arg.stringValue = newDevice.args[i];
            }
        }

        if (GUILayout.Button("Search", GUILayout.Width(60f)) == true)
        {
            socket.StartSearch();
        }
        EditorGUILayout.EndHorizontal();

        GUI.enabled = true;
#endif
#else
        EditorGUILayout.HelpBox("This component only can work on standalone platform(windows, osx, linux..)", MessageType.Error);
#endif

        EditorGUILayout.PropertyField(baudrate, new GUIContent("Baudrate"));
        EditorGUILayout.PropertyField(dtrReset, new GUIContent("DTR Reset"));

        foldout = EditorGUILayout.Foldout(foldout, "Events");
        if (foldout)
        {
            EditorGUILayout.PropertyField(OnOpen, new GUIContent("OnOpen"));
            EditorGUILayout.PropertyField(OnClose, new GUIContent("OnClose"));
            EditorGUILayout.PropertyField(OnOpenFailed, new GUIContent("OnOpenFailed"));
            EditorGUILayout.PropertyField(OnErrorClosed, new GUIContent("OnErrorClosed"));
            EditorGUILayout.PropertyField(OnStartSearch, new GUIContent("OnStartSearch"));
            EditorGUILayout.PropertyField(OnStopSearch, new GUIContent("OnStopSearch"));
        }

        this.serializedObject.ApplyModifiedProperties();
    }
Ejemplo n.º 4
0
        /// <summary>
        /// Detailed Scan for all available devices in multimode (FTDI, libftdi, USB and Serial). Returns ScanAllResult with 4
        /// specific ScanResult classes, each with Status and List of Devices - Bsl430NetDevice childs.
        /// </summary>
        /// <exception cref="Bsl430NetException"></exception>
        public ScanAllResult ScanAllEx(ScanOptions ScanOpt = ScanOptions.None)
        {
            Status status_ftdi;
            Status status_libftdi;
            Status status_usb;
            Status status_serial;

            List <FTDI_Device>    ftdiDevices;
            List <Libftdi_Device> libftdiDevices;
            List <USB_HID_Device> usbDevices;
            List <Serial_Device>  serialDevices;

            try
            {
                using (IDevice dev_ftdi = new CommFTD2XX())
                {
                    status_ftdi = dev_ftdi.Scan(out ftdiDevices, ScanOpt);
                }
            }
            catch (Exception ex)
            {
                ftdiDevices = new List <FTDI_Device>();
                status_ftdi = Utils.StatusCreate(465, ex.Message);
            }

            try
            {
                using (IDevice dev_libftdi = new CommLibftdi())
                {
                    status_libftdi = dev_libftdi.Scan(out libftdiDevices, ScanOpt);
                }
            }
            catch (Exception ex)
            {
                libftdiDevices = new List <Libftdi_Device>();
                status_libftdi = Utils.StatusCreate(465, ex.Message);
            }

            try
            {
                using (IDevice dev_usb = new CommUSB())
                {
                    status_usb = dev_usb.Scan(out usbDevices, ScanOpt);
                }
            }
            catch (Exception ex)
            {
                usbDevices = new List <USB_HID_Device>();
                status_usb = Utils.StatusCreate(465, ex.Message);
            }

            try
            {
                using (IDevice dev_uart = new CommSerial())
                {
                    status_serial = dev_uart.Scan(out serialDevices, ScanOpt);
                }
            }
            catch (Exception ex)
            {
                serialDevices = new List <Serial_Device>();
                status_serial = Utils.StatusCreate(465, ex.Message);
            }

            return(new ScanAllResult()
            {
                FtdiDevices = new ScanResult <FTDI_Device>()
                {
                    Status = status_ftdi, Devices = ftdiDevices
                },
                LibftdiDevices = new ScanResult <Libftdi_Device>()
                {
                    Status = status_libftdi, Devices = libftdiDevices
                },
                UsbDevices = new ScanResult <USB_HID_Device>()
                {
                    Status = status_usb, Devices = usbDevices
                },
                SerialDevices = new ScanResult <Serial_Device>()
                {
                    Status = status_serial, Devices = serialDevices
                }
            });
        }