コード例 #1
0
ファイル: AppWin_SPITool_PRO.cs プロジェクト: x893/WDS
 private void chbFilter_CheckedChanged(object sender, EventArgs e)
 {
     try
     {
         RegisterDGVACC = _myDev;
         myFormStatus = FormViewACC;
     }
     catch (Exception exception)
     {
         MessageBox.Show("Error at filter condition setting!\n" + exception.Message);
     }
 }
コード例 #2
0
ファイル: AppWin_SPITool_PRO.cs プロジェクト: x893/WDS
 public int restore(XmlNode parentNode)
 {
     try
     {
         XMLReaderWriter writer = new XMLReaderWriter();
         writer.RestoreRegister(parentNode, _myDev);
         writer.RestoreFifoWrite(parentNode, myFifoReadWrite, _myDev.Type);
         writer.RestoreFifoRead(parentNode, myFifoReadWrite, _myDev.Type);
         writer.RestoreBatch(parentNode, myBatchCommandList, 1, _myDev.Type);
         writer.RestoreBatch(parentNode, myBatchCommandList, 2, _myDev.Type);
         writer.RestoreBatch(parentNode, myBatchCommandList, 3, _myDev.Type);
         writer.RestoreBatch(parentNode, myBatchCommandList, 4, _myDev.Type);
         writer.RestoreFormView(parentNode, myFormStatus);
         RegisterDGVACC = _myDev;
         FifoViewACC = myFifoReadWrite;
         BatchViewACC = myBatchCommandList;
         FormViewACC = myFormStatus;
         return 0;
     }
     catch (Exception exception)
     {
         MessageBox.Show("Error at restoring Application status!\n" + exception.Message);
         return -1;
     }
 }
コード例 #3
0
ファイル: AppWin_SPITool_PRO.cs プロジェクト: x893/WDS
 private void cbbMasterDB_SelectedIndexChanged(object sender, EventArgs e)
 {
     try
     {
         RegisterDGVACC = _myDev;
         if (dgvRegisterList.Rows.Count > 0)
         {
             dgvRegisterList.Rows[0].Selected = true;
             dgvRegisterList_SelectionChanged(null, null);
         }
         bool flag1 = _myDev.Notes == "";
         myFifoReadWrite = new FifoReadWrite(_myDev.TxPufferSize, _myDev.RxPufferSize);
         FifoViewACC = myFifoReadWrite;
         myBatchCommandList = new BatchCommandList();
         BatchViewACC = myBatchCommandList;
         myFormStatus = FormViewACC;
     }
     catch (Exception exception)
     {
         MessageBox.Show("Error at Database Selection!\n" + exception.Message);
     }
 }
コード例 #4
0
ファイル: SPI_tools.cs プロジェクト: x893/WDS
 public static byte[] getByteRepresentationByRegisterName(string name, bool isPeekPoke, DeviceRegisterSet deviceRegSet)
 {
     foreach (DeviceRegister register in deviceRegSet.Registers)
     {
         if (register.Name.ToUpper() == name.ToUpper())
         {
             string s = register.Address.ToString("X2");
             if (s.Length <= 2)
             {
                 if (register.RegClass.IsAConfig && isPeekPoke)
                 {
                     return new byte[] { 240, byte.Parse(s, NumberStyles.HexNumber) };
                 }
                 return new byte[] { byte.Parse(s, NumberStyles.HexNumber) };
             }
             return new byte[] { byte.Parse(s.Substring(0, 2), NumberStyles.HexNumber), byte.Parse(s.Substring(2, 2), NumberStyles.HexNumber) };
         }
     }
     return null;
 }
コード例 #5
0
ファイル: SPI_tools.cs プロジェクト: x893/WDS
 public static DeviceRegisterSet FromXml2DeviceRecordSet(string chipType, string chipRev, string descriptorResourceName, string descriptorResourcePath)
 {
     XmlNode node = null;
     XmlNode node2 = null;
     try
     {
         XmlDocument document = new XmlDocument();
         string path = Path.Combine(Path.Combine(Application.CommonAppDataPath, "WDS_Resources"), descriptorResourceName);
         if (File.Exists(path))
         {
             document.Load(path);
         }
         else
         {
             Assembly executingAssembly = Assembly.GetExecutingAssembly();
             executingAssembly.GetManifestResourceNames();
             Stream manifestResourceStream = executingAssembly.GetManifestResourceStream(descriptorResourcePath + "." + descriptorResourceName);
             document.Load(manifestResourceStream);
         }
         document.PreserveWhitespace = false;
         DeviceRegisterSet set = new DeviceRegisterSet();
         foreach (XmlNode node3 in document.DocumentElement.SelectNodes("SPIDevice"))
         {
             if ((node3.Attributes.GetNamedItem("type").Value == chipType) && (node3.Attributes.GetNamedItem("revision").Value == chipRev))
             {
                 node = node3;
                 set = new DeviceRegisterSet {
                     ChipID = Convert.ToInt32(node3.Attributes.GetNamedItem("chipID").Value),
                     Name = node3.Attributes.GetNamedItem("name").Value,
                     Type = node3.Attributes.GetNamedItem("type").Value,
                     Revision = node3.Attributes.GetNamedItem("revision").Value,
                     ProjectID = node3.Attributes.GetNamedItem("projectID").Value,
                     TxPufferSize = Convert.ToInt32(node3.SelectSingleNode("TxPufferSize").InnerText),
                     RxPufferSize = Convert.ToInt32(node3.SelectSingleNode("RxPufferSize").InnerText),
                     TxPufferAddress = (node3.SelectSingleNode("TxPufferAddress").InnerText != "") ? Convert.ToInt32(node3.SelectSingleNode("TxPufferAddress").InnerText, 0x10) : 0,
                     RxPufferAddress = (node3.SelectSingleNode("RxPufferAddress").InnerText != "") ? Convert.ToInt32(node3.SelectSingleNode("RxPufferAddress").InnerText, 0x10) : 0,
                     NffsControl = (node3.SelectSingleNode("nFFS_control").InnerText == "0") ? false : true
                 };
                 foreach (XmlNode node4 in node3.SelectNodes("Register"))
                 {
                     node2 = node4;
                     DeviceRegister item = new DeviceRegister {
                         Address = Convert.ToInt32(node4.Attributes.GetNamedItem("address").Value, 0x10),
                         Name = node4.Attributes.GetNamedItem("name").Value,
                         Size = Convert.ToInt32(node4.Attributes.GetNamedItem("size").Value)
                     };
                     string str = node4.Attributes.GetNamedItem("defaultVal").Value.Replace(" ", "");
                     item.DefaultValue = (str != "-") ? Convert.ToInt32(str, 0x10) : 0;
                     item.CurrentValue = item.DeviceValue = item.DefaultValue;
                     item.IsRead = Convert.ToBoolean(Convert.ToInt32(node4.Attributes.GetNamedItem("isRead").Value));
                     item.IsWrite = Convert.ToBoolean(Convert.ToInt32(node4.Attributes.GetNamedItem("isWrite").Value));
                     if (node4.Attributes.GetNamedItem("isMarked") != null)
                     {
                         item.IsMarked = Convert.ToBoolean(Convert.ToInt32(node4.Attributes.GetNamedItem("isMarked").Value));
                     }
                     else
                     {
                         item.IsMarked = false;
                     }
                     DeviceRegisterClassification classification = new DeviceRegisterClassification {
                         IsTest = Convert.ToBoolean(Convert.ToInt32(node4.SelectSingleNode("Classification").Attributes.GetNamedItem("isTestReg").Value)),
                         IsRF = Convert.ToBoolean(Convert.ToInt32(node4.SelectSingleNode("Classification").Attributes.GetNamedItem("isRFReg").Value)),
                         IsDigital = Convert.ToBoolean(Convert.ToInt32(node4.SelectSingleNode("Classification").Attributes.GetNamedItem("isDigitalReg").Value)),
                         IsMisc = Convert.ToBoolean(Convert.ToInt32(node4.SelectSingleNode("Classification").Attributes.GetNamedItem("isMiscReg").Value)),
                         IsStatus = Convert.ToBoolean(Convert.ToInt32(node4.SelectSingleNode("Classification").Attributes.GetNamedItem("isStatusReg").Value))
                     };
                     XmlNode namedItem = node4.SelectSingleNode("Classification").Attributes.GetNamedItem("isAconfig");
                     if (namedItem != null)
                     {
                         classification.IsAConfig = Convert.ToBoolean(Convert.ToInt32(namedItem.Value));
                     }
                     item.RegClass = classification;
                     foreach (XmlNode node6 in node4.SelectNodes("Bit"))
                     {
                         DeviceRegisterBit bit = new DeviceRegisterBit {
                             BitIdx = Convert.ToInt32(node6.Attributes.GetNamedItem("index").Value),
                             Name = node6.Attributes.GetNamedItem("name").Value
                         };
                         item.Bits.Add(bit);
                     }
                     item.Description = node4.LastChild.InnerText;
                     set.Registers.Add(item);
                 }
                 return set;
             }
         }
         return null;
     }
     catch (Exception exception)
     {
         MessageBox.Show("XML Reading error! \n The " + descriptorResourceName + " XML File is not supported!\n" + exception.Message + "\n\rDevice: " + ((node == null) ? "" : node.Attributes.GetNamedItem("type").Value) + " ChipID: " + ((node == null) ? "" : node.Attributes.GetNamedItem("chipID").Value) + " Register: " + ((node2 == null) ? "" : node2.Attributes.GetNamedItem("address").Value));
         return null;
     }
 }
コード例 #6
0
ファイル: AppWin_SPITool_PRO.cs プロジェクト: x893/WDS
 public int initialize()
 {
     _chipType = _baseChipType = _adtRec.DeviceInfo.EBID.ChipType;
     _chipRev = _adtRec.DeviceInfo.EBID.ChipRevision;
     determinateBaseChipType();
     myFormStatus = new FormStatus();
     myDevList = new List<DeviceRegisterSet>();
     myDevIndexer = new DeviceIndexTable();
     _myDev = SPI_tools.FromXml2DeviceRecordSet(_baseChipType, _chipRev, "SPI_tools_PRO.xml", "NewWDS.Applications.App_SPI_Tool_Pro");
     return _ioph.initialize();
 }
コード例 #7
0
ファイル: XMLReaderWriter.cs プロジェクト: x893/WDS
 public void GridMainSave(string _appId, DeviceRegisterSet fullRegister)
 {
     string currentDirectory = Directory.GetCurrentDirectory();
     try
     {
         XmlNode root = CommonOpenSave.PrepForSaveconfig(_appId, "RegisterSet_" + fullRegister.Type.Replace("/", "_"), "WDS3_" + fullRegister.Type.Replace("/", "_") + "_" + fullRegister.Revision);
         if (root != null)
         {
             this.StoreRegister(root, fullRegister);
             CommonOpenSave.Saveconfig(_appId);
         }
     }
     catch (Exception exception)
     {
         GlobalServices.ErrMsg(_appId, "Error at saving Device settings! \n" + exception.Message);
         GlobalServices.msgBox("Error at saving Device settings! \n" + exception.Message, "Error!");
         Directory.SetCurrentDirectory(currentDirectory);
     }
 }
コード例 #8
0
ファイル: AppWin_SPITool.cs プロジェクト: x893/WDS
 private void cbbMasterDB_SelectedIndexChanged(object sender, EventArgs e)
 {
     try
     {
         this.RegisterDGVACC = this._myDev;
         if (this.dgvRegisterList.Rows.Count > 0)
         {
             this.dgvRegisterList.Rows[0].Selected = true;
             this.dgvRegisterList_SelectionChanged(null, null);
         }
         this.myFifoReadWrite = new FifoReadWrite(this._myDev.TxPufferSize, this._myDev.RxPufferSize);
         this.FifoViewACC = this.myFifoReadWrite;
         this.myBatchCommandList = new BatchCommandList();
         this.BatchViewACC = this.myBatchCommandList;
         this.myFormStatus = this.FormViewACC;
         if (!this._isDeviceBusy)
         {
             this.ButtonLock(false);
         }
     }
     catch (Exception exception)
     {
         MessageBox.Show("Error at Database Selection!\n" + exception.Message);
     }
 }
コード例 #9
0
ファイル: AppWin_SPITool.cs プロジェクト: x893/WDS
 public int initialize()
 {
     this._chipType = this._adtRec.DeviceInfo.EBID.ChipType;
     this._chipRev = this._adtRec.DeviceInfo.EBID.ChipRevision;
     this.determinateBaseChipType();
     this.myFormStatus = new FormStatus();
     this.myDevIndexer = new DeviceIndexTable();
     this._myDev = SPI_tools.FromXml2DeviceRecordSet(this._baseChipType, this._chipRev, "SPI_tools.xml", "NewWDS.Applications.App_SPI_Tool");
     return this._ioph.initialize();
 }
コード例 #10
0
ファイル: AppWin_SPITool_PRO2.cs プロジェクト: x893/WDS
 private void reloadRegisterGrid()
 {
     try
     {
         this.RegisterDGVACC = this._myDev;
         if (this.dgvRegisterList.Rows.Count > 0)
         {
             this.dgvRegisterList.Rows[0].Selected = true;
             this.dgvRegisterList_SelectionChanged(null, null);
         }
         bool flag1 = this._myDev.Notes == "";
         this.myFifoReadWrite = new FifoReadWrite(this._myDev.TxPufferSize, this._myDev.RxPufferSize);
         this.myBatchCommandList = new BatchCommandList();
         this.BatchViewACC = this.myBatchCommandList;
         this.myFormStatus = this.FormViewACC;
     }
     catch (Exception exception)
     {
         MessageBox.Show("Error at Database Selection!\n" + exception.Message);
     }
 }
コード例 #11
0
ファイル: AppWin_SPITool_PRO2.cs プロジェクト: x893/WDS
 private void searchTextChanged(object sender, EventArgs e)
 {
     if (this.tbcCommandTypeSelector.SelectedTab == this.tbpRegisterEditor)
     {
         for (int i = 0; i < this._myDev.Registers.Count; i++)
         {
             this._myDev.Registers[i].IsMarked = this._myDev.Registers[i].Name.ToLower().Contains(this.txbSearch.Text.ToLower());
         }
         this.RegisterDGVACC = this._myDev;
         this.chbMarked.Checked = true;
     }
     else if (this.tbcCommandTypeSelector.SelectedTab == this.tbpApiCommandCall)
     {
         foreach (ChipCommand command in this._chipApiDescriptor.Commands)
         {
             command.IsMarked = command.Name.ToLower().Contains(this.txbSearch.Text.ToLower());
         }
         this.reloadCommandGrid();
         this.chbViewMarkedCommands.Checked = true;
     }
     else if (this.tbcCommandTypeSelector.SelectedTab == this.tbpApiPropertyCall)
     {
         foreach (ChipProperty property in this._chipApiDescriptor.Properties)
         {
             property.IsMarked = property.Name.ToLower().Contains(this.txbSearch.Text.ToLower());
         }
         this.reloadPropertyGrid();
         this.chbViewMarkedProperties.Checked = true;
     }
 }
コード例 #12
0
ファイル: AppWin_SPITool_PRO2.cs プロジェクト: x893/WDS
 public AppWin_SPITool_PRO2()
 {
     byte[][] bufferArray = new byte[4][];
     byte[] buffer = new byte[3];
     buffer[0] = 8;
     buffer[1] = 0x7f;
     bufferArray[0] = buffer;
     bufferArray[1] = new byte[] { 0x21, 100, 0xa2 };
     byte[] buffer2 = new byte[3];
     buffer2[0] = 0x20;
     buffer2[1] = 0x7f;
     bufferArray[2] = buffer2;
     byte[] buffer3 = new byte[3];
     buffer3[0] = 8;
     buffer3[1] = 0x1f;
     bufferArray[3] = buffer3;
     this.PA_MODE_CMD = bufferArray;
     this._chipType = "";
     this._chipRev = "";
     this._myDev = new DeviceRegisterSet();
     this._tele = new Telegram(100);
     this._series = new TelegramContainer();
     this._appId = GlobalServices.uniqApplicationId(WDSApplicationType.SPITool_PRO2);
     this._formwidth = 0x3e9;
     this.vsb = new VScrollBar();
     this._currentVoltage = 2.4;
     this._interpreter = "base-tcl8.5-thread-win32-ix86.exe";
     this._execState = ExecutionStatus.Stopped;
     this.InitializeComponent();
     this.spcMainContainer.IsSplitterFixed = true;
     if ((SystemInformation.PrimaryMonitorSize.Height - 120) < 720)
     {
         base.Height = SystemInformation.PrimaryMonitorSize.Height - 140;
         Point point = new Point();
         this.vsb.Height = (base.ClientSize.Height - this.tsrMainToolStrip.Height) - this.spiStatusBar.Height;
         this.vsb.SmallChange = this.spcMainContainer.Height / 20;
         this.vsb.LargeChange = this.spcMainContainer.Height / 10;
         this.vsb.Minimum = 0;
         this.vsb.Maximum = (((this.spcMainContainer.Height - base.ClientSize.Height) + this.vsb.LargeChange) + this.spiStatusBar.Height) + this.tsrMainToolStrip.Height;
         this.vsb.ValueChanged += new EventHandler(this.vsb_ValueChanged);
         base.MouseWheel += new MouseEventHandler(this.mouseWheelRotated);
         base.Controls.Add(this.vsb);
         this._formwidth += this.vsb.Width;
         base.Width = this._formwidth;
         point.Y = this.tsrMainToolStrip.Height;
         point.X = (base.Width - this.vsb.Width) - 10;
         this.vsb.Location = point;
         this.vsb.Show();
         this.vsb.BringToFront();
     }
     if (!GlobalServices.isfeatureAllowed(GlobalServices.Features.NextGenerationPRO_EngExtra))
     {
         this.tbcCommandTypeSelector.TabPages.Remove(this.tbpRegisterEditor);
         this.tbcCommandTypeSelector.TabPages.Remove(this.tbpTclScriptCall);
         this.tbcCommandTypeSelector.TabPages.Remove(this.tbpRamLoad);
     }
     this.statusBarPanel4.ShowText = false;
     this.statusBarPanel4.StartPoint = 0L;
     this.statusBarPanel4.StepSize = 1L;
 }
コード例 #13
0
ファイル: XMLReaderWriter.cs プロジェクト: x893/WDS
 public void StoreRegister(XmlNode root, DeviceRegisterSet myDev)
 {
     XmlDocument ownerDocument = root.OwnerDocument;
     XmlElement newChild = ownerDocument.CreateElement("SPIDevice");
     newChild.SetAttribute("chipID", myDev.ChipID.ToString());
     newChild.SetAttribute("type", myDev.Type);
     newChild.SetAttribute("revision", myDev.Revision);
     newChild.SetAttribute("projectID", myDev.ProjectID);
     newChild.SetAttribute("name", myDev.Name);
     newChild.SetAttribute("note", myDev.Notes);
     XmlElement element2 = ownerDocument.CreateElement("TxPufferSize");
     XmlElement element3 = ownerDocument.CreateElement("RxPufferSize");
     XmlElement element4 = ownerDocument.CreateElement("TxPufferAddress");
     XmlElement element5 = ownerDocument.CreateElement("RxPufferAddress");
     XmlElement element6 = ownerDocument.CreateElement("nFFS_control");
     root.AppendChild(newChild);
     newChild.AppendChild(element2);
     element2.InnerText = myDev.TxPufferSize.ToString();
     newChild.AppendChild(element3);
     element3.InnerText = myDev.RxPufferSize.ToString();
     newChild.AppendChild(element4);
     element4.InnerText = myDev.TxPufferAddress.ToString();
     newChild.AppendChild(element5);
     element5.InnerText = myDev.RxPufferAddress.ToString();
     newChild.AppendChild(element6);
     element6.InnerText = myDev.NffsControl ? "1" : "0";
     for (int i = 0; i < myDev.Registers.Count; i++)
     {
         XmlElement element7 = ownerDocument.CreateElement("Register");
         element7.SetAttribute("address", myDev.Registers[i].Address.ToString("X"));
         element7.SetAttribute("name", myDev.Registers[i].Name);
         element7.SetAttribute("size", myDev.Registers[i].Size.ToString());
         element7.SetAttribute("defaultVal", SPI_tools.toTwoByteHex(myDev.Registers[i].DefaultValue));
         element7.SetAttribute("currentVal", SPI_tools.toTwoByteHex(myDev.Registers[i].CurrentValue));
         element7.SetAttribute("isRead", myDev.Registers[i].IsRead ? "1" : "0");
         element7.SetAttribute("isWrite", myDev.Registers[i].IsWrite ? "1" : "0");
         element7.SetAttribute("isMarked", myDev.Registers[i].IsMarked ? "1" : "0");
         newChild.AppendChild(element7);
         XmlElement element8 = ownerDocument.CreateElement("Classification");
         element8.SetAttribute("isTestReg", myDev.Registers[i].RegClass.IsTest ? "1" : "0");
         element8.SetAttribute("isRFreg", myDev.Registers[i].RegClass.IsRF ? "1" : "0");
         element8.SetAttribute("isDigitalReg", myDev.Registers[i].RegClass.IsDigital ? "1" : "0");
         element8.SetAttribute("isMiscReg", myDev.Registers[i].RegClass.IsMisc ? "1" : "0");
         element8.SetAttribute("isStatusReg", myDev.Registers[i].RegClass.IsStatus ? "1" : "0");
         element8.SetAttribute("isAconfig", myDev.Registers[i].RegClass.IsAConfig ? "1" : "0");
         element7.AppendChild(element8);
         XmlElement element10 = ownerDocument.CreateElement("Bit");
         element10.SetAttribute("index", myDev.Registers[i].Bits[7].BitIdx.ToString());
         element10.SetAttribute("name", myDev.Registers[i].Bits[7].Name);
         element7.AppendChild(element10);
         XmlElement element11 = ownerDocument.CreateElement("Bit");
         element11.SetAttribute("index", myDev.Registers[i].Bits[6].BitIdx.ToString());
         element11.SetAttribute("name", myDev.Registers[i].Bits[6].Name);
         element7.AppendChild(element11);
         XmlElement element12 = ownerDocument.CreateElement("Bit");
         element12.SetAttribute("index", myDev.Registers[i].Bits[5].BitIdx.ToString());
         element12.SetAttribute("name", myDev.Registers[i].Bits[5].Name);
         element7.AppendChild(element12);
         XmlElement element13 = ownerDocument.CreateElement("Bit");
         element13.SetAttribute("index", myDev.Registers[i].Bits[4].BitIdx.ToString());
         element13.SetAttribute("name", myDev.Registers[i].Bits[4].Name);
         element7.AppendChild(element13);
         XmlElement element14 = ownerDocument.CreateElement("Bit");
         element14.SetAttribute("index", myDev.Registers[i].Bits[3].BitIdx.ToString());
         element14.SetAttribute("name", myDev.Registers[i].Bits[3].Name);
         element7.AppendChild(element14);
         XmlElement element15 = ownerDocument.CreateElement("Bit");
         element15.SetAttribute("index", myDev.Registers[i].Bits[2].BitIdx.ToString());
         element15.SetAttribute("name", myDev.Registers[i].Bits[2].Name);
         element7.AppendChild(element15);
         XmlElement element16 = ownerDocument.CreateElement("Bit");
         element16.SetAttribute("index", myDev.Registers[i].Bits[1].BitIdx.ToString());
         element16.SetAttribute("name", myDev.Registers[i].Bits[1].Name);
         element7.AppendChild(element16);
         XmlElement element17 = ownerDocument.CreateElement("Bit");
         element17.SetAttribute("index", myDev.Registers[i].Bits[0].BitIdx.ToString());
         element17.SetAttribute("name", myDev.Registers[i].Bits[0].Name);
         element7.AppendChild(element17);
         XmlElement element9 = ownerDocument.CreateElement("Description");
         element9.InnerText = myDev.Registers[i].Description;
         element7.AppendChild(element9);
     }
 }
コード例 #14
0
ファイル: XMLReaderWriter.cs プロジェクト: x893/WDS
 public void RestoreRegister(XmlNode root, DeviceRegisterSet myDev)
 {
     XmlDocument ownerDocument = root.OwnerDocument;
     XmlNodeList list = root.SelectNodes("SPIDevice");
     for (int i = 0; i < list.Count; i++)
     {
         if (list[i].Attributes.GetNamedItem("type").Value.ToString() == myDev.Type)
         {
             XmlNode node = list[i];
             DeviceRegisterSet set = new DeviceRegisterSet {
                 ChipID = Convert.ToInt32(node.Attributes.GetNamedItem("chipID").Value),
                 Name = node.Attributes.GetNamedItem("name").Value,
                 Type = node.Attributes.GetNamedItem("type").Value,
                 Revision = node.Attributes.GetNamedItem("revision").Value,
                 ProjectID = node.Attributes.GetNamedItem("projectID").Value
             };
             if (node.Attributes.GetNamedItem("note") != null)
             {
                 set.Notes = node.Attributes.GetNamedItem("note").Value;
             }
             set.TxPufferSize = Convert.ToInt32(node.SelectSingleNode("TxPufferSize").InnerText);
             set.RxPufferSize = Convert.ToInt32(node.SelectSingleNode("RxPufferSize").InnerText);
             set.TxPufferAddress = (node.SelectSingleNode("TxPufferAddress").InnerText != "") ? Convert.ToInt32(node.SelectSingleNode("TxPufferAddress").InnerText, 0x10) : 0;
             set.RxPufferAddress = (node.SelectSingleNode("RxPufferAddress").InnerText != "") ? Convert.ToInt32(node.SelectSingleNode("RxPufferAddress").InnerText, 0x10) : 0;
             set.NffsControl = node.SelectSingleNode("nFFS_control").InnerText != "0";
             foreach (XmlNode node2 in node.SelectNodes("Register"))
             {
                 DeviceRegister item = new DeviceRegister {
                     Address = Convert.ToInt32(node2.Attributes.GetNamedItem("address").Value, 0x10),
                     Name = node2.Attributes.GetNamedItem("name").Value,
                     Size = Convert.ToInt32(node2.Attributes.GetNamedItem("size").Value),
                     DefaultValue = (node2.Attributes.GetNamedItem("defaultVal").Value != "-") ? Convert.ToInt32(node2.Attributes.GetNamedItem("defaultVal").Value, 0x10) : -1
                 };
                 if ((node2.Attributes.GetNamedItem("currentVal") != null) && (node2.Attributes.GetNamedItem("currentVal").Value != "-"))
                 {
                     item.CurrentValue = Convert.ToInt32(node2.Attributes.GetNamedItem("currentVal").Value, 0x10);
                 }
                 else
                 {
                     item.CurrentValue = item.DefaultValue;
                 }
                 item.DeviceValue = item.DefaultValue;
                 item.IsRead = Convert.ToBoolean(Convert.ToInt32(node2.Attributes.GetNamedItem("isRead").Value));
                 item.IsWrite = Convert.ToBoolean(Convert.ToInt32(node2.Attributes.GetNamedItem("isWrite").Value));
                 if (node2.Attributes.GetNamedItem("isMarked") != null)
                 {
                     item.IsMarked = Convert.ToBoolean(Convert.ToInt32(node2.Attributes.GetNamedItem("isMarked").Value));
                 }
                 else
                 {
                     item.IsMarked = false;
                 }
                 DeviceRegisterClassification classification = new DeviceRegisterClassification {
                     IsTest = Convert.ToBoolean(Convert.ToInt32(node2.SelectSingleNode("Classification").Attributes.GetNamedItem("isTestReg").Value)),
                     IsRF = Convert.ToBoolean(Convert.ToInt32(node2.SelectSingleNode("Classification").Attributes.GetNamedItem("isRFreg").Value)),
                     IsDigital = Convert.ToBoolean(Convert.ToInt32(node2.SelectSingleNode("Classification").Attributes.GetNamedItem("isDigitalReg").Value)),
                     IsMisc = Convert.ToBoolean(Convert.ToInt32(node2.SelectSingleNode("Classification").Attributes.GetNamedItem("isMiscReg").Value)),
                     IsStatus = Convert.ToBoolean(Convert.ToInt32(node2.SelectSingleNode("Classification").Attributes.GetNamedItem("isStatusReg").Value))
                 };
                 XmlNode namedItem = node2.SelectSingleNode("Classification").Attributes.GetNamedItem("isAconfig");
                 if (namedItem != null)
                 {
                     classification.IsAConfig = Convert.ToBoolean(Convert.ToInt32(namedItem.Value));
                 }
                 item.RegClass = classification;
                 foreach (XmlNode node4 in node2.SelectNodes("Bit"))
                 {
                     DeviceRegisterBit bit = new DeviceRegisterBit {
                         BitIdx = Convert.ToInt32(node4.Attributes.GetNamedItem("index").Value),
                         Name = node4.Attributes.GetNamedItem("name").Value
                     };
                     item.Bits.Add(bit);
                 }
                 item.Description = node2.LastChild.InnerText;
                 set.Registers.Add(item);
             }
             myDev = set;
             return;
         }
     }
 }
コード例 #15
0
ファイル: AppWin_SPITool_PRO.cs プロジェクト: x893/WDS
 private void chbMarked_CheckedChanged(object sender, EventArgs e)
 {
     try
     {
         RegisterDGVACC = _myDev;
         myFormStatus = FormViewACC;
     }
     catch (Exception exception)
     {
         MessageBox.Show("Error at Marking register!\n" + exception.Message);
     }
 }
コード例 #16
0
ファイル: AppWin_Si4460_CP.cs プロジェクト: x893/WDS
 private void AppWin_Si4460_CP_Load(object sender, EventArgs e)
 {
     this._chipType = this._adtRec.DeviceInfo.EBID.ChipType;
     this._chipRev = this._adtRec.DeviceInfo.EBID.ChipRevision;
     this.Text = this._chipType + " " + this.Text;
     this._chipApiDescriptor = new ChipCommandAndPpropertyDescriptor();
     this._chipApiDescriptor.createDescriptorFromXML(this._chipType, this._chipRev);
     this._registerDescriptor = SPI_tools.FromXml2DeviceRecordSet(this._chipType, this._chipRev, "SPI_tools_PRO2.xml", "NewWDS.Applications.App_SPI_Tool_Pro2");
     this.modeSelectionChanged(this.rdbReady, null);
     this.initChipSpecificData();
     this.initFifoControl();
     this.initPer();
 }
コード例 #17
0
ファイル: AppWin_SPITool_PRO.cs プロジェクト: x893/WDS
 private void tsrMainToolStrip_OpenRequested(object sender, EventArgs e)
 {
     try
     {
         _myDev = new XMLReaderWriter().GridMainOpen(_appId, _myDev);
         RegisterDGVACC = _myDev;
         resetAppDataChanged();
     }
     catch (Exception exception)
     {
         MessageBox.Show("Error at Opening Registers!\n" + exception.Message);
     }
 }
コード例 #18
0
ファイル: SPI_tool_PRO2.cs プロジェクト: x893/WDS
        public static TelegramContainerItem[] createTelegramsFromBatchString(string commands, IIOPortHandler ioph, IAppMainWindow mainWin, bool ctsPoll, DeviceRegisterSet deviceRegSet, ChipCommandAndPpropertyDescriptor chipApiDescriptor, out string errorMessage)
        {
            errorMessage = "No Error";
            string[] strArray = commands.Split(new char[] { '\n' }, StringSplitOptions.RemoveEmptyEntries);
            List<TelegramContainerItem> list = new List<TelegramContainerItem>();
            bool flag = false;
            for (int i = 0; i < strArray.Length; i++)
            {
                Telegram telegram;
                LastReplyPrecondition invalid;
                byte[] buffer;
                byte[][] bufferArray4;
                byte[] buffer8;
                flag = false;
                if ((strArray[i].Trim().Length >= 2) && !strArray[i].Trim().StartsWith("#"))
                {
                    if (strArray[i].Trim().ToUpper().StartsWith("DELAY"))
                    {
                        int num2;
                        if (int.TryParse(strArray[i].Trim().ToUpper().Replace("DELAY", "").Trim(), out num2))
                        {
                            list.Add(new TelegramContainerItem(num2));
                        }
                    }
                    else if (strArray[i].Trim().ToUpper().StartsWith("RESET"))
                    {
                        bufferArray4 = new byte[5][];
                        bufferArray4[0] = new byte[] { 0x12, 6, 1, 0 };
                        bufferArray4[1] = new byte[] { 0x13, 6, 1 };
                        buffer8 = new byte[3];
                        buffer8[0] = 0x13;
                        buffer8[1] = 6;
                        bufferArray4[2] = buffer8;
                        byte[] buffer9 = new byte[4];
                        buffer9[0] = 0x12;
                        buffer9[1] = 0x1b;
                        bufferArray4[3] = buffer9;
                        bufferArray4[4] = new byte[] { 20, 0x1b };
                        byte[][] bufferArray = bufferArray4;
                        LastReplyPrecondition[] preconditionArray = new LastReplyPrecondition[] { LastReplyPrecondition.ACK, LastReplyPrecondition.ACK, LastReplyPrecondition.ACK, LastReplyPrecondition.ACK, LastReplyPrecondition.DataACK };
                        for (int j = 0; j < bufferArray.Length; j++)
                        {
                            telegram = new Telegram(bufferArray[j].Length) {
                                uniqId = GlobalServices.uniqTelegramId(),
                                parentUniqId = -1,
                                type = TelegramType.Command
                            };
                            if (ioph is IOPH_DCP)
                            {
                                telegram.protocol = Protocol.DCP;
                                telegram.DCPCmdSet = 4;
                            }
                            else
                            {
                                telegram.protocol = Protocol.DCP2;
                                telegram.DCPCmdSet = 0x1c;
                            }
                            telegram.lastReplyPrecondition = preconditionArray[j];
                            telegram.replySize = 15;
                            telegram.UserData = new object[] { false };
                            if (j == 0)
                            {
                                telegram.SenderInfo = new object[] { strArray[i].Trim(new char[] { '\r' }).Trim() };
                                telegram.UserDataExt.addUserData("CmdName", strArray[i].Trim(new char[] { '\r' }).Trim());
                            }
                            if (telegram.replySize == -1)
                            {
                                throw new Exception("Not supported command.");
                            }
                            telegram.data.copy(bufferArray[j]);
                            telegram.portHandler = ioph;
                            telegram.mainWin = mainWin;
                            list.Add(new TelegramContainerItem(telegram));
                        }
                    }
                    else if (strArray[i].Trim().ToUpper().StartsWith("SHUTDOWN"))
                    {
                        byte[][] bufferArray2 = new byte[][] { new byte[] { 0x12, 6, 1, 0 }, new byte[] { 0x13, 6, 1 } };
                        LastReplyPrecondition[] preconditionArray2 = new LastReplyPrecondition[] { LastReplyPrecondition.ACK, LastReplyPrecondition.ACK };
                        for (int k = 0; k < bufferArray2.Length; k++)
                        {
                            telegram = new Telegram(bufferArray2[k].Length) {
                                uniqId = GlobalServices.uniqTelegramId(),
                                parentUniqId = -1,
                                type = TelegramType.Command
                            };
                            if (ioph is IOPH_DCP)
                            {
                                telegram.protocol = Protocol.DCP;
                                telegram.DCPCmdSet = 4;
                            }
                            else
                            {
                                telegram.protocol = Protocol.DCP2;
                                telegram.DCPCmdSet = 0x1c;
                            }
                            telegram.lastReplyPrecondition = preconditionArray2[k];
                            telegram.replySize = 15;
                            telegram.UserData = new object[] { false };
                            if (k == 0)
                            {
                                telegram.UserDataExt.addUserData("CmdName", strArray[i].Trim(new char[] { '\r' }).Trim());
                                telegram.SenderInfo = new object[] { strArray[i].Trim(new char[] { '\r' }).Trim() };
                            }
                            if (telegram.replySize == -1)
                            {
                                throw new Exception("Not supported command.");
                            }
                            telegram.data.copy(bufferArray2[k]);
                            telegram.portHandler = ioph;
                            telegram.mainWin = mainWin;
                            list.Add(new TelegramContainerItem(telegram));
                        }
                    }
                    else
                    {
                        if (!strArray[i].Trim().ToUpper().StartsWith("DCP"))
                        {
                            goto Label_064D;
                        }
                        invalid = LastReplyPrecondition.Invalid;
                        buffer = new byte[1];
                        if (strArray[i].Trim().Length <= 3)
                        {
                            goto Label_0523;
                        }
                        switch (strArray[i].Trim().ToUpper()[3])
                        {
                            case 'A':
                                invalid = LastReplyPrecondition.ACK;
                                goto Label_04F9;

                            case 'D':
                                invalid = LastReplyPrecondition.DataACK;
                                goto Label_04F9;

                            case 'I':
                                invalid = LastReplyPrecondition.Indication;
                                goto Label_04F9;
                        }
                    }
                }
                continue;
            Label_04F9:
                buffer = WDSConverters.ToByteArray(strArray[i].Substring(4).Trim().Replace(" ", "").ToUpper());
            Label_0523:
                telegram = new Telegram(buffer.Length);
                telegram.uniqId = GlobalServices.uniqTelegramId();
                telegram.parentUniqId = -1;
                telegram.type = TelegramType.Command;
                if (ioph is IOPH_DCP)
                {
                    telegram.protocol = Protocol.DCP;
                    telegram.DCPCmdSet = 4;
                }
                else
                {
                    telegram.protocol = Protocol.DCP2;
                    telegram.DCPCmdSet = 0x1c;
                }
                telegram.lastReplyPrecondition = invalid;
                telegram.replySize = 15;
                telegram.UserData = new object[] { false };
                telegram.SenderInfo = new object[] { strArray[i].Trim(new char[] { '\r' }).Trim() };
                telegram.UserDataExt.addUserData("CmdName", strArray[i].Trim(new char[] { '\r' }).Trim());
                if (telegram.replySize == -1)
                {
                    throw new Exception("Not supported command.");
                }
                telegram.data.copy(buffer);
                telegram.portHandler = ioph;
                telegram.mainWin = mainWin;
                list.Add(new TelegramContainerItem(telegram));
                continue;
            Label_064D:
                if (strArray[i].Trim().ToUpper().StartsWith("RAM"))
                {
                    string str;
                    if (!getDataFromFwLoadCommand(strArray[i].Trim(), out str))
                    {
                        _log.Error("Cannot create RAM Load telegram from command string");
                    }
                    else
                    {
                        string str2;
                        StreamReader reader = File.OpenText(str);
                        byte[] buf = new byte[0x800];
                        int index = 0;
                        while (((str2 = reader.ReadLine()) != null) && (index < buf.Length))
                        {
                            if (byte.TryParse(str2, NumberStyles.HexNumber, (IFormatProvider) null, out buf[index]))
                            {
                                index++;
                            }
                        }
                        if (index == 0)
                        {
                            _log.Error("Could not read any RAM data from the RAM Load file");
                        }
                        else
                        {
                            bufferArray4 = new byte[0x11][];
                            buffer8 = new byte[4];
                            buffer8[0] = 0x10;
                            buffer8[3] = 1;
                            bufferArray4[0] = buffer8;
                            bufferArray4[1] = new byte[] { 0x10, 3, 0, 7, 80 };
                            bufferArray4[2] = new byte[] { 0x10, 4, 0, 7, 80, 0 };
                            bufferArray4[3] = new byte[] { 0x10, 4, 0, 7, 80, 0 };
                            bufferArray4[4] = new byte[] { 0x10, 3, 0, 7, 80 };
                            bufferArray4[5] = new byte[] { 0x10, 4, 0, 0x6d, 80, 1 };
                            bufferArray4[6] = new byte[] { 0x10, 4, 0, 1, 80, 0xff };
                            bufferArray4[7] = new byte[] { 0x10, 4, 0, 0xac, 80, 0x1f };
                            bufferArray4[8] = new byte[] { 0x10, 7, 0, 0x94, 0x54, 0x53 };
                            bufferArray4[9] = new byte[] { 0x10, 7, 0, 0x95, 0x54, 0x30 };
                            bufferArray4[10] = new byte[] { 0x10, 0x45, 0, 0x88 };
                            buffer8 = new byte[3];
                            buffer8[0] = 0x10;
                            buffer8[1] = 0x85;
                            bufferArray4[11] = buffer8;
                            buffer8 = new byte[3];
                            buffer8[0] = 0x10;
                            buffer8[1] = 0xc5;
                            bufferArray4[12] = buffer8;
                            bufferArray4[13] = new byte[] { 0x10, 3, 0, 7, 80 };
                            bufferArray4[14] = new byte[] { 0x10, 4, 0, 7, 80, 9 };
                            bufferArray4[15] = new byte[] { 0x10, 4, 0, 7, 80, 9 };
                            bufferArray4[0x10] = new byte[] { 0x10, 3, 0, 7, 80 };
                            byte[][] bufferArray3 = bufferArray4;
                            int num6 = 0;
                            for (int m = 0; m < bufferArray3.Length; m++)
                            {
                                telegram = new Telegram(bufferArray3[m].Length) {
                                    uniqId = GlobalServices.uniqTelegramId(),
                                    parentUniqId = -1,
                                    type = TelegramType.Command
                                };
                                if (ioph is IOPH_DCP)
                                {
                                    telegram.protocol = Protocol.DCP;
                                    telegram.DCPCmdSet = 4;
                                }
                                else
                                {
                                    telegram.protocol = Protocol.DCP2;
                                    telegram.DCPCmdSet = 0x1c;
                                }
                                telegram.lastReplyPrecondition = LastReplyPrecondition.Indication;
                                telegram.replySize = 15;
                                telegram.UserData = new object[] { false };
                                if (m == 0)
                                {
                                    telegram.UserDataExt.addUserData("CmdName", strArray[i].Trim(new char[] { '\r' }).Trim());
                                    telegram.SenderInfo = new object[] { strArray[i].Trim(new char[] { '\r' }).Trim() };
                                }
                                if (telegram.replySize == -1)
                                {
                                    throw new Exception("Not supported command.");
                                }
                                telegram.data.copy(bufferArray3[m]);
                                if ((m == 11) && (num6 < 0x10))
                                {
                                    telegram.data.appendFromStartIdx(buf, num6 * 0x79, 0x79);
                                    num6++;
                                    m--;
                                }
                                else if (m == 12)
                                {
                                    telegram.data.appendFromStartIdx(buf, buf.Length - 0x70, 0x70);
                                }
                                else if (m == 11)
                                {
                                    continue;
                                }
                                telegram.portHandler = ioph;
                                telegram.mainWin = mainWin;
                                list.Add(new TelegramContainerItem(telegram));
                            }
                        }
                    }
                }
                else if (strArray[i].Trim().ToUpper().StartsWith("PATCH"))
                {
                    string str3;
                    if (!getDataFromFwLoadCommand(strArray[i].Trim(), out str3))
                    {
                        _log.Error("Cannot create PATCH Load telegram from command string");
                    }
                    else
                    {
                        string str4;
                        StreamReader reader2 = File.OpenText(str3);
                        List<byte[]> list2 = new List<byte[]>();
                        while ((str4 = reader2.ReadLine()) != null)
                        {
                            byte[] item = new byte[8];
                            if (!str4.Trim().StartsWith("#"))
                            {
                                string[] strArray2 = str4.Split(new char[] { ',' });
                                for (int n = 0; (n < strArray2.Length) && (n < item.Length); n++)
                                {
                                    string s = strArray2[n];
                                    if (strArray2[n].StartsWith("0x"))
                                    {
                                        s = s.Substring(2);
                                    }
                                    if (!byte.TryParse(s, NumberStyles.HexNumber, (IFormatProvider) null, out item[n]))
                                    {
                                        _log.Error("Invalid data in PATCH Load file");
                                    }
                                }
                                list2.Add(item);
                            }
                        }
                        if (list2.Count == 0)
                        {
                            _log.Error("Could not read any PATCH data from the RAM Load file");
                        }
                        else
                        {
                            buffer8 = new byte[3];
                            buffer8[0] = 0x10;
                            byte[] buffer4 = buffer8;
                            byte[] buffer5 = new byte[] { 0x10, 0, 0, 0x44, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff };
                            for (int num9 = 0; num9 < (list2.Count * 2); num9++)
                            {
                                telegram = new Telegram(10) {
                                    uniqId = GlobalServices.uniqTelegramId(),
                                    parentUniqId = -1,
                                    type = TelegramType.Command
                                };
                                if (ioph is IOPH_DCP)
                                {
                                    telegram.protocol = Protocol.DCP;
                                    telegram.DCPCmdSet = 4;
                                }
                                else
                                {
                                    telegram.protocol = Protocol.DCP2;
                                    telegram.DCPCmdSet = 0x1c;
                                }
                                telegram.lastReplyPrecondition = LastReplyPrecondition.Indication;
                                telegram.replySize = 15;
                                if (num9 == 0)
                                {
                                    telegram.UserDataExt.addUserData("CmdName", strArray[i].Trim(new char[] { '\r' }).Trim());
                                    telegram.SenderInfo = new object[] { strArray[i].Trim(new char[] { '\r' }).Trim() };
                                }
                                if (telegram.replySize == -1)
                                {
                                    throw new Exception("Not supported command.");
                                }
                                if ((num9 % 2) == 0)
                                {
                                    telegram.data.copy(buffer4);
                                    telegram.data.appendFromStartIdx(list2[num9 / 2], 0, list2[num9 / 2].Length);
                                }
                                else
                                {
                                    telegram.data.copy(buffer5);
                                }
                                telegram.portHandler = ioph;
                                telegram.mainWin = mainWin;
                                list.Add(new TelegramContainerItem(telegram));
                            }
                        }
                    }
                }
                else if (strArray[i].Trim().ToUpper().StartsWith("TCL"))
                {
                    int num10;
                    string str6;
                    if (!getDataFromTclCommand(strArray[i].Trim(), out num10, out str6))
                    {
                        _log.Error("Cannot create TCL telegram from command string");
                    }
                    else
                    {
                        telegram = new Telegram(str6.Length) {
                            TimeOut = num10 * 0x3e8,
                            uniqId = GlobalServices.uniqTelegramId(),
                            parentUniqId = -1,
                            type = TelegramType.ExecuteTclScript
                        };
                        if (ioph is IOPH_DCP)
                        {
                            telegram.protocol = Protocol.DCP;
                            telegram.DCPCmdSet = 4;
                        }
                        else
                        {
                            telegram.protocol = Protocol.DCP2;
                            telegram.DCPCmdSet = 0x1c;
                        }
                        telegram.replySize = 15;
                        telegram.UserData = new object[] { false };
                        telegram.SenderInfo = new object[] { strArray[i].Trim(new char[] { '\r' }).Trim() };
                        telegram.UserDataExt.addUserData("CmdName", strArray[i].Trim(new char[] { '\r' }).Trim());
                        if (telegram.replySize == -1)
                        {
                            throw new Exception("Not supported command.");
                        }
                        telegram.data.copy(str6);
                        telegram.userData = 3;
                        telegram.portHandler = ioph;
                        telegram.mainWin = mainWin;
                        list.Add(new TelegramContainerItem(telegram));
                    }
                }
                else
                {
                    int numberOfReplyData = 0;
                    List<byte> list3 = new List<byte>();
                    string[] strArray3 = strArray[i].Trim().Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries);
                    bool flag2 = false;
                    bool isPeekPoke = false;
                    byte num12 = 0;
                    bool flag4 = false;
                    bool flag5 = false;
                    for (int num13 = 0; num13 < strArray3.Length; num13++)
                    {
                        if ((strArray3[num13].Trim().ToUpper() == "DW") || (strArray3[num13].Trim().ToUpper() == "DR"))
                        {
                            flag2 = true;
                            isPeekPoke = false;
                            flag4 = true;
                            if (strArray3[num13].Trim() == "DW")
                            {
                                num12 = 4;
                            }
                            else
                            {
                                num12 = 3;
                                flag5 = true;
                            }
                        }
                        else
                        {
                            if ((strArray3[num13].Trim().ToUpper() == "'PEEK'") || (strArray3[num13].Trim().ToUpper() == "'POKE'"))
                            {
                                isPeekPoke = true;
                            }
                            byte[] array = null;
                            if (strArray3[num13].Trim().StartsWith("'"))
                            {
                                if (!isPeekPoke || (num13 == 0))
                                {
                                    array = chipApiDescriptor.getByteRepresentationByAPIName(strArray3[num13].Trim(new char[] { '\'' }));
                                }
                                if (array == null)
                                {
                                    array = SPI_tools.getByteRepresentationByRegisterName(strArray3[num13].Trim(new char[] { '\'' }), isPeekPoke, deviceRegSet);
                                }
                                if (array == null)
                                {
                                    errorMessage = "Line number: " + i.ToString() + "\nInvalid command: " + strArray[i].Trim();
                                    return null;
                                }
                                if ((num13 == 0) && (chipApiDescriptor.getCommandById(array[0]).NumberOfReplyData > 1))
                                {
                                    flag = true;
                                    numberOfReplyData = chipApiDescriptor.getCommandById(array[0]).NumberOfReplyData;
                                }
                                if (flag2)
                                {
                                    Array.Reverse(array);
                                    flag2 = false;
                                }
                                if (((list3.Count == 1) && ((list3[0] == chipApiDescriptor.SetPropertyCommandId) || (list3[0] == chipApiDescriptor.GetPropertyCommandId))) && (array.Length == 2))
                                {
                                    List<byte> list4 = new List<byte>(array);
                                    list4.Insert(1, 1);
                                    array = list4.ToArray();
                                }
                                if ((flag4 && (array.Length == 2)) && (array[1] == 0x54))
                                {
                                    num12 = (byte) (num12 + 3);
                                }
                                if ((isPeekPoke && (array.Length == 2)) && (array[0] == 0x54))
                                {
                                    array[0] = 0;
                                }
                                foreach (byte num14 in array)
                                {
                                    list3.Add(num14);
                                }
                            }
                            else
                            {
                                byte num15;
                                if ((strArray3[num13].Trim().Length <= 2) && byte.TryParse(strArray3[num13].Trim(), NumberStyles.HexNumber, (IFormatProvider) null, out num15))
                                {
                                    if ((num13 == 0) && (chipApiDescriptor.getCommandById(num15).NumberOfReplyData > 1))
                                    {
                                        flag = true;
                                        numberOfReplyData = chipApiDescriptor.getCommandById(num15).NumberOfReplyData;
                                    }
                                    list3.Add(num15);
                                }
                                else
                                {
                                    errorMessage = "Line number: " + i.ToString() + "\nInvalid command: " + strArray[i].Trim();
                                    return null;
                                }
                            }
                        }
                    }
                    if (list3.Count != 0)
                    {
                        if (list3.Count == 1)
                        {
                            list3.Add(0);
                        }
                        telegram = new Telegram(list3.Count + 3) {
                            uniqId = GlobalServices.uniqTelegramId(),
                            parentUniqId = -1,
                            type = TelegramType.Command,
                            lastReplyPrecondition = LastReplyPrecondition.Indication,
                        };
                        if (ioph is IOPH_DCP)
                        {
                            telegram.protocol = Protocol.DCP;
                            telegram.DCPCmdSet = 4;
                        }
                        else
                        {
                            telegram.protocol = Protocol.DCP2;
                            telegram.DCPCmdSet = 0x1c;
                        }
                        buffer8 = new byte[3];
                        buffer8[0] = 0x10;
                        buffer8[1] = num12;
                        telegram.data.copy(buffer8);
                        telegram.data.append(list3.ToArray(), list3.Count);
                        telegram.SenderInfo = new object[] { strArray[i].Trim(new char[] { '\r' }).Trim() };
                        telegram.UserDataExt.addUserData("CmdName", strArray[i].Trim(new char[] { '\r' }).Trim());
                        telegram.portHandler = ioph;
                        telegram.mainWin = mainWin;
                        list.Add(new TelegramContainerItem(telegram));
                        if (flag)
                        {
                            telegram = new Telegram(13) {
                                uniqId = GlobalServices.uniqTelegramId(),
                                parentUniqId = -1,
                                type = TelegramType.Command,
                                lastReplyPrecondition = LastReplyPrecondition.Indication
                            };
                            if (ioph is IOPH_DCP)
                            {
                                telegram.protocol = Protocol.DCP;
                                telegram.DCPCmdSet = 4;
                            }
                            else
                            {
                                telegram.protocol = Protocol.DCP2;
                                telegram.DCPCmdSet = 0x1c;
                            }
                            buffer8 = new byte[4];
                            buffer8[0] = 0x10;
                            buffer8[3] = 0x44;
                            telegram.data.copy(buffer8);
                            byte[] buffer7 = new byte[numberOfReplyData];
                            for (int num16 = 0; num16 < buffer7.Length; num16++)
                            {
                                buffer7[num16] = 0xff;
                            }
                            telegram.data.append(buffer7, buffer7.Length);
                            telegram.UserDataExt.addUserData("normalLogReply", true);
                            telegram.portHandler = ioph;
                            telegram.mainWin = mainWin;
                            list.Add(new TelegramContainerItem(telegram));
                        }
                        else if (((list[list.Count - 1].telegram.data.NumItems != 5) || (list[list.Count - 1].telegram.data.Buf[3] != 0x34)) && ctsPoll)
                        {
                            if (!flag4)
                            {
                                telegram = new Telegram(13) {
                                    uniqId = GlobalServices.uniqTelegramId(),
                                    parentUniqId = -1,
                                    type = TelegramType.Command,
                                    lastReplyPrecondition = LastReplyPrecondition.Indication
                                };
                                if (ioph is IOPH_DCP)
                                {
                                    telegram.protocol = Protocol.DCP;
                                    telegram.DCPCmdSet = 4;
                                }
                                else
                                {
                                    telegram.protocol = Protocol.DCP2;
                                    telegram.DCPCmdSet = 0x1c;
                                }
                                telegram.data.copy(new byte[] { 0x10, 0, 0, 0x44, 0xff });
                                telegram.UserDataExt.addUserData("normalLogReply", true);
                                telegram.portHandler = ioph;
                                telegram.mainWin = mainWin;
                                list.Add(new TelegramContainerItem(telegram));
                            }
                            else if (flag5)
                            {
                                list[list.Count - 1].telegram.UserDataExt.addUserData("debugLogReply", true);
                            }
                        }
                    }
                }
            }
            if (list.Count == 0)
            {
                errorMessage = "Did not recognized any executable commands!";
                return null;
            }
            return list.ToArray();
        }
コード例 #19
0
ファイル: AppWin_SPITool_PRO.cs プロジェクト: x893/WDS
        public int oldTelegramFromPortHandler(Telegram telegram)
        {
            if (telegram.type == TelegramType.Command)
            {
                _closeCtrl.portHandlerClosed(telegram.portHandler);
                return 0;
            }
            if (telegram.type == TelegramType.DeviceFailure)
            {
                GlobalServices.ErrMsg(_appId, "telegramFromPortHandler(): DeviceFailure received");
                _ioph.controlSeriesExecution(SeriesExecutionState.Stop);
                statusBarPanel4.Reset();
                sbDeviceStatePane.Text = "Status: DeviceFailure";
                return -1;
            }
            if (_isSeries)
            {
                string str = "";
                if (_series.findTelegram(telegram.parentUniqId) != null)
                {
                    str = _series.findTelegram(telegram.parentUniqId).data.objectInfo(false);
                }
                GlobalServices.LogMsg(_appId, str + telegram.data.objectInfo(false));
            }
            else
            {
                GlobalServices.LogMsg(_appId, "|--->\n\tWindow->Device:   " + _tele.data.objectInfo(false) + "\n\tWindow<-Device:   " + telegram.data.objectInfo(false));
            }
            switch (telegram.type)
            {
                case TelegramType.AcknowledgeOK:
                    showLocalLog(telegram.data.objectInfo(false) + "\n");
                    break;

                case TelegramType.AcknowledgeERROR:
                    showLocalLog(telegram.data.objectInfo(false) + "\n");
                    break;

                case TelegramType.DataAcknowledgeOK:
                    showLocalLog(telegram.data.objectInfo(false) + "\n");
                    break;

                case TelegramType.DataAcknowledgeERROR:
                    showLocalLog(telegram.data.objectInfo(false));
                    break;

                case TelegramType.SeriesEndOK:
                    GlobalServices.LogMsg(_appId, "<--- Series finished");
                    break;

                case TelegramType.SeriesEndERROR:
                    GlobalServices.LogMsg(_appId, "<--- Series finished with SeriesEndERROR");
                    break;

                case TelegramType.DeviceFailure:
                    showLocalLog("DeviceFailure telegram type received: " + ((TelegramType) telegram.type).ToString());
                    break;

                default:
                    showLocalLog("Unexpected telegram type received: " + ((TelegramType) telegram.type).ToString());
                    break;
            }
            if ((telegram.type != TelegramType.SeriesEndOK) && (telegram.type != TelegramType.SeriesEndERROR))
            {
                ProcessReceivedTelegram(_tele, telegram);
            }
            else
            {
                base._isDeviceBusy = false;
                statusBarPanel4.Reset();
                if (telegram.type != TelegramType.SeriesEndOK)
                {
                    statusBarPanel4.Reset();
                    ButtonLock(false);
                    sbDeviceStatePane.Text = "Status: SeriesEnd Error";
                }
                else
                {
                    ButtonLock(false);
                    switch (_task_id)
                    {
                        case Task.SetVoltage:
                            _task_id = Task.None;
                            if (!_isReadCurrentOnChange)
                            {
                                tsrMainToolStrip.setCurrentText("? \x00b5A");
                            }
                            break;

                        case Task.Reset:
                            if (!_isReadCurrentOnChange)
                            {
                                tsrMainToolStrip.setCurrentText("? \x00b5A");
                            }
                            break;

                        case Task.SingleRegisterIO:
                            if (!_isReadCurrentOnChange)
                            {
                                tsrMainToolStrip.setCurrentText("? \x00b5A");
                            }
                            break;

                        case Task.MultipleRegisterIO:
                            RegisterDGVACC = _myDev;
                            if (!_isReadCurrentOnChange)
                            {
                                tsrMainToolStrip.setCurrentText("? \x00b5A");
                            }
                            break;

                        case Task.Batch1:
                        case Task.Batch2:
                        case Task.Batch3:
                        case Task.Batch4:
                            tsrMainToolStrip.setCurrentText("? \x00b5A");
                            break;

                        case Task.FIFORead:
                        {
                            myFifoReadWrite.Packets++;
                            bool flag = false;
                            for (int i = 0; i < myFifoReadWrite.RxArray.Length; i++)
                            {
                                if (myFifoReadWrite.RxArray[i].H != "")
                                {
                                    myFifoReadWrite.Databits += 8;
                                    if (myFifoReadWrite.RxArray[i].Xpd != "")
                                    {
                                        if (!flag && (myFifoReadWrite.RxArray[i].H != myFifoReadWrite.RxArray[i].Xpd))
                                        {
                                            myFifoReadWrite.Lost++;
                                            flag = true;
                                        }
                                        int variable = Convert.ToInt32(myFifoReadWrite.RxArray[i].H, 0x10);
                                        int num3 = Convert.ToInt32(myFifoReadWrite.RxArray[i].Xpd, 0x10);
                                        for (int j = 0; j < 8; j++)
                                        {
                                            if (SPI_tools.isIndexedBitSet(variable, j) != SPI_tools.isIndexedBitSet(num3, j))
                                            {
                                                myFifoReadWrite.BitError++;
                                            }
                                        }
                                    }
                                }
                            }
                            myFifoReadWrite.Per = ((double) myFifoReadWrite.Lost) / ((double) myFifoReadWrite.Packets);
                            myFifoReadWrite.Per = Math.Round(myFifoReadWrite.Per, 4);
                            myFifoReadWrite.Ber = ((double) myFifoReadWrite.BitError) / ((double) myFifoReadWrite.Databits);
                            myFifoReadWrite.Ber = Math.Round(myFifoReadWrite.Ber, 4);
                            break;
                        }
                    }
                }
            }
            return 0;
        }
コード例 #20
0
ファイル: XMLReaderWriter.cs プロジェクト: x893/WDS
 public DeviceRegisterSet GridMainOpen(string _appId, DeviceRegisterSet fullRegister)
 {
     string currentDirectory = Directory.GetCurrentDirectory();
     try
     {
         if (CommonOpenSave.Openconfig("WDS3_" + fullRegister.Type.Replace("/", "_") + "_" + fullRegister.Revision) == 0)
         {
             XmlNode configNode = CommonOpenSave.ConfigNode;
             if (configNode == null)
             {
                 throw new Exception("Incompatible Chip Configuration file, or incorrect WDS version / Chip Revision");
             }
             this.RestoreRegister(configNode, fullRegister);
         }
         return fullRegister;
     }
     catch (Exception exception)
     {
         GlobalServices.ErrMsg(_appId, "Error at loading Device settings! \n" + exception.Message);
         GlobalServices.msgBox("Error at loading Device settings! \n" + exception.Message, "Error!");
         Directory.SetCurrentDirectory(currentDirectory);
     }
     return fullRegister;
 }