Exemplo n.º 1
0
        internal void WriteRegister(ushort Address, float Value, bool SkipJournal = false)
        //запись в регистр с номером Address ushort значения Value
        //значение мощности в регистр надо писать в Вт/10, а интерфейс пользователя пишет в принимаемое на вход Value в кВт, поэтому данная реализация для случая записи значения мощности переводит принимаемое значение в Вт/10
        //принимаемое Value типа float только для возможности писать значение мощности с дробной частью
        {
            if (!SkipJournal)
            {
                SystemHost.Journal.AppendLog(ComplexParts.ATU, LogMessageType.Note, string.Format("ATU @WriteRegister, address {0}, value {1}", Address, Value));
            }

            if (m_IsATUEmulation)
            {
                return;
            }

            ushort value = 0;

            switch (Address)
            {
            case REG_POWER_VALUE:
                //в пересчёте на Вт/10 это гарантированно не больше, чем позволяет ushort 65535
                value = (ushort)(Convert.ToUInt16(Value * 100));
                break;

            default:
                value = (ushort)Value;
                break;
            }

            m_IOAdapter.Write16(m_Node, Address, value);
        }
Exemplo n.º 2
0
        internal void WriteRegister(ushort Address, ushort Value, bool SkipJournal = false)
        {
            if (!SkipJournal)
            {
                SystemHost.Journal.AppendLog(ComplexParts.SL, LogMessageType.Note, string.Format("VTM @WriteRegister, address {0}, value {1}", Address, Value));
            }

            if (m_IsSLEmulation)
            {
                return;
            }

            m_IOAdapter.Write16(m_Node, Address, Value);
        }
Exemplo n.º 3
0
        internal void WriteRegister(ushort Address, ushort Value, bool SkipJournal = false)
        //запись в регистр с номером Address ushort значения Value
        {
            if (!SkipJournal)
            {
                SystemHost.Journal.AppendLog(ComplexParts.QrrTq, LogMessageType.Note, string.Format("QrrTq @WriteRegister, address {0}, value {1}", Address, Value));
            }

            if (m_IsEmulation)
            {
                return;
            }

            m_IOAdapter.Write16(m_Node, Address, Value);
        }
Exemplo n.º 4
0
        internal void WriteRegister16(ushort node, ushort address, ushort value, bool skipJournal = false)
        {
            if (!skipJournal)
            {
                SystemHost.Journal.AppendLog(ComplexParts.Sctu, LogMessageType.Note,
                                             string.Format("Sctu @WriteRegister, address {0}, value {1}, node {2}", address, value, node));
            }

            if (_isSctuEmulation)
            {
                if (address == REG_WORKPLACE_ACTIVATION_STATUS)
                {
                    _WorkplaceActivationStatusRegisterValueEmulation = value;
                }

                return;
            }

            _ioAdapter.Write16(node, address, value);
        }