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; } }
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; } } }
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); } }
private void OnDisconnected(CommProduct product) { RemoveProduct(product); }
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); } }