예제 #1
0
        public void SerializeConfiguration()
        {
            var info    = new BridgeInfo();
            var version = new BridgeSpecVersion();
            var device  = new BridgeDevice();
            var icon1   = new BridgeIcon();
            var icon2   = new BridgeIcon();

            icon1.Depth    = 23;
            icon1.Height   = 64;
            icon1.Width    = 32;
            icon1.Url      = "urlicon1";
            icon1.MimeType = "mimetype1";

            icon2.Depth    = 10;
            icon2.Height   = 99;
            icon2.Width    = 44;
            icon2.Url      = "urlicon2";
            icon2.MimeType = "mimetype2";

            version.Major = 7;
            version.Minor = 1;

            device.DeviceType   = "someType";
            device.FriendlyName = "someFriendlyName";
            device.IconList     = new List <BridgeIcon>();
            device.IconList.Add(icon1);
            device.IconList.Add(icon2);
            device.Manufacturer       = "someManufacturer";
            device.ManufacturerUrl    = "someManufacturerUrl";
            device.ModelDescription   = "someModelDescription";
            device.ModelName          = "someModelName";
            device.ModelNumber        = "someModelNunber";
            device.ModelUrl           = "someModelUrl";
            device.PresentationUrl    = "somePresentationUrl";
            device.SerialNumber       = "someSerialNumber";
            device.UniqueDeviceNumber = "someUniqueDeviceNumber";

            info.Device      = device;
            info.SpecVersion = version;
            info.UrlBase     = "someUrlBase";

            var serializer = new DataContractSerializer(typeof(BridgeInfo));

            var stream = new MemoryStream();

            serializer.WriteObject(stream, info);
            stream.Flush();
            var xmlString = Encoding.UTF8.GetString(stream.ToArray());

            Assert.IsTrue(stream.Length > 0);
        }
예제 #2
0
 private static unsafe Device CreateDevice(BridgeDevice bridgeDevice)
 {
     return(new Device
     {
         // NB: The Ansi string marshaling variant is needed here to match the iOS character size.
         // Despite the name, Unicode <i>is</i> supported and properly marshals from the bridge.
         uid = Marshal.PtrToStringAnsi((IntPtr)bridgeDevice.uid) ?? string.Empty,
         name = Marshal.PtrToStringAnsi((IntPtr)bridgeDevice.name) ?? string.Empty,
         firmwareVersion = Marshal.PtrToStringAnsi((IntPtr)bridgeDevice.firmwareVersion) ?? string.Empty,
         rssi = bridgeDevice.rssi,
         availableSensors = bridgeDevice.availableSensors,
         availableGestures = bridgeDevice.availableGestures,
         productId = (ProductId)bridgeDevice.productId,
         variantId = (byte)bridgeDevice.variantId,
         transmissionPeriod = bridgeDevice.transmissionPeriod,
         maximumPayloadPerTransmissionPeriod = bridgeDevice.maximumPayloadPerTransmission,
         maximumActiveSensors = bridgeDevice.maximumActiveSensors
     });
 }
예제 #3
0
 /// <summary>
 /// Method to determine if device is a bridge meter. Used to determine whether or not to
 /// instantiate this class.
 /// </summary>
 /// <param name="PSEM">Protocol obj used to identify the meter</param>
 ///<param name="securityError">An indication of whether a security error occurred while
 /// verifying a bridge meter.</param>
 /// <returns>Whether or not device is a bridge meter.</returns>
 // Revision History
 // MM/DD/YY who Version Issue# Description
 // -------- --- ------- ------ ---------------------------------------
 // 12/04/13 jrf 3.50.10        Created
 // 10/31/14 jrf 4.00.82  WR542694 Handling new method signature for IsBridgeMeter.
 public static bool IsBridgeMeter(CPSEM PSEM, out bool securityError)
 {
     return(BridgeDevice.IsBridgeMeter(PSEM, out securityError));
 }
예제 #4
0
 /// <summary>
 /// Constructor
 /// </summary>
 /// <param name="PSEM">Protocol obj used to identify the meter</param>
 // Revision History
 // MM/DD/YY who Version Issue# Description
 // -------- --- ------- ------ ---------------------------------------
 //  11/27/13 jrf 3.50.10        Created
 //
 public COpenWayAdvPolyITRFBridge(CPSEM PSEM)
     : base(PSEM)
 {
     m_BridgeDevice = BridgeDevice.CreateBridgeDevice(m_PSEM, this);
 }
예제 #5
0
 /// <summary>
 /// Constructor
 /// </summary>
 /// <param name="ceComm"></param>
 //  Revision History
 //  MM/DD/YY Who Version Issue# Description
 //  -------- --- ------- ------ -------------------------------------------
 //  11/27/13 jrf 3.50.10        Created
 //
 public COpenWayAdvPolyITRFBridge(Itron.Metering.Communications.ICommunications ceComm)
     : base(ceComm)
 {
     m_BridgeDevice = BridgeDevice.CreateBridgeDevice(m_PSEM, this);
 }