110 lines
4.5 KiB
C#
110 lines
4.5 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using System.Security;
|
|
using Lers.Core;
|
|
using Lers.Data;
|
|
|
|
namespace LersSample
|
|
{
|
|
class Program
|
|
{
|
|
static void Main(string[] args)
|
|
{
|
|
// Создаем экземпляр объекта LersServer, через который осуществляется работа с сервером ЛЭРС УЧЕТ.
|
|
|
|
Lers.LersServer server = new Lers.LersServer();
|
|
|
|
// Создаем данные для авторизации в системе (логин и пароль).
|
|
|
|
string login = "Admin";
|
|
SecureString password = Lers.Networking.SecureStringHelper.ConvertToSecureString("admin");
|
|
|
|
Lers.Networking.BasicAuthenticationInfo authInfo = new Lers.Networking.BasicAuthenticationInfo(login, password);
|
|
|
|
// Выполняем подключение к серверу, указывая имя компьютера и TCP-порт, а так же данные для авторизации.
|
|
|
|
try
|
|
{
|
|
server.Connect("localhost", 10000, authInfo);
|
|
}
|
|
catch (Exception exc)
|
|
{
|
|
Console.WriteLine("Ошибка подключения к серверу.\r\n" + exc.Message);
|
|
Console.Read();
|
|
return;
|
|
}
|
|
|
|
Console.WriteLine("Версия сервера: " + server.Version.ToString());
|
|
|
|
// Получаем точку учета по уникальному номеру, который задается в свойствах точки учета.
|
|
|
|
MeasurePoint measurePoint = server.MeasurePoints.GetByNumber(123);
|
|
|
|
// Убеждаемся, что мы получили указатель на объект MeasurePoint.
|
|
// Если точки учета с таким номером не существует или она недоступна для текущего пользовтеля, то метод GetByNumber() вернет null.
|
|
|
|
if (measurePoint != null)
|
|
{
|
|
// Выводим полное наименование точки учета.
|
|
|
|
Console.WriteLine("Точка учета \'{0}\'", measurePoint.FullTitle);
|
|
|
|
if (measurePoint.SystemType != SystemType.Gas)
|
|
{
|
|
Console.WriteLine("Точка учета должна иметь систему Газонабжение.");
|
|
Console.Read();
|
|
return;
|
|
}
|
|
|
|
// Сохраняем суточные данные о потреблении по точке учета.
|
|
// Чтобы сохранить данные по воде, используйте Lers.Data.WaterConsumptionRecord, по электроэнергии - Lers.Data.ElectricConsumptionRecord.
|
|
|
|
MeasurePointConsumptionRecordCollection data = new MeasurePointConsumptionRecordCollection(DeviceDataType.Day);
|
|
|
|
MeasurePointConsumptionRecordGas record = new MeasurePointConsumptionRecordGas(DateTime.Today.AddDays(-1)); // За вчерашние сутки
|
|
record.V = 100; // Объем газа
|
|
record.T = 20; // Температура газа
|
|
|
|
data.Add(record);
|
|
|
|
MeasurePointConsumptionRecordGas record2 = new Lers.Data.MeasurePointConsumptionRecordGas(DateTime.Today); // За сегодняшние сутки
|
|
record2.V = 80; // Объем газа
|
|
record2.T = 15; // Температура газа
|
|
|
|
data.Add(record2);
|
|
|
|
// Устанавливаем флаг для перезаписи существующих данных и сохраняем данные.
|
|
|
|
MeasurePointSetConsumptionOptions options = new MeasurePointSetConsumptionOptions();
|
|
options.OverwriteExistingRecords = true;
|
|
|
|
measurePoint.Data.SetConsumption(data, options);
|
|
|
|
// Запрашиваем данные о суточном потреблении газа за двое суток.
|
|
|
|
MeasurePointConsumptionRecordCollection consumption = measurePoint.Data.GetConsumption(DateTime.Today.AddDays(-1), DateTime.Today, Lers.Data.DeviceDataType.Day);
|
|
|
|
// Выводим данные на экран.
|
|
|
|
foreach (MeasurePointConsumptionRecordGas recordGas in consumption)
|
|
{
|
|
Console.WriteLine("{0}: V = {1}, T = {2}", recordGas.DateTime, recordGas.V, recordGas.T);
|
|
}
|
|
}
|
|
else
|
|
{
|
|
Console.WriteLine("Точка учета не существует или недоступна для данной учетной записи.");
|
|
}
|
|
|
|
Console.ReadLine();
|
|
|
|
// Отключаемся от сервера.
|
|
// Указываем таймаут 2 секунды на нормальное завершение сеанса, после выхода которого, соединение будет разорвано.
|
|
|
|
server.Disconnect(2000);
|
|
}
|
|
}
|
|
}
|