コード例 #1
0
        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}

");
        }
コード例 #2
0
        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;
        }
コード例 #3
0
ファイル: CSharp.Tests.cs プロジェクト: longshaoye/CppSharp
    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));
    }
コード例 #4
0
        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;
        }