コード例 #1
0
    private void OnChangedSelectedProduct()
    {
        if (_product != null)
        {
            _product.Stop();
            _product = null;
        }

        ListItem selectedItem = uiProductList.selectedItem;
        if (selectedItem != null)
        {
            _product = (CommProduct)selectedItem.data;
            _product.Run();
            if (_product.productInfo != null)
            {
                uiModelImage.sprite = _product.productInfo.image;

                StringBuilder info = new StringBuilder();
                info.AppendLine(string.Format("-Key: {0}", _product.productInfo.key));
                info.AppendLine(string.Format("-Type: {0}", _product.productInfo.type));
                info.AppendLine(string.Format("-Model: {0:d}", _product.model));
                info.AppendLine(string.Format("-Version: {0:d}", _product.version));
                info.AppendLine(string.Format("-Protocol: {0:f}", _product.productInfo.protocol.ToString()));
                if (_product.productInfo.firmware == null)
                    info.AppendLine("-Not support firmware");
                else
                    info.AppendLine(string.Format("-Firmware: v{0:f}, addr({1:x})", _product.productInfo.firmwareVersion, _product.productInfo.firmwareAddress));

                if (_product.productInfo.calibration == null)
                    info.AppendLine("-Not support calibration");
                else
                    info.AppendLine(string.Format("-Calibration: v{0:f}", _product.productInfo.calibrationVersion));
                uiModelInfo.text = info.ToString();

                uiManager.commProduct = _product;

                uiControlTable.ClearItem();
                uiManager.selectedUI = null;

                ControlUIInfo[] table = _product.productInfo.uiList;
                for (int i = 0; i < table.Length; i++)
                {
                    for (int j = 0; j < uiManager.uiList.Length; j++)
                    {
                        if (table[i].uiClass.Equals(uiManager.uiList[j].uiClass))
                        {
                            ListItem item = Instantiate(uiControlItem);
                            item.image.sprite = table[i].icon;
                            item.textList[0].text = table[i].name;
                            item.data = table[i];

                            uiControlTable.AddItem(item);
                            break;
                        }
                    }
                }
            }
            else
            {
                uiModelImage.sprite = null;
                uiModelInfo.text = "Unknown";
                uiManager.commProduct = null;
                uiControlTable.ClearItem();
                uiManager.selectedUI = null;
            }
        }
        else
        {
            uiModelImage.sprite = null;
            uiModelInfo.text = "";
            uiManager.commProduct = null;
            uiControlTable.ClearItem();
            uiManager.selectedUI = null;
        }
    }
コード例 #2
0
    private void RemoveProduct(CommProduct product)
    {
        if (product == null)
            return;

        foreach (ListItem item in uiProductList.items)
        {
            if(item.data.Equals(product))
            {
                uiProductList.RemoveItem(item);
                DestroyImmediate(product.gameObject);
                break;
            }
        }
    }
コード例 #3
0
 private void OnConnectionFailed(CommProduct product)
 {
     if(_findChildProduct && !_cancelFind && (product.id < (CommProtocol.MAX_ID - 1)))
     {
         uiSearchingStatus.text = string.Format("ID: {0:d}", product.id);
         if (product.id == CommProtocol.CM_ID)
             product.Connect(0);
         else if(product.id == (CommProtocol.CM_ID - 1))
             product.Connect(CommProtocol.CM_ID + 1);
         else
             product.Connect(product.id + 1);
     }
     else
     {
         DestroyImmediate(product.gameObject);
         uiMessageRoot.SetActive(false);
         uiMessageSearching.SetActive(false);
     }
 }
コード例 #4
0
 private void OnDisconnected(CommProduct product)
 {
     RemoveProduct(product);
 }
コード例 #5
0
    private void OnConnected(CommProduct product)
    {
        product.gameObject.name = string.Format("[ID:{0:d}]", product.id);

        if (product.productInfo != null)
            product.gameObject.name += product.productInfo.name;
        else
            product.gameObject.name += "Unknown";

        ListItem item = Instantiate(uiProductItem);
        item.textList[0].text = product.gameObject.name;
        item.data = product;
        uiProductList.AddItem(item);

        if (_findChildProduct && !_cancelFind && (product.id < (CommProtocol.MAX_ID - 1)))
        {
            uiSearchingStatus.text = string.Format("ID: {0:d}", product.id);
            if (product.id == CommProtocol.CM_ID)
                AddProduct(0);
            else if (product.id == (CommProtocol.CM_ID - 1))
                AddProduct(CommProtocol.CM_ID + 1);
            else
                AddProduct(product.id + 1);
        }
        else
        {
            uiMessageRoot.SetActive(false);
            uiMessageSearching.SetActive(false);
        }
    }