// temp for Mobile Vikings
 protected override void WriteAttributes(WbxmlWriter w)
 {
     foreach (var attr in tempRootElement.Attributes.Keys)
         w.WriteAttribute(attr, tempRootElement.Attributes[attr]);
 }
 public EComMessage(Tag type, WbxmlWriter.ElementFlags flags)
     : base(type, flags)
 {
 }
        public override void WriteToStream(Stream s)
        {
            // create the message body in a buffer
            MemoryStream ms = new MemoryStream();
            WbxmlWriter w = new WbxmlWriter(ms, AppConfig.TerminalEncoding);
            w.WriteHeader();
            w.WriteElement(tempRootElement);

            byte[] buf = ms.ToArray();
            int len = buf.Length;

            log.Debug("sending message: length: " + len + "\r\n" + HexHelper.ToHexDump(buf));

            // write message into the TCP/IP stream (length + body + MAC if needed)
            BinaryWriter bw = new BinaryWriter(s);
            bw.Write(BinaryHelper.SwapByteOrder(len));
            bw.Write(buf);
        }
示例#4
0
 public Message(Tag type, WbxmlWriter.ElementFlags flags)
 {
     this.type = type;
     this.flags = flags;
 }
示例#5
0
 protected void WriteChildElements(WbxmlWriter w)
 {
 }
示例#6
0
 protected abstract void WriteAttributes(WbxmlWriter w);
示例#7
0
        public virtual void WriteToStream(Stream s)
        {
            // create the message body in a buffer
            MemoryStream ms = new MemoryStream();
            WbxmlWriter w = new WbxmlWriter(ms, AppConfig.TerminalEncoding);
            w.WriteHeader();
            w.WriteElement(type, flags);
            if ((flags & WbxmlWriter.ElementFlags.HasAttributes) != 0)
            {
                WriteAttributes(w);
                w.WriteTerminator();
            }
            if ((flags & WbxmlWriter.ElementFlags.HasChildren) != 0)
            {
                WriteChildElements(w);
                w.WriteTerminator();
            }

            byte[] buf = ms.ToArray();
            int len = buf.Length;

            // calculate MAC if needed
            if (authType > 0)
            {
                //mac = CalculateMac(authType, serialNo, sapNo, imsi, imei, buf, terminalId);
            }
            log.Debug("sending message: length: " + len + "\r\n" +
                HexHelper.ToHexDump(buf) +
                ((authType > 0) ? "\r\n" + "MAC: " + HexHelper.ToHexString(mac) : ""));

            // write message into the TCP/IP stream (length + body + MAC if needed)
            BinaryWriter bw = new BinaryWriter(s);
            bw.Write(BinaryHelper.SwapByteOrder(len));
            bw.Write(buf);
            if (authType > 0)
            {
                bw.Write(mac);
            }
        }