public string Pirnt() { return($@" Assuming base64-encoded packet {_packet.Base64String()} Message Type = Data PHYPayload = {_packet.ToHexString()} ( PHYPayload = MHDR[1] | MACPayload[..] | MIC[4] ) MHDR = {BitConverter.ToString(new byte[] { _packet[0] })} MACPayload = {MACPayload.ToHexString()} MIC = {MIC.ToHexString()} (from packet) {(MIC.ToHexString() != MICChecker.MIC.ToHexString()?"INVALID":"") } = {MICChecker.MIC.ToHexString()} (expected, assuming 32 bits frame counter below 65,536) ( MACPayload = FHDR | FPort | FRMPayload ) FHDR = {FHDR.ToString()} FPort = {Fport.ToHexString()} FRMPayload = {FRMPayload.ToHexString()} (from packet, encrypted) = {DecryptFRMPayload().Item2} (decrypted) ( FHDR = DevAddr[4] | FCtrl[1] | FCnt[2] | FOpts[0..15] ) DevAddr = {FHDR.DevAddr.ToHexString()} (Big Endian) FCtrl = {FHDR.FCTRL.ToString()} FCnt = {FHDR.FCnt.ToHexString()} (Big Endian) FOpts = {FHDR.FOpts.ToHexString()} Message Type = {mhdr.MType.ToString()} Direction = {((mhdr.MType == MType.UnconfirmedDataUp || mhdr.MType == MType.ConfirmedDataUp) ? "Up" : "Down") } FCnt = {FHDR.FCnt.ToInt16()} FCtrl.ACK = {FHDR.FCTRL.ACK} FCtrl.ADR = {FHDR.FCTRL.ADR} "); }
public string EjecutarRegla(byte[] Regla, MIC.Entidades.Termino[] oTerminos, ref string sXMLTerminos, ref string sXMLSalida) { string sXMLResultante; int nCodSesion = 0; MIC.DAL.Datos oDatos = new MIC.DAL.Datos(); bool bResp; string sResp; string sCopeteXML = @"<?xml version=""1.0"" encoding=""UTF-8""?>"; //Traigo el número de sesión nCodSesion = oDatos.NumerodeSesion(); //Armo el XML final sXMLResultante = ProcesoXML(Regla, oTerminos, nCodSesion); sXMLResultante = sXMLResultante.Replace(sCopeteXML,""); //Ejecutar la regla bResp = oDatos.EjecutarRegla(sXMLResultante, ref sXMLTerminos, ref sXMLSalida); if (bResp) sResp = "Ok"; else sResp = "ERROR"; return sResp; }
public void TestPrimarySecondaryBase() { var a = new MIA0(); var resa = a.Get(); Assert.That(resa, Is.EqualTo(50)); var c = new MIC(); var res = c.Get(); Assert.That(res, Is.EqualTo(50)); }
private string ProcesoXML(byte[] Regla, MIC.Entidades.Termino[] oTerminos, int nCodSesion) { string sXML = ""; doc = new XmlDocument(); docNode = doc.CreateXmlDeclaration("1.0", "UTF-8", null); doc.AppendChild(docNode); RootNode = doc.CreateElement("ROOT"); doc.AppendChild(RootNode); //NODO miSesion XmlNode oNode = doc.CreateElement("miSesion"); XmlAttribute oAttribute = doc.CreateAttribute("nCodSesion"); oAttribute.Value = nCodSesion.ToString(); oNode.Attributes.Append(oAttribute); RootNode.AppendChild(oNode); //Proceso el archivo e incorporo el resultado ProcesarArchivo(Regla, nCodSesion); //NODO miTermino for (int nI = 0; nI < oTerminos.Length; nI++) { oNode = doc.CreateElement("miTermino"); oAttribute = doc.CreateAttribute("nCodSesion"); oAttribute.Value = nCodSesion.ToString(); oNode.Attributes.Append(oAttribute); oAttribute = doc.CreateAttribute("nCodTermino"); oAttribute.Value = oTerminos[nI].nCodTermino.ToString(); oNode.Attributes.Append(oAttribute); oAttribute = doc.CreateAttribute("sDescTermino"); oAttribute.Value = oTerminos[nI].sDescTermino; oNode.Attributes.Append(oAttribute); RootNode.AppendChild(oNode); //Por cada termino busco sus atributos (hechos) for (int nH = 0; nH < oTerminos[nI].Hecho.Length; nH++) { oNode = doc.CreateElement("miHecho"); oAttribute = doc.CreateAttribute("nCodSesion"); oAttribute.Value = nCodSesion.ToString(); oNode.Attributes.Append(oAttribute); oAttribute = doc.CreateAttribute("nCodTermino"); oAttribute.Value = oTerminos[nI].nCodTermino.ToString(); oNode.Attributes.Append(oAttribute); oAttribute = doc.CreateAttribute("nCodHecho"); oAttribute.Value = oTerminos[nI].Hecho[nH].nCodHecho.ToString(); oNode.Attributes.Append(oAttribute); oAttribute = doc.CreateAttribute("sDescHecho"); oAttribute.Value = oTerminos[nI].Hecho[nH].sDescHecho; oNode.Attributes.Append(oAttribute); oAttribute = doc.CreateAttribute("nCodTipoDato"); oAttribute.Value = oTerminos[nI].Hecho[nH].nCodTipoDato.ToString(); oNode.Attributes.Append(oAttribute); oAttribute = doc.CreateAttribute("nModificado"); oAttribute.Value = oTerminos[nI].Hecho[nH].nModificado.ToString(); oNode.Attributes.Append(oAttribute); if (oTerminos[nI].Hecho[nH].sValorInicial != null) { oAttribute = doc.CreateAttribute("sValorInicial"); oAttribute.Value = oTerminos[nI].Hecho[nH].sValorInicial; oNode.Attributes.Append(oAttribute); } RootNode.AppendChild(oNode); } } sXML = doc.InnerXml; return sXML; }