// Converting BIN/XML to IRsignal public IRPacket ConvertingBINARYorXMLtoIRsignal(String FileName) { if (IsXmlFile(FileName)) { return(irPacket = RRUtil.DeserializePacketFromXML(FileName)); } else { return(irPacket = RRUtil.DeserializePacketFromBinary(FileName)); } }
// Кнопка вызова пульта private void button12_Click(object sender, EventArgs e) { //RemoteController RC = new RemoteController(); //RC.ShowDialog(); LoadDB(); // Get AVDevices from avDeviceDB AVDevice[] AVDevices = avDeviceDB.AVDevices; //Get full name and remove point from name string nameFolderAVDeviceDB = ReverseStringAndDelete(DeletePointFromString(avDeviceDBName)); if (!Directory.Exists(pathClick + "\\" + nameFolderAVDeviceDB)) { Directory.CreateDirectory(pathClick + "\\" + nameFolderAVDeviceDB); } Messages("Создана папка " + nameFolderAVDeviceDB); // It is displaying created folders AddFoldersWithFileFromEnterPath(pathClick); foreach (AVDevice item in AVDevices) { signals += "________" + item.Name + Environment.NewLine; if (!Directory.Exists(pathClick + "\\" + nameFolderAVDeviceDB + "\\" + item.Name)) { Directory.CreateDirectory(pathClick + "\\" + nameFolderAVDeviceDB + "\\" + item.Name); //MessageBox.Show(pathClick + "\\" + nameFolderAVDeviceDB); } else { Messages("Такая папка существует."); } IRPacket[] Signals = item.Signals; foreach (IRPacket element in Signals) { //MessageBox.Show(pathClick + "\\" + nameFolderAVDeviceDB + "\\" + item.Name + "\\" + element.Name + ".xml"); RRUtil.SerializePacketToXML(pathClick + "\\" + nameFolderAVDeviceDB + "\\" + item.Name + "\\" + element.Name + ".xml", element); signals += "-" + element.Name + Environment.NewLine; } } MessageBox.Show(signals); }
// Захват сигнала public void CaptureSignal(string fileName = "") { OpenFileDialog OFD = new OpenFileDialog(); OFD.InitialDirectory = Form1.pathClick; SearchRedRat SRR = new SearchRedRat(); if (SRR.FindRedRat() != null) { RedRat3 = SRR.FindRedRat(); RedRat3.LearningSignalIn += SignalDataHandler; RedRat3.GetModulatedSignal(10000);//Ввод сигнала в RedRat3 осуществляется в течении 10с haveSignal = false; while (!haveSignal) { Thread.Sleep(100); } if (modSignal != null) { var mes = MessageBox.Show("OK - cохранить XML" + Environment.NewLine + "CANCEL - cохранить BIN", "Вариант сохранения файла", MessageBoxButtons.OKCancel); if (mes == DialogResult.OK) { inputName IN = new inputName(); IN.ShowDialog(); RRUtil.SerializePacketToXML(Form1.pathClick + "\\" + IN.name + ".xml", modSignal); tempMessage = "XML файл \"" + IN.name + "\" сохранен."; } else { inputName IN = new inputName(); IN.ShowDialog(); RRUtil.SerializePacketToBinary(Form1.pathClick + "\\" + IN.name + ".bin", modSignal);//SerializePacketToXML //var m = MessageBox.Show("Файл \"" + IN.name + "\" сохранен.", "Прием сигнала", MessageBoxButtons.OK); tempMessage = "BIN файл \"" + IN.name + "\" сохранен."; } } else { MessageBox.Show("Сигнал не был получен. Прием окончен.", "Прием сигнала", MessageBoxButtons.OK); } } }
//Захват сигнала public void CaptureSignal(string fileName) { if (fileName == "") { MessageBox.Show("Имя файла отсутствует.", "Ошибка", MessageBoxButtons.OK); return; } else { FindRedRat3(); redRat3.LearningSignalIn += SignalDataHandler; //Ввод сигнала в RedRat3 осуществляется в течении 10с redRat3.GetModulatedSignal(10000); haveSignal = false; while (!haveSignal) { Thread.Sleep(10); } if (irPacket != null) { //Создает новый файл XML для irPacket //XmlTextWriter xmlDoc = new XmlTextWriter("C:\\RedRat3_signalDB\\BD - irPacket.xml", Encoding.UTF8); //xmlDoc.WriteStartDocument(); //var fileName = "C:\\RedRat3\\XMLsignal\\XMLsignal.xml"; //var fileName = argParser.GetArgOption(ArgumentParser.CaptureArg); if (IsXmlFile(fileName)) { //RRUtil.SerializePacketToXML(fileName, irPacket); //Создаем объект AV-устройства, чтобы мы могли хранить данные сигнала в файле XML. var avDeviceDB = new AVDeviceDB(); var avDevice = new AVDevice("Sample Device", AVDevice.AVDeviceType.SET_TOP_BOX); avDeviceDB.AddAVDevice(avDevice); irPacket.Name = "New Signal"; //Добавить сигналы в «Sample Device». avDevice.AddSignal(irPacket, false); //Храните это как файл XML... var ser = new XmlSerializer(typeof(AVDeviceDB)); TextWriter writer = new StreamWriter((new FileInfo(fileName)).FullName); ser.Serialize(writer, avDeviceDB); writer.Close(); MessageBox.Show("ИК-данные c ПДУ сохранены в формате XML в файл:\n" + fileName); } else { RRUtil.SerializePacketToBinary(fileName, irPacket); MessageBox.Show("Saved in binary format to file: " + fileName); } //xmlDoc.WriteEndDocument(); //xmlDoc.Close(); } else { MessageBox.Show("Сигнал пуст."); return; } } }