예제 #1
0
파일: Program.cs 프로젝트: zhshen/Study
 private static void OutputDeviceInfo(ActorId actorID, Device device)
 {
     Console.WriteLine("Info from Actor {0}: Switch={1}, Temperature={2}, Time={3}",
                         actorID,
                         device.SwitchStatus,
                         device.Temperature,
                         device.UpdateTime);
 }
예제 #2
0
파일: Program.cs 프로젝트: zhshen/Study
        public static void Main(string[] args)
        {
            var proxy = ActorProxy.Create<IDeviceActor>(ActorId.NewId(), "fabric:/DeviceApplication");

            proxy.SubscribeAsync(new ClientDeviceEventHandler()).Wait();

            Device device = new Device() { DeviceID = "1001", SwitchStatus = SwitchStatusDefine.On, Temperature = 24, UpdateTime = DateTime.Now };

            string cmd = string.Empty;

            Random rnd = new Random((int)DateTime.Now.Ticks);

            Console.WriteLine("Please input command...");

            while (cmd.ToLower() != "exit")
            {
                switch (cmd.ToLower())
                {
                    case "write":
                        device.Temperature = rnd.NextDouble() * 100;
                        device.UpdateTime = DateTime.Now;

                        proxy.SetTelemetryAsync(device).Wait();
                        OutputDeviceInfo(proxy.GetActorId(), device);
                        Console.WriteLine("Data Written");
                        break;
                    case "read":
                        Device deviceRead = proxy.GetTelemetryAsync(device.DeviceID).Result;

                        if (deviceRead != null)
                            OutputDeviceInfo(proxy.GetActorId(), deviceRead);
                        break;
                }

                cmd = Console.ReadLine();
            }
        }