/// <summary> /// Convert PDU to XML. /// </summary> private void PduToXmlBtn_Click(object sender, EventArgs e) { string xml = null; try { if (tabControl1.SelectedIndex == 3) { translator.DataToXml(DataPdu.Text, out xml); } else { UpdateSecurity(); XmlTB.Text = translator.PduToXml(PduTB.Text); } } catch (Exception ex) { MessageBox.Show(this, ex.Message); } finally { DataXml.Text = xml; } }
private void Cl_OnPdu(object sender, byte[] data) { string str = GXCommon.ToHex(data); Console.WriteLine(str); _logger.LogInformation(str); GXDLMSTranslator t = new GXDLMSTranslator(TranslatorOutputType.SimpleXml); str = t.PduToXml(data); Console.WriteLine(str); _logger.LogInformation(str); }
/// <summary> /// Convert PDU to XML. /// </summary> private void PduToXmlBtn_Click(object sender, EventArgs e) { UpdateSecuritySettings(); try { XmlTB.Text = translator.PduToXml(RemoveComments(PduTB.Text)); } catch (Exception ex) { MessageBox.Show(this, ex.Message); } }
/// <summary> /// Actual processor of the Hex Message from the smart meter /// </summary> /// <param name="DataRow">HEX message</param> /// <returns></returns> public virtual DataRow ProcessDataRow(string DataRow) { var aes = new AesGcmEncryption(this.DecryptionKey); GXDLMSTranslator translator = new GXDLMSTranslator(TranslatorOutputType.SimpleXml); translator.Comments = true; translator.Hex = false; translator.ShowStringAsHex = false; //We have to call encrypt and not decrypt - this is how the EVN integration works at least :/ string hexStringDecrypted = aes.Encrypt(DataRow); string xml = translator.PduToXml(hexStringDecrypted); return(this.ParseXML(xml)); }