Ejemplo n.º 1
0
 /// <summary>
 /// Gets string from enum
 /// </summary>
 /// <param name="m">The enum representing the message</param>
 /// <returns>String Message</returns>
 public static string GetMessageText(SimulatorMessage m, int iExtraInformation)
 {
     if (m == SimulatorMessage.PRIVILEGED_IS_READ_ONLY)
     {
         return(RegistersSettings.GetPrivilegedRegisterName(iExtraInformation)
                + " is read-only register");
     }
     else if (m == SimulatorMessage.PRIVILEGED_IS_WRITE_ONLY)
     {
         return(RegistersSettings.GetPrivilegedRegisterName(iExtraInformation)
                + " is write-only register");
     }
     else
     {
         return(MessagesArray[(int)m]);
     }
 }
Ejemplo n.º 2
0
        public SimulatorMessage GetMessage()
        {
            var    d2hMessage = new BacNetD2HMessage(this);
            double variation  = 0.0;

            if (d2hMessage.Asset.Variation)
            {
                variation = rnd.Next(-10, 11) / 10.0;
                d2hMessage.Asset.Value += variation;
            }

            var d2hMessages = new BacNetD2HMessage[] { d2hMessage };
            var msg         = new SimulatorMessage(d2hMessages);

            Value -= variation;

            return(msg);
        }
Ejemplo n.º 3
0
        public SimulatorMessage GetMessage()
        {
            StateChanged = false;

            switch (Mode)
            {
            case PresenceSensorMode.Unoccupied:
                CurrentPresence = false;
                break;

            case PresenceSensorMode.Present:
                CurrentPresence = true;
                break;

            case PresenceSensorMode.RandomToggleOnly:
                if ((rnd.NextDouble() >= 0.5) != CurrentPresence)
                {
                    CurrentPresence = !CurrentPresence;
                }
                break;

            case PresenceSensorMode.Random:
                CurrentPresence = (rnd.NextDouble() >= 0.5);
                break;
            }

            var eventTime       = DateTime.Now.ToString("M/d/yyyy h:m:s tt");
            var currentSequence = Interlocked.Increment(ref sequenceNumber);

            var message = new SimulatorMessage(new PresenceD2HMessage(this));

            message.D2CMessage.Properties.Add("MessageVersion", "1.0");
            message.D2CMessage.Properties.Add("ProductOrigin", "hawthorne");
            message.D2CMessage.Properties.Add("EventTime", eventTime);
            message.D2CMessage.Properties.Add("TransmitTime", eventTime);
            message.D2CMessage.Properties.Add("SequenceNumber", $"{currentSequence}");
            message.D2CMessage.Properties.Add("MessageType", "event");
            message.D2CMessage.Properties.Add("SensorId", SensorId);
            message.D2CMessage.Properties.Add("SignalType", "presence");
            message.D2CMessage.Properties.Add("IsInteractive", "true");

            return(message);
        }
Ejemplo n.º 4
0
 /// <summary>
 /// Consturctor
 /// </summary>
 /// <param name="msg">Error Description</param>
 /// <param name="iPC">Location of the error</param>
 /// <param name="iExtraInformation">Extra information about the error</param>
 public RuntimeError(SimulatorMessage msg, int iPC, int iExtraInformation)
 {
     _ErrorCode        = msg;
     _ExtraInformation = iExtraInformation;
     _PC = iPC;
 }