/// <summary> /// /// </summary> /// <param name="listBox"></param> //private void FillProcessorListBox(ListBox listBox) //{ // listBox.Items.Clear(); // foreach (IParseResultProcessor p in _iParseResultProcessorManager.IParseResultProcessorCollection) // { // listBox.Items.Add(p.GetType().FullName); // } //} private void FillBCListBox(ListBox listBox) { listBox.Items.Clear(); BytesConverterManager bcm = YeHeCommuniServerApp.Default.CommuniSoft.BytesConverterManager; foreach (IBytesConverter ibc in bcm.BytesConverterCollection) { listBox.Items.Add(ibc.GetType().FullName); } }
/// <summary> /// /// </summary> /// <param name="convertName"></param> /// <returns></returns> static private IBytesConverter GetBytesConvert(string converterName, object[] args) { BytesConverterManager bcm = CommuniSoft.Default.BytesConverterManager; //IBytesConverter bc = bcm.GetBytesConverter(convertName); IBytesConverter bc = bcm.CreateBytesConverter(converterName, args); if (bc == null) { //bc = new OriginalConverter(); log.Error("not find BytesConvert: " + converterName); throw new ArgumentException("not find BytesConvert: " + converterName); } else { } return(bc); }
/// <summary> /// /// </summary> /// <param name="bs"></param> /// <returns></returns> static public XD221ModbusConfigObject Parse(byte[] bs) { if (bs.Length == 7) { int begin = GetModbusWord(bs, 0); int wordCount = GetModbusWord(bs, 2); int byteCount = bs[4]; // TODO: wordindex converter // XD221ConfigDefine ci = XD221ConfigDefineCollection.Find(begin + 1); // TODO: ci == null // IBytesConverter ibc = BytesConverterManager.CreateBytesConverter(ci.Converter, null); object obj = ibc.ConvertToObject(bs); XD221ModbusConfigObject mpo = new XD221ModbusConfigObject(ci.Name, obj); return(mpo); } return(null); }