コード例 #1
0
 private static void ActionRepair(ServiceBusApp.AlarmMessage alarmMessage)
 {
     //if (alarmMessage.ioTHubDeviceID.Equals(DEVICEID))
     if (alarmMessage.deviceId.Equals(DEVICEID))
     {
         ActionRepairWindows(alarmMessage);
     }
 }
コード例 #2
0
        public color(ServiceBusApp.AlarmMessage alarmMessage)
        {
            string emotion = alarmMessage.emotion;

            switch (emotion)
            {
            case "Anger":    //紅色
                R = 255;
                G = 0;
                B = 0;
                break;

            case "Contempt":
                R = 0;
                G = 255;
                B = 255;
                break;
                R = 64;
                G = 64;
                B = 64;
                break;

            case "Fear":
                R = 224;
                G = 0;
                B = 112;
                break;

            case "Happiness":    //紫色
                R = 225;
                G = 0;
                B = 255;
                break;

            case "Neutral":    //綠色
                R = 0;
                G = 255;
                B = 0;
                break;

            case "Sadness":    //dark blue
                R = 0;
                G = 120;
                B = 255;
                break;

            case "Surprise":    //咖啡色
                R = 255;
                G = 255;
                B = 0;
                break;

            default:
                Console.WriteLine("Emotion Type is Not accpeted!");
                break;
            }
        }
コード例 #3
0
        private static void ProcessAlarmMessage(ServiceBusApp.AlarmMessage alarmMessage)
        {
            switch (alarmMessage.open)
            {
            case "1":
                ActionOpenDoor(alarmMessage);
                break;

            case "0":
                ActionRepair(alarmMessage);
                break;

            default:
                Console.WriteLine("AlarmType is Not accepted!");
                break;
            }
        }
コード例 #4
0
        static void Main(string[] args)
        {
            string serviceBusConnectionString = "Endpoint=sb://iotservicebus0104.servicebus.windows.net/;SharedAccessKeyName=RootManageSharedAccessKey;SharedAccessKey=emSxp91VqdESeqAU/+c6yIGaV6qbGVuUyK1DRoRzs2c=";
            string iotHubConnectionString     = "HostName=IoThub0104.azure-devices.net;SharedAccessKeyName=iothubowner;SharedAccessKey=gxP0FYr44G0roJomrqbZNKTS2Q388WHoOa2LgNZZ4Vk=";

            Console.WriteLine("Console App for Alarm Service Bus...");
            Console.WriteLine("serviceBusConnectionString={0}\n", serviceBusConnectionString);
            Console.WriteLine("iotHubConnectionString={0}\n", iotHubConnectionString);

            // Retrieve a Queue Client
            QueueClient queueClient = QueueClient.CreateFromConnectionString(serviceBusConnectionString, QueueName);

            // Retrieve a Service Client of IoT Hub
            _serviceClient = ServiceClient.CreateFromConnectionString(iotHubConnectionString);

            queueClient.OnMessage(message =>
            {
                Console.WriteLine("\n*******************************************************");
                //string msg = message.GetBody<String>();
                try
                {
                    //AlarmMessage alarmMessage = JsonConvert.DeserializeObject<AlarmMessage>(msg);
                    //ProcessAlarmMessage(alarmMessage);
                    //Console.WriteLine(msg);
                    Stream stream       = message.GetBody <Stream>();
                    StreamReader reader = new StreamReader(stream, Encoding.ASCII);
                    string s            = reader.ReadToEnd();
                    var start           = s.IndexOf("{");
                    var end             = s.LastIndexOf("}") + 1;
                    var length          = end - start;
                    // Get actual message
                    string cleandJsonString = s.Substring(start, length);

                    Console.WriteLine(String.Format("Message body: {0}", cleandJsonString));
                    ServiceBusApp.AlarmMessage alarmMessage = JsonConvert.DeserializeObject <ServiceBusApp.AlarmMessage>(cleandJsonString);
                    ProcessAlarmMessage(alarmMessage);
                    message.Complete();
                }
                catch (Exception ex)
                {
                    Console.WriteLine("****  Exception=" + ex.Message);
                }
            });
            Console.ReadLine();
        }
コード例 #5
0
        private static void ActionRepairWindows(ServiceBusApp.AlarmMessage alarmMessage)
        {
            //DateTime date1 = Convert.ToDateTime(alarmMessage.createdAt);
            IFormatProvider culture = new System.Globalization.CultureInfo("en-US", true);
            //DateTime date1 = DateTime.Parse(alarmMessage.createdAt, culture, System.Globalization.DateTimeStyles.AssumeLocal);
            DateTime date1 = DateTime.Parse(alarmMessage.time, culture, System.Globalization.DateTimeStyles.AssumeLocal);
            DateTime date2 = DateTime.UtcNow;
            TimeSpan diff  = date2.Subtract(date1.AddHours(-16));

            /* if (diff.TotalSeconds > 20)
             * {
             *   //WriteHighlightedMessage("Message Expired(Open door), " + "Diff=" + diff.TotalSeconds.ToString(), ConsoleColor.Blue);
             *   ignore_messages.Add(GetDeviceIdHint(alarmMessage.deviceId) +
             *       " OpenDoor! Certificate=" + alarmMessage.name +
             *       ", MessageID=" + alarmMessage.msgId +
             *       ", Diff=" + diff.TotalSeconds.ToString());
             *   open_ignore_count += 1;
             *   return;
             * }*/
            WriteHighlightedMessage(
                GetDeviceIdHint(alarmMessage.deviceId) +
                " CloseDoor! Certificate=" + alarmMessage.name +
                ", MessageID=" + alarmMessage.msgId +
                ", Diff=" + diff.TotalSeconds.ToString(),
                ConsoleColor.Blue);

            /*C2DCommand c2dCommand = new C2DCommand();
             * c2dCommand.command = C2DCommand.COMMAND_OPEN_DOOR_WARNING;
             * c2dCommand.value = alarmMessage.msgId;
             * c2dCommand.time = alarmMessage.time;
             * SendCloudToDeviceCommand(_serviceClient, alarmMessage.deviceId, c2dCommand).Wait();*/

            C2DCommand2 c2dCommand = new C2DCommand2();

            c2dCommand.name = alarmMessage.name;
            c2dCommand.Lock = false;
            color c = new color(alarmMessage);

            c2dCommand.R = c.R;
            c2dCommand.G = c.G;
            c2dCommand.B = c.B;
            SendCloudToDeviceCommand(_serviceClient, "Devices", c2dCommand).Wait();


            // using (var db = new HumanContext())
            //{
            // Create and save a new Blog

            /*var entity = new Dbmsg
             * {
             * // name = alarmMessage.name,
             *  deviceId = alarmMessage.deviceId,
             *  msgId = alarmMessage.msgId,
             *  open = alarmMessage.open,
             *  age = alarmMessage.age,
             *  gender = alarmMessage.gender,
             *  emotion = alarmMessage.emotion,
             *  angerScore = alarmMessage.angerScore,
             *  happyScore = alarmMessage.happyScore,
             *  neutralScore = alarmMessage.neutralScore,
             *  contemptScore = alarmMessage.contemptScore,
             *  disgustScore = alarmMessage.disgustScore,
             *  fearScore = alarmMessage.fearScore,
             *  sadScore = alarmMessage.sadScore,
             *  surpriseScore = alarmMessage.surpriseScore,
             *  CreatedAt = DateTime.UtcNow.AddHours(8)
             *  //time = alarmMessage.time
             * };
             * db.Data.Add(entity);
             * db.SaveChanges();*/

            // }
        }