internal ushort ActivationWorkPlace(ChannelByClumpType ChByClumpType, SctuWorkPlaceActivationStatuses ActivationStatus) { SystemHost.Journal.AppendLog(ComplexParts.Sctu, LogMessageType.Note, "Sctu activation workplace"); switch (ActivationStatus) { //мы хотим активировать рабочее место. прежде чем активировать рабочее место - проверим, что оно ещё не активировано case (SctuWorkPlaceActivationStatuses.WORKPLACE_IN_USE): //если рабочее место свободно - активируем его, при этом реализация записи в регистр активации сама позоботится об установке статуса активации для 'другого' рабочеего места if (ReadRegister(REG_WORKPLACE_ACTIVATION_STATUS) == (ushort)SctuWorkPlaceActivationStatuses.WORKPLACE_IS_FREE) { //пишем статус активации WriteRegister(REG_WORKPLACE_ACTIVATION_STATUS, (ushort)ActivationStatus); //пишем какой аналоговый канал нам надо использовать if (ChByClumpType != ChannelByClumpType.NullValue) { WriteRegister(REG_CHANNELBYCLAMPTYPE, (ushort)ChByClumpType); } } break; //мы хотим заблокировать рабочее место - блокировкой рабочего места управляет WriteRegister - поэтому ничего не делаем case (SctuWorkPlaceActivationStatuses.WORKPLACE_IS_BLOCKED): break; //мы хотим освободить рабочее место case (SctuWorkPlaceActivationStatuses.WORKPLACE_IS_FREE): //если рабочее место занято - освобождаем его, при этом реализация записи в регистр активации сама позоботится об установке статуса активации для 'другого' рабочеего места if (ReadRegister(REG_WORKPLACE_ACTIVATION_STATUS) == (ushort)SctuWorkPlaceActivationStatuses.WORKPLACE_IN_USE) { WriteRegister(REG_WORKPLACE_ACTIVATION_STATUS, (ushort)ActivationStatus); } break; } //возвращаем номер регистра статуса активации рабочего места вызывающей реализации return(REG_WORKPLACE_ACTIVATION_STATUS); }
ushort IExternalControl.ActivationWorkPlace(ComplexParts Device, ChannelByClumpType ChByClumpType, SctuWorkPlaceActivationStatuses ActivationStatus) { return(_IoMain.ActivationWorkPlace(Device, ChByClumpType, ActivationStatus)); }
public ushort ActivationWorkPlace(ComplexParts Device, ChannelByClumpType ChByClumpType, SctuWorkPlaceActivationStatuses ActivationStatus) { return(Channel.ActivationWorkPlace(Device, ChByClumpType, ActivationStatus)); }