Esempio n. 1
0
        private static void ReadEventLog(string portName, SmlComServiceClient proxy, Guid clientGuid)
        {
            Console.WriteLine("Reading event log.");
            var logList = proxy.ReadEventLog(clientGuid, portList.FirstOrDefault(m => m.ComPortName == portName));
            foreach (var li in logList)
            {
                Console.WriteLine("Event log read: {0}", Stringify(li));
            }

            Console.WriteLine();
        }
Esempio n. 2
0
 private static void EnableOperationModeEdl40(string portName, SmlComServiceClient proxy, Guid clientGuid, DateTime newTime)
 {
     Console.WriteLine("Enabling EDL40 mode with new meter time: " + newTime);
     proxy.EnableOperationModeEdl40(clientGuid, portList.FirstOrDefault(m => m.ComPortName == portName), newTime);
     var booleanResult = proxy.ReadIsOperationModeEdl40(clientGuid, portList.FirstOrDefault(m => m.ComPortName == portName));
     Console.WriteLine("Operation mode read: " + Stringify(booleanResult));
     var meterTimeResult = proxy.ReadDateAndTime(
        clientGuid, portList.FirstOrDefault(m => m.ComPortName == portName));
     Console.WriteLine("Meter time read: " + Stringify(meterTimeResult));
     Console.WriteLine();
 }
Esempio n. 3
0
        public async Task<bool> ProcessDevice(SmlComServiceClient svc, Guid guid, CommunicationPort port, CancellationToken token)
        {
            // cancellation setup
            this.cts?.Cancel();
            var timeoutCts = new CancellationTokenSource(TimeSpan.FromMinutes(5));
            this.cts = CancellationTokenSource.CreateLinkedTokenSource(timeoutCts.Token, token);
            token = cts.Token;

            var sw = Stopwatch.StartNew();
            try
            {
                if (!this.IsOccupiedByDevice)
                {
                    Log.Warning($"Station {this.Number} is not assigned by a device (MAC address missing)");
                    // only use active stations where a device is assigned (by scanning or user action)
                    return false;
                }

                var dr = new DeviceRepository();
                
                this.Device = dr.GetOne(this.Device.ServerId);

                this.SetStatusMessageAndProgress("Processing started...", 5);
                this.Status = StationStatus.Processing;
                
                var rnd = new Random();

                var policy = Policy
                        .Handle<Exception>()
                        .WaitAndRetryAsync(new[] { TimeSpan.FromSeconds(1), TimeSpan.FromSeconds(1), TimeSpan.FromSeconds(2) });

                var portlist = await svc.GetPortListAsync();
                if (!portlist.FirstOrDefault(p => p.ComPortName == this.ComAddress).IsInitialized)
                {
                    throw new InvalidOperationException("Service Comport is not initialized!");
                }

                foreach (var param in this.Device.ParameterList)
                {
                    await Task.Delay(100, token);
                    if (!param.IsActive)
                    {
                        continue;
                    }

                    // execute communication with retry policy...
                    await policy.ExecuteAsync(async () =>
                    {
                        this.SetStatusMessageAndProgress($"Writing at {port.ComPortName} parameter {param.TagId} with value {param.TargetValue}...", this.Progress);
                        switch (param.TagId)
                        {
                            case ParameterTagId.ServerId:
                                var serverId = param.TargetValue.FromHexString();
                                await svc.WriteServerIdAsync(guid, port, serverId);

                                var serverIdParam = await svc.ReadServerIdAsync(guid, port);
                                param.RealValue = serverIdParam.Data.AsHexString("-");
                                break;
                            case ParameterTagId.ManufacturerSerialNumber:
                                await svc.WriteManufacturerSerialNumberAsync(guid, port, param.TargetValue);

                                var serialNoParam = await svc.ReadManufacturerSerialNoAsync(guid, port);
                                var serialNoBytes = serialNoParam.Data;
                                param.RealValue = Encoding.UTF8.GetString(serialNoBytes);
                                break;
                            case ParameterTagId.GenerateKeys:
                                await svc.WriteCreateKeysAsync(guid, port);

                                param.RealValue = "True";
                                param.IsWritten = true;
                                break;
                            case ParameterTagId.PublicKey:
                                param.RealValue = (await svc.ReadPublicKeyAsync(guid, port)).Data.AsHexString("-");
                                break;
                            case ParameterTagId.PinCodeActive:
                                var isPinActive = bool.Parse(param.TargetValue);
                                await svc.WriteIsPinProtectionActiveAsync(guid, port, isPinActive);

                                param.RealValue = (await svc.ReadIsPinProtectionActiveAsync(guid, port)).Data.ToString();
                                break;
                            case ParameterTagId.InitialKeyM:
                                await svc.WriteInitialSymKeyAsync(guid, port, param.TargetValue.FromHexString());
                                param.RealValue = (await svc.ReadInitialSymKeyAsync(guid, port)).Data.AsHexString("-");
                                break;
                            case ParameterTagId.PinCode:
                                await svc.WritePinAsync(guid, port, param.TargetValue);

                                param.RealValue = param.TargetValue;
                                param.IsWritten = true;
                                break;
                            case ParameterTagId.MeasurementMode:
                                await svc.WriteMeasurementModeAsync(guid, port, param.TargetValue);

                                param.RealValue = $"MM{(await svc.ReadMeasurementModeAsync(guid, port)).Data}";
                                break;
                            case ParameterTagId.GridOption:
                                var isGridOption = bool.Parse(param.TargetValue);
                                await svc.WriteEnableGridOptionAsync(guid, port, isGridOption);

                                param.RealValue = (await svc.ReadEnableGridOptionAsync(guid, port)).Data.ToString();
                                break;
                            case ParameterTagId.TarifOptionActive:
                                var isTariffActive = bool.Parse(param.TargetValue);
                                await svc.WriteEnableTariffFunctionAsync(guid, port, isTariffActive);

                                param.RealValue = (await svc.ReadEnableTariffFunctionAsync(guid, port)).Data.ToString();
                                break;
                            case ParameterTagId.InverseTariffControl:
                                var isInverse = bool.Parse(param.TargetValue);
                                await svc.WriteIsTerminalControlReverseAsync(guid, port, isInverse);

                                param.RealValue = (await svc.ReadIsTerminalControlReverseAsync(guid, port)).Data.ToString();
                                break;
                            case ParameterTagId.BaudRateConfigurable:
                                var isBaudrateConfigurable = bool.Parse(param.TargetValue);
                                await svc.WriteEnableBaudRateSettingAsync(guid, port, isBaudrateConfigurable);

                                param.RealValue = (await svc.ReadEnableBaudRateSettingAsync(guid, port)).Data.ToString();
                                break;
                            case ParameterTagId.BaudRate:
                                break;
                            case ParameterTagId.Type:
                                param.RealValue = param.TargetValue;
                                param.IsWritten = true;
                                break;
                            case ParameterTagId.Eigentumsnummer:
                                param.RealValue = param.TargetValue;
                                param.IsWritten = true;
                                break;
                            default:
                                throw new InvalidEnumArgumentException();
                        }
                        this.SetStatusMessageAndProgress($"{port.ComPortName} parameter {param.TagId} with value {param.TargetValue} write OK...", this.Progress += 5);
                    });
                }

                this.Device.SetAllParametersWritten(true);

                sw.Stop();
                Log.Warning("Device completed in {@sw}!", sw.Elapsed);

                // update database
                this.Device.ProducedAt = DateTime.Now;
                // dr.Update(device);

                this.LastProducedDeviceServerId = this.Device.ServerId;
                this.SetStatusMessageAndProgress("Processed", 100);
                this.Status = StationStatus.ProcessingCompleted;
                await Task.Delay(TimeSpan.FromSeconds(1), token);

                return true;
            }
            catch (OperationCanceledException)
            {
                Log.Warning("Station {s} cancelled", this.Number);
                this.SetStatusMessageAndProgress($"Cancelled", 0);
            }
            catch (Exception ex)
            {
                Log.Error(ex, "Station {s} failed", this.Number);
                this.SetStatusMessageAndProgress($"Error: {ex.Message}", 0);
                this.Status = StationStatus.Error;
            }

            return false;
        }
Esempio n. 4
0
        private static void WriteServerId(string portName, SmlComServiceClient proxy, Guid clientGuid)
        {
            byte serverId_Id = 0x0A;
            byte serverId_Type = 0x01;
            var serverId_Man = Encoding.ASCII.GetBytes("DZG");
            byte serverId_Block = 0x01;
            var serverId_No = Enumerable.Range(1, 4).Select(n => (byte)n).ToArray();
            var serverId = new byte[1 + 1 + 3 + 1 + 4];
            serverId[0] = serverId_Id;
            serverId[1] = serverId_Type;
            serverId_Man.CopyTo(serverId, 2);
            serverId[5] = serverId_Block;
            serverId_No.CopyTo(serverId, 6);

            Console.WriteLine("Setting ServerId to: " + BitConverter.ToString(serverId));
            proxy.WriteServerId(clientGuid, portList.FirstOrDefault(m => m.ComPortName == portName), serverId);
            Console.WriteLine();
        }
Esempio n. 5
0
 private static void WriteEnableGridOption(string portName, SmlComServiceClient proxy, Guid clientGuid, bool isOn)
 {
     Console.WriteLine("Setting Grid Optionto: " + isOn);
     proxy.WriteEnableGridOption(clientGuid, portList.FirstOrDefault(m => m.ComPortName == portName), isOn);
     var result = proxy.ReadEnableGridOption(clientGuid, portList.FirstOrDefault(m => m.ComPortName == portName));
     Console.WriteLine("Grid Option read: " + result.Data);
     Console.WriteLine();
 }
Esempio n. 6
0
 /// <summary>
 /// Sets the operation mode.
 /// </summary>
 /// <param name="portlist">The portlist.</param>
 /// <param name="proxy">The proxy.</param>
 /// <param name="clientGuid">The client GUID.</param>
 /// <param name="operationMode">if set to <c>true</c> [operation mode].</param>
 private static void WriteOperationMode(string portName, SmlComServiceClient proxy, Guid clientGuid, bool operationMode)
 {
     Console.WriteLine("Setting operation mode to: " + operationMode);
     proxy.WriteIsOperationModeEdl40(clientGuid, portList.FirstOrDefault(m => m.ComPortName == portName), operationMode);
     var booleanResult = proxy.ReadIsOperationModeEdl40(clientGuid, portList.FirstOrDefault(m => m.ComPortName == portName));
     Console.WriteLine("Operation mode read: " + Stringify(booleanResult));
     Console.WriteLine();
 }
Esempio n. 7
0
 private static void WritePinCode(string portName, SmlComServiceClient proxy, Guid clientGuid, string pin)
 {
     Console.WriteLine("Setting PIN code to: " + pin);
     proxy.WritePin(clientGuid, portList.FirstOrDefault(m => m.ComPortName == portName), pin);
     Console.WriteLine();
 }
Esempio n. 8
0
 private static void ReadDeviceIdentification(string portName, SmlComServiceClient proxy, Guid clientGuid)
 {
     Console.WriteLine("Reading device identification");
     var di = proxy.ReadDeviceIdentification(clientGuid, portList.FirstOrDefault(m => m.ComPortName == portName));
     Console.WriteLine("Device identification: {0}", Stringify(di));
     Console.WriteLine();
 }
Esempio n. 9
0
 private static void ReadPublicKey(string portName, SmlComServiceClient proxy, Guid clientGuid)
 {
     Console.WriteLine("Reading public key");
     var di = proxy.ReadPublicKey(clientGuid, portList.FirstOrDefault(m => m.ComPortName == portName));
     Console.WriteLine("Public key: {0}", Stringify(di));
     Console.WriteLine();
 }
Esempio n. 10
0
 private static void ReadHistoricEnergyLastWeek(string portName, SmlComServiceClient proxy, Guid clientGuid)
 {
     Console.WriteLine("{0} Reading register of last 7d.", DateTime.Now);
     var mv = proxy.ReadHistoricEnergyLastWeek(clientGuid, portList.FirstOrDefault(m => m.ComPortName == portName));
     Console.WriteLine("\t{0} Register value: {1}\n.", DateTime.Now, Stringify(mv));
     Console.WriteLine();
 }
Esempio n. 11
0
 private static void ClearHistoricValues(string portName, SmlComServiceClient proxy, Guid clientGuid)
 {
     Console.WriteLine("Erasing historic values.");
     proxy.WriteEraseHistoricEnergy(clientGuid, portList.FirstOrDefault(m => m.ComPortName == portName));
     Console.WriteLine();
 }
Esempio n. 12
0
 private static double? ReadRegister(string portName, SmlComServiceClient proxy, Guid clientGuid, long registerObis)
 {
     Console.WriteLine("{0} Reading register {1}.", portName, GetHexString(registerObis));
     var mv = proxy.ReadEnergyRegister(clientGuid, portList.FirstOrDefault(m => m.ComPortName == portName), registerObis);
     Console.WriteLine("{0} Register value: {1}", portName, Stringify(mv));
     if (mv.ValueSignature != null)
     {
         Console.WriteLine("Signature: " + BitConverter.ToString(mv.ValueSignature));
     }
     return mv.DataValue;
 }
Esempio n. 13
0
 private static void ReadStatusWord(string portName, SmlComServiceClient proxy, Guid clientGuid)
 {
     Console.WriteLine("Reading statusword.");
     var statusWord = proxy.ReadEdlStatusWord(clientGuid, portList.FirstOrDefault(m => m.ComPortName == portName));
     Console.WriteLine("Statusword read: [{0}], {1}", Convert.ToString((long)statusWord, 2), statusWord);
 }
Esempio n. 14
0
        private static void ReadRegisters(string portName, SmlComServiceClient proxy, Guid clientGuid)
        {
            ReadRegister(portName, proxy, clientGuid, 0x0100010800FFL);
            /*ReadRegister(portName, proxy, clientGuid, 0x0100010801FFL);
            ReadRegister(portName, proxy, clientGuid, 0x0100010802FFL);
            ReadRegister(portName, proxy, clientGuid, 0x0100010803FFL);
            ReadRegister(portName, proxy, clientGuid, 0x0100010804FFL);
            ReadRegister(portName, proxy, clientGuid, 0x0100010805FFL);
            ReadRegister(portName, proxy, clientGuid, 0x0100010806FFL);
            ReadRegister(portName, proxy, clientGuid, 0x0100010807FFL);
            ReadRegister(portName, proxy, clientGuid, 0x0100010808FFL);*/

            /*ReadRegister(portName, proxy, clientGuid, 0x0100020800FFL);
            ReadRegister(portName, proxy, clientGuid, 0x0100020801FFL);
            ReadRegister(portName, proxy, clientGuid, 0x0100020802FFL);
            ReadRegister(portName, proxy, clientGuid, 0x0100020803FFL);
            ReadRegister(portName, proxy, clientGuid, 0x0100020804FFL);
            ReadRegister(portName, proxy, clientGuid, 0x0100020805FFL);
            ReadRegister(portName, proxy, clientGuid, 0x0100020806FFL);
            ReadRegister(portName, proxy, clientGuid, 0x0100020807FFL);
            ReadRegister(portName, proxy, clientGuid, 0x0100020808FFL);*/
        }
Esempio n. 15
0
        static void Main(string[] args)
        {
            Thread.Sleep(2000);
            var portSettings = ConfigurationManager.AppSettings["COMports"].Split(
                new[] { ",", ", " },
                StringSplitOptions.RemoveEmptyEntries);
            Console.WriteLine("Creating service proxy.");
            var proxy = new SmlComServiceClient(new BasicHttpBinding(), new EndpointAddress("http://localhost:7081/SmlComService"));
            
            var serviceVersion = proxy.GetVersion();
            Console.WriteLine("Service Version: '{0}'.", serviceVersion);

            Console.WriteLine("Resetting all ports.");
            proxy.ResetAllPorts();
            foreach (var portName in portSettings)
            {
                portList.Add(
                   new CommunicationPort
                   {
                       ComPortName = portName,
                       ComTimeOut = TimeSpan.FromSeconds(3),
                       MeterType = MeterType.Basemeter
                   });
            }

            var configuredAt = DateTime.Now;
            Console.WriteLine("{0} - Calling configuration command.", configuredAt);
            var clientGuid = Guid.Empty;

            clientGuid = ConfigurePortsOrExit(proxy, configuredAt, clientGuid);

            Console.ReadLine();

            var serverPorts = proxy.GetPortList();
            foreach (var communicationPort in serverPorts)
            {
                Console.WriteLine("Server port: {0}, init {1}", communicationPort.ComPortName, communicationPort.IsInitialized);
            }

            Console.ReadLine();

            string port = "COM101";
            while (true)
            {
                // read register test
                //ReadRegister(port, proxy, clientGuid, RegisterIds.ActiveEnergyPlus.AsLong());
                ReadRegister(port, proxy, clientGuid, RegisterIds.ActiveEnergyMinus.AsLong());

                WriteManufacturerId(port, proxy, clientGuid, "IVU");
                //WriteMeasurementMode(port, proxy, clientGuid, "MM2");
                //ReadHistoricEnergyLastDay(port, proxy, clientGuid);
                //ReadHistoricEnergyLastWeek(port, proxy, clientGuid);

                //WriteEnableTariffFunction(port, proxy, clientGuid, true);
                //WriteAplusTariff(port, proxy,clientGuid, 2);

                //WritePinCode(port, proxy, clientGuid, "1221");

                //ReadPublicKey(port, proxy, clientGuid);

                //WriteServerId(port, proxy, clientGuid);

                //WriteManufacturerId(port, proxy, clientGuid, "DZG");

                //WriteFactoryMode(port, proxy, clientGuid, false);

                //WriteEnableGridOption(port, proxy, clientGuid, true);

                Thread.Sleep(3000);
            }



            Console.WriteLine();
            Console.WriteLine("Command execution finished.");

            Console.ReadLine();

        }
Esempio n. 16
0
 private static void WriteAminusTariff(string portName, SmlComServiceClient proxy, Guid clientGuid, byte tariffNo)
 {
     Console.WriteLine("Setting -A tariff to no: " + tariffNo);
     proxy.WriteCurrentAminusTariff(clientGuid, portList.FirstOrDefault(m => m.ComPortName == portName), tariffNo);
     Console.WriteLine("Tariff was set.");
     Console.WriteLine();
 }
Esempio n. 17
0
        /// <summary>
        /// Reads the billing data.
        /// </summary>
        /// <param name="portlist">The portlist.</param>
        /// <param name="proxy">The proxy.</param>
        /// <param name="clientGuid">The client GUID.</param>
        private static void ReadBillingData(string portName, SmlComServiceClient proxy, Guid clientGuid)
        {
            Console.WriteLine("Reading billing data.");
            var result = proxy.ReadLastPushedBillingData(clientGuid, portList.FirstOrDefault(m => m.ComPortName == portName));
            //Console.WriteLine("BillingData: " + Stringify(result));
            if (result != null)
            {
                if (result.ActiveEnergyPlusTotalSigned != null)
                {
                    Console.WriteLine(
                       "Signed +A billingData available for port {0}, Verification {1}.",
                       portName,
                       (SignatureVerificationResult)result.ActiveEnergyPlusTotalSigned.SignatureVerificationStatus);
                }
                else if (result.ActiveEnergyMinusTotalSigned != null)
                {
                    Console.WriteLine(
                       "Signed -A billingData available for port {0}, Verification {1}.",
                       portName,
                       (SignatureVerificationResult)result.ActiveEnergyPlusTotalSigned.SignatureVerificationStatus);
                }
                else if (result.ActiveEnergyPlusTotal != null)
                {
                    Console.WriteLine("Unsigned +A BillingData available for port {0}, ServerId {1}, Second index {2}.", portName, BitConverter.ToString(result.ServerId), result.OperationSecondCounter);
                }
                else if (result.ActiveEnergyMinusTotal != null)
                {
                    Console.WriteLine("Unsigned -A BillingData available for port {0}.", portName);
                }
            }
            else
            {
                Console.WriteLine("BillingData failed for port {0}.", portName);
            }

            Console.WriteLine();
        }
Esempio n. 18
0
 private static void WriteSwitchingProgramNumber(string portName, SmlComServiceClient proxy, Guid clientGuid, string programNumberText)
 {
     Console.WriteLine("Setting switching program no to: " + programNumberText);
     proxy.WriteTariffSwitchingProgramNumber(clientGuid, portList.FirstOrDefault(m => m.ComPortName == portName), programNumberText);
     Console.WriteLine("Switching program was set.");
     Console.WriteLine();
 }
Esempio n. 19
0
 private static void WriteMeasurementMode(string portName, SmlComServiceClient proxy, Guid clientGuid, string measurementMode)
 {
     Console.WriteLine("Setting measurement mode to: " + measurementMode);
     proxy.WriteMeasurementMode(clientGuid, portList.FirstOrDefault(m=> m.ComPortName == portName), measurementMode);
     var result = proxy.ReadMeasurementMode(clientGuid, portList.FirstOrDefault(m => m.ComPortName == portName));
     Console.WriteLine("Measurement mode read: MM" + result.Data.Value);
     Console.WriteLine();
 }
Esempio n. 20
0
 private static void WriteSetPinActive(string portName, SmlComServiceClient proxy, Guid clientGuid, bool isActive)
 {
     Console.WriteLine("Setting PIN active to: " + isActive);
     proxy.WriteIsPinProtectionActive(clientGuid, portList.FirstOrDefault(m => m.ComPortName == portName), isActive);
     Console.WriteLine("PIN activation state was set.");
     Console.WriteLine();
 }
Esempio n. 21
0
 private static void WriteFactoryMode(string portName, SmlComServiceClient proxy, Guid clientGuid, bool isOn)
 {
     Console.WriteLine("Setting Factory mode to: " + isOn);
     proxy.WriteEnableFactoryModeK2Enabled(clientGuid, portList.FirstOrDefault(m => m.ComPortName == portName), isOn);
     Console.WriteLine();
 }
Esempio n. 22
0
 /// <summary>
 /// Reads the date time.
 /// </summary>
 /// <param name="portlist">The portlist.</param>
 /// <param name="proxy">The proxy.</param>
 /// <param name="clientGuid">The client GUID.</param>
 private static async Task ReadDateTime(string portName, SmlComServiceClient proxy, Guid clientGuid)
 {
     Console.WriteLine();
     Console.WriteLine("{0} - Reading current meter time", portName);
     var dt = proxy.ReadDateAndTimeParam(clientGuid, portList.FirstOrDefault(m => m.ComPortName == portName));
     Console.WriteLine("{0} - Meter time (localtime): {1}, read at: {2}.", portName, dt.Data.Value.ToLocalTime(), dt.ReadAt.Value.ToLocalTime());
     Console.WriteLine();
 }
Esempio n. 23
0
 private static void WriteManufacturerId(string portName, SmlComServiceClient proxy, Guid clientGuid, string manId)
 {
     Console.WriteLine("Setting manufactuer idto: " + manId);
     proxy.WriteManufacturerId(clientGuid, portList.FirstOrDefault(m => m.ComPortName == portName), manId);
     var result = proxy.ReadManufacturerId(clientGuid, portList.FirstOrDefault(m => m.ComPortName == portName));
     Console.WriteLine("Manufacturer id read: " + Encoding.ASCII.GetString(result.Data));
     Console.WriteLine();
 }
Esempio n. 24
0
 /// <summary>
 /// Writes the date time.
 /// </summary>
 /// <param name="portlist">The portlist.</param>
 /// <param name="proxy">The proxy.</param>
 /// <param name="clientGuid">The client GUID.</param>
 /// <param name="meterTime">The meter time.</param>
 private static void WriteDateTime(string portName, SmlComServiceClient proxy, Guid clientGuid, DateTime meterTime)
 {
     Console.WriteLine("Writing meter time to: {0}.", meterTime);
     proxy.WriteDateAndTime(clientGuid, portList.FirstOrDefault(m => m.ComPortName == portName), meterTime);
     Console.WriteLine("Meter time was set.");
     Console.WriteLine();
 }
Esempio n. 25
0
 private static void WriteCustomerPush(string portName, SmlComServiceClient proxy, Guid clientGuid, bool customerPush)
 {
     Console.WriteLine("Setting customer push mode to: " + customerPush);
     proxy.WriteCustomerPush(clientGuid, portList.FirstOrDefault(m => m.ComPortName == portName), customerPush);
     var booleanResult = proxy.ReadCustomerPush(clientGuid, portList.FirstOrDefault(m => m.ComPortName == portName));
     Console.WriteLine("Customer push mode read: " + Stringify(booleanResult));
     Console.WriteLine();
 }
Esempio n. 26
0
 private static void WriteDateTime(string portName, SmlComServiceClient proxy, Guid clientGuid, int offset)
 {
     Console.WriteLine("Writing meter time with offset: {0}.", offset);
     proxy.WriteDateAndTimeWithHostOffset(clientGuid, portList.FirstOrDefault(m => m.ComPortName == portName), offset);
     Console.WriteLine("Meter time was set.");
     Console.WriteLine();
 }
Esempio n. 27
0
 private static async Task EnableOperationModeEdl40(string portName, SmlComServiceClient proxy, Guid clientGuid, int hostOffset)
 {
     Console.WriteLine();
     Console.WriteLine("{0} - Enabling EDL40 mode with host offset: {1}.", portName, hostOffset);
     proxy.EnableOperationModeEdl40WithHostOffset(clientGuid, portList.FirstOrDefault(m => m.ComPortName == portName), hostOffset);
     var booleanResult = proxy.ReadIsOperationModeEdl40(clientGuid, portList.FirstOrDefault(m => m.ComPortName == portName));
     //Console.WriteLine("Operation mode read: " + Stringify(booleanResult));
     var meterTimeResult = proxy.ReadDateAndTime(
        clientGuid, portList.FirstOrDefault(m => m.ComPortName == portName));
     Console.WriteLine("{0} - Meter time read: {1}", portName, Stringify(meterTimeResult));
     Console.WriteLine();
 }
Esempio n. 28
0
 public static void WriteParams(string portName, SmlComServiceClient proxy, Guid clientGuid)
 {
     Console.WriteLine("Writing parameters...");
     //proxy.WriteClearBilling(clientGuid, portList.FirstOrDefault(m => m.ComPortName == portName));
     //proxy.WriteClearEvent(clientGuid, portList.FirstOrDefault(m => m.ComPortName == portName));
     //proxy.WriteMeasurementMode(clientGuid, portList.FirstOrDefault(m => m.ComPortName == portName), "MM2");
     proxy.WriteIsPinProtectionActive(clientGuid, portList.FirstOrDefault(m => m.ComPortName == portName), false);
     proxy.WriteIsManipulationDetectionActive(clientGuid, portList.FirstOrDefault(m => m.ComPortName == portName), true);
     proxy.WriteDisplaySpecialText(clientGuid, portList.FirstOrDefault(m => m.ComPortName == portName), "abc");
 }
 static SmlComManager()
 {
     var cfg = AppConfigRepository.Get();
     Proxy = new SmlComServiceClient();
     Proxy.Endpoint.Address = new EndpointAddress(cfg.SmlServiceEndpoint);
 }
Esempio n. 30
0
 private static Guid ConfigurePortsOrExit(SmlComServiceClient proxy, DateTime configuredAt, Guid clientGuid)
 {
     try
     {
         string configureResult = proxy.ConfigurePorts(portList.ToArray(), null);
         Console.WriteLine("Configure Result: {0}", configureResult);
         if (configureResult.StartsWith("ERROR"))
         {
             Console.WriteLine(
                 "Seconds elapsed: {0}. A handled configuration error has occured: {1}.",
                 (DateTime.Now - configuredAt).Duration().TotalSeconds,
                 configureResult);
         }
         else
         {
             clientGuid = Guid.Parse(configureResult);
             Console.WriteLine(
                 "Seconds elapsed: {0}. Client GUID obtained from service: {1}.",
                 (DateTime.Now - configuredAt).Duration().TotalSeconds,
                 clientGuid);
         }
     }
     catch (Exception ex)
     {
         Console.WriteLine("A unhandled configuration error has occured. {0} - {1}.", ex.Message, ex.StackTrace);
         Console.ReadLine();
         Application.Exit();
     }
     return clientGuid;
 }