public void MulticastMessage()
        {
            using var target = new ClockServer(ClockServerOptions.Default);
            var message = target.MulticastMessage;

            Assert.AreEqual("fastclock\r\nname=Kolding\r\nversion=2\r\nip-address=" + TestMachineIPAdress + "\r\nip-port=2500\r\nclocktype=fastclock\r\nclock=06:00:00\r\nactive=no\r\nweekday=0\r\nspeed=6\r\ntext=\r\ninterval=2", message);
        }
Ejemplo n.º 2
0
        public void RunningClock()
        {
            var receivedUdp = new List <string>();
            var settings    = new ClockSettings()
            {
                IsRunning = true
            };
            var options = ClockServerOptions.Default.Value;

            using (var receiver = new UdpClient(2000, AddressFamily.InterNetwork))
            {
                receiver.JoinMulticastGroup(IPAddress.Parse(options.Multicast.IPAddress), ClockServer.GetLocalIPAddress());
                var state = new State {
                    u = receiver, l = receivedUdp
                };
                using var t      = Task.Factory.StartNew(() => Receiver(receiver, state), CancellationToken.None, TaskCreationOptions.LongRunning, TaskScheduler.Default);
                using var target = new ClockServer(
                          Options.Create(new ClockServerOptions()
                {
                    Multicast = new MulticastOptions { IntervalSeconds = 1, IPAddress = "239.50.50.20", IsEnabled = true, PortNumber = 2000 },
                    Polling   = new PollingOptions { IsEnabled = true, PortNumber = 2500 },
                    StartTime = TimeSpan.FromHours(5.5),
                    Speed     = 6,
                }));
                {
                }
                target.Start(settings);
                Assert.IsTrue(target.IsRunning);
                Thread.Sleep(10000);
                target.Stop();
                receiver.Close();
                t.Wait();
            }
            Assert.IsTrue(receivedUdp.Count > 0);
        }
        public void Level2Message()
        {
            using var target = new ClockServer(ClockServerOptions.Default);
            var message = target.Level2Message;

            Assert.AreEqual("clocktype=fastclock\r\nclock=06:00:00\r\nactive=no\r\nweekday=0\r\nspeed=6\r\ntext=\r\ninterval=2", message);
        }
Ejemplo n.º 4
0
        public void Level1Message()
        {
            using var target = new ClockServer(ClockServerOptions.Default);
            var message = target.Level1Message;

            Assert.AreEqual("0 06 00 6", message);
        }
Ejemplo n.º 5
0
        private void updateTimerStatus()
        {
            ClockServer ins = ClockServer.ins;

            btnStop.Visibility    = ins.isAlarm() ? Visibility.Visible : Visibility.Collapsed;
            btnSetting.Visibility = !ins.isAlarm() ? Visibility.Visible : Visibility.Collapsed;

            imgIcon.Visibility       = !ins.isAlarm() ? Visibility.Visible : Visibility.Collapsed;
            imgIconRotate.Visibility = ins.isAlarm() ? Visibility.Visible : Visibility.Collapsed;

            String     info = "";
            ClockModel md   = ClockServer.ins.playClockModel;

            if (md != null)
            {
                info = md.desc;
            }
            if (ins.isAlarm() && info != "")
            {
                lblNowTime.Padding      = new Thickness(0, 28, 0, 0);
                lblNowTime.FontSize     = 10;
                lblAlarmInfo.Visibility = Visibility.Visible;
                lblAlarmInfo.Content    = info;
            }
            else
            {
                lblNowTime.Padding      = new Thickness(0, 0, 0, 0);
                lblNowTime.FontSize     = 20;
                lblAlarmInfo.Visibility = Visibility.Collapsed;
            }
        }
Ejemplo n.º 6
0
 public void TryStartPolling()
 {
     if (Options.IsEnabled)
     {
         Listener        = new TcpListener(ClockServer.GetLocalIPAddress(), Options.PortNumber);
         TcpListenerTask = Task.Factory.StartNew(() => ProcessTcpRequests(), System.Threading.CancellationToken.None, TaskCreationOptions.LongRunning, TaskScheduler.Default);
     }
 }
 public static ClockStatus GetStatus(this ClockServer me, IPAddress remoteIpAddress, string?userName)
 {
     if (me is null)
     {
         throw new ArgumentNullException(nameof(me));
     }
     me.UpdateUser(remoteIpAddress, userName);
     return(me.GetStatus());
 }
        public void Level1Message()
        {
            var options = ClockServerOptions.Default;

            using var target = new ClockServer(options)
                  {
                      Name = options.Value.Name, Password = options.Value.Password
                  };
            var message = target.Level1Message;

            Assert.AreEqual("0 06 00 6", message);
        }
 public static ClockSettings GetSettings(this ClockServer me) =>
 me == null ? throw new ArgumentNullException(nameof(me)) :
 new ClockSettings
 {
     DurationHours      = me.Duration.Hours,
     ExpectedResumeTime = me.ExpectedResumeTime.AsTimeOrEmpty(),
     IsElapsed          = me.FastTime > me.StartTime,
     IsRunning          = me.IsRunning,
     Message            = me.Message.DefaultText,
     Mode = me.IsRealtime ? "1" : "0",
     Name = me.Name,
     OverriddenElapsedTime = string.Empty,
     Password               = me.Password,
     PauseReason            = ((int)me.PauseReason).ToString(CultureInfo.CurrentCulture),
     PauseTime              = me.PauseTime.AsTimeOrEmpty(),
     ShowRealTimeWhenPaused = me.ShowRealTimeWhenPaused,
     Speed        = me.Speed,
     StartTime    = me.StartTime.AsTime(),
     StartWeekday = ((int)me.Weekday).ToString(CultureInfo.CurrentCulture)
 };
 public static ClockStatus GetStatus(this ClockServer me) =>
 me == null ? throw new ArgumentNullException(nameof(me)) :
 new ClockStatus
 {
     Duration = me.Duration.TotalHours,
     ExpectedResumeTimeAfterPause = me.ExpectedResumeTime.AsTimeOrEmpty(),
     FastEndTime    = me.FastEndTime.AsTime(),
     IsCompleted    = me.IsCompleted,
     IsPaused       = me.IsPaused,
     IsRealtime     = me.IsRealtime,
     IsRunning      = me.IsRunning,
     Message        = me.Message.DefaultText ?? "",
     Name           = me.Name,
     PauseReason    = me.PauseReason.ToString(),
     PauseTime      = me.PauseTime.AsTimeOrEmpty(),
     RealEndTime    = me.RealEndTime.AsTime(),
     Speed          = me.Speed,
     StoppedByUser  = me.StoppingUser ?? "",
     StoppingReason = me.IsRunning ? string.Empty : me.StopReason.ToString(),
     Time           = me.Time.AsTime(),
     Weekday        = me.Weekday == Weekday.NoDay ? "" : me.Weekday.ToString()
 };
Ejemplo n.º 11
0
 public ClockMulticaster(MulticastOptions options, ClockServer server)
 {
     Options = options;
     Server  = server;
 }
 public static IEnumerable <ClockUser> ClockUsers(this ClockServer me) => me is null?Array.Empty <ClockUser>() : me.ClockUsers.OrderByDescending(u => u.LastUsedTime).Select(u => u.AsClockUser(me.UtcOffset));
Ejemplo n.º 13
0
 public ClockPollingService(PollingOptions options, ClockServer server)
 {
     Options = options;
     Server  = server;
 }
 public ClockController(ClockServer server)
 {
     Server = server;
 }