本文整理汇总了C#中XFiresecAPI.XDevice.GetGKIpAddress方法的典型用法代码示例。如果您正苦于以下问题:C# XDevice.GetGKIpAddress方法的具体用法?C# XDevice.GetGKIpAddress怎么用?C# XDevice.GetGKIpAddress使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类XFiresecAPI.XDevice
的用法示例。
在下文中一共展示了XDevice.GetGKIpAddress方法的6个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: ValidateIPAddress
static void ValidateIPAddress(XDevice device)
{
if (device.Driver.DriverType == XDriverType.GK)
{
var address = device.GetGKIpAddress();
if (!CheckIpAddress(address))
{
Errors.Add(new DeviceValidationError(device, "Не задан IP адрес", ValidationErrorLevel.CannotWrite));
}
}
}
示例2: JournalViewModel
public JournalViewModel(XDevice device)
{
Title = "Журнал событий ГК " + device.GetGKIpAddress();
ReadCommand = new RelayCommand(OnRead);
SaveToFileCommand = new RelayCommand(OnSaveToFile);
JournalItems = new ObservableCollection<JournalItemViewModel>();
Device = device;
XManager.UpdateConfiguration();
XManager.CreateStates();
DescriptorsManager.Create();
DescriptorsManager.CreateDynamicObjectsInXManager();
}
示例3: GetIpAddress
public static string GetIpAddress(XDevice device)
{
XDevice gkDevice = null;
switch (device.Driver.DriverType)
{
case XDriverType.GK:
gkDevice = device;
break;
case XDriverType.KAU:
gkDevice = device.Parent;
break;
default:
throw new Exception("Получить IP адрес можно только у ГК или в КАУ");
}
var ipAddress = gkDevice.GetGKIpAddress();
if (ipAddress == null)
{
throw new Exception("Не задан IP адрес");
}
return ipAddress;
}
示例4: GetIpAddress
public static string GetIpAddress(XDevice device)
{
XDevice gkDevice = null;
switch (device.DriverType)
{
case XDriverType.GK:
gkDevice = device;
break;
case XDriverType.KAU:
case XDriverType.RSR2_KAU:
gkDevice = device.Parent;
break;
default:
{
Logger.Error("XManager.GetIpAddress Получить IP адрес можно только у ГК или в КАУ");
throw new Exception("Получить IP адрес можно только у ГК или в КАУ");
}
}
var ipAddress = gkDevice.GetGKIpAddress();
return ipAddress;
}
示例5: IsValidIpAddress
public static bool IsValidIpAddress(XDevice device)
{
if (device.DriverType == XDriverType.GK)
{
const string pattern = @"^([01]\d\d?|[01]?[1-9]\d?|2[0-4]\d|25[0-3])\.([01]?\d\d?|2[0-4]\d|25[0-5])\.([01]?\d\d?|2[0-4]\d|25[0-5])\.([01]?\d\d?|2[0-4]\d|25[0-5])$";
var address = device.GetGKIpAddress();
if (string.IsNullOrEmpty(address) || !Regex.IsMatch(address, pattern))
{
return false;
}
}
return true;
}
示例6: ReadConfiguration
override public bool ReadConfiguration(XDevice gkDevice)
{
var progressCallback = GKProcessorManager.StartProgress("Чтение конфигурации " + gkDevice.PresentationName, "Проверка связи", 2, true, GKProgressClientType.Administrator);
var result = DeviceBytesHelper.Ping(gkDevice);
if (!result)
{
Error = "Устройство " + gkDevice.PresentationName + " недоступно";
return false;
}
IpAddress = gkDevice.GetGKIpAddress();
ControllerDevices = new Dictionary<ushort, XDevice>();
DeviceConfiguration = new XDeviceConfiguration();
var rootDriver = XManager.Drivers.FirstOrDefault(x => x.DriverType == XDriverType.System);
DeviceConfiguration.RootDevice = new XDevice
{
Driver = rootDriver,
DriverUID = rootDriver.UID
};
GKProcessorManager.DoProgress("Перевод ГК в технологический режим", progressCallback);
if (!DeviceBytesHelper.GoToTechnologicalRegime(gkDevice, progressCallback))
{
Error = "Не удалось перевести " + gkDevice.PresentationName + " в технологический режим\n" +
"Устройство не доступно, либо вашего " +
"IP адреса нет в списке разрешенного адреса ГК";
GKProcessorManager.StopProgress(progressCallback);
return false;
}
var gkFileReaderWriter = new GKFileReaderWriter();
var gkFileInfo = gkFileReaderWriter.ReadInfoBlock(gkDevice);
if (gkFileReaderWriter.Error != null)
{
Error = gkFileReaderWriter.Error;
GKProcessorManager.StopProgress(progressCallback);
return false;
}
progressCallback = GKProcessorManager.StartProgress("Чтение конфигурации " + gkDevice.PresentationName, "", gkFileInfo.DescriptorsCount, true, GKProgressClientType.Administrator);
ushort descriptorNo = 0;
#if SETCONFIGTOFILE
var allBytes = new List<List<byte>>();
#endif
while (true)
{
if (progressCallback.IsCanceled)
{
Error = "Операция отменена";
break;
}
descriptorNo++;
GKProcessorManager.DoProgress("Чтение базы данных объектов ГК " + descriptorNo, progressCallback);
const byte packNo = 1;
var data = new List<byte>(BitConverter.GetBytes(descriptorNo)) {packNo};
var sendResult = SendManager.Send(gkDevice, 3, 19, ushort.MaxValue, data);
var bytes = sendResult.Bytes;
#if SETCONFIGTOFILE
allBytes.Add(bytes);
#endif
if (sendResult.HasError || bytes.Count < 5)
{
Error = "Возникла ошибка при чтении объекта " + descriptorNo;
break;
}
if (bytes[3] == 0xff && bytes[4] == 0xff)
break;
if (!Parse(bytes.Skip(3).ToList(), descriptorNo))
break;
}
#if SETCONFIGTOFILE
/* Опция включения записи конфигурации в файл */
BytesHelper.BytesToFile("GKConfiguration.txt", allBytes);
#endif
GKProcessorManager.DoProgress("Перевод ГК в рабочий режим", progressCallback);
if (!DeviceBytesHelper.GoToWorkingRegime(gkDevice, progressCallback))
{
Error = "Не удалось перевести устройство в рабочий режим в заданное время";
}
GKProcessorManager.StopProgress(progressCallback);
if(Error != null)
return false;
DeviceConfiguration.Update();
return true;
}