Ejemplo n.º 1
0
        /// <summary>
        /// 向陆地端推送数据
        /// </summary>
        /// <param name="item"></param>
        /// <param name="alarmInfo"></param>
        private void ShipPushAlarm(SmartWeb.Models.Alarm item, AlarmInfo alarmInfo)
        {
            List <SmartWeb.Models.Alarm> recordAlarm = new List <SmartWeb.Models.Alarm>();

            assembly.SendAlarm("upload", alarmInfo);
            Console.WriteLine("已推送数据" + alarmInfo.uid);
            recordAlarm.Add(item);
            bool flag = true;

            new TaskFactory().StartNew(() => {
                while (recordAlarm.Count != 0)
                {
                    if (ManagerHelp.LandResponse.Count > 0)
                    {
                        flag = false;
                        //修改同步状态
                        UpdateAlarmSyncStatus(recordAlarm);
                    }
                    Thread.Sleep(1000);
                }
            }).Wait(3000);
            if (flag)
            {
                ShipPushAlarm(item, alarmInfo);
            }
        }
Ejemplo n.º 2
0
 /// <summary>
 /// 将缺岗数据插入报警表
 /// </summary>
 /// <param name="captureInfo"></param>
 public void CaptureAdd(CaptureInfo captureInfo, string xmq)
 {
     try
     {
         if (captureInfo != null)
         {
             using (var context = new MyContext())
             {
                 string shipId = "";
                 string cname  = "";
                 string cid    = "";
                 if (ManagerHelp.IsShipPort)
                 {
                     cid = captureInfo.cid;
                     var camera = context.Camera.FirstOrDefault(c => c.Id == captureInfo.cid);
                     if (camera != null)
                     {
                         cname = camera.NickName;
                     }
                 }
                 if (cid == "")
                 {
                     return;
                 }
                 SmartWeb.Models.Alarm alarm = new SmartWeb.Models.Alarm()
                 {
                     Type    = SmartWeb.Models.Alarm.AlarmType.CAPTURE,
                     Cid     = cid,
                     Cname   = cname,
                     Id      = Guid.NewGuid().ToString(),
                     Picture = Convert.FromBase64String(captureInfo.picture),
                     ShipId  = shipId,
                     Time    = DateTime.Now
                 };
                 context.Alarm.Add(alarm);
                 context.SaveChanges();
             }
         }
     }
     catch (Exception)
     {
     }
 }
Ejemplo n.º 3
0
 /// <summary>
 /// 报警信息入库
 /// </summary>
 /// <param name="alarmInfo"></param>
 /// <param name="shipId"></param>
 /// <param name="cid"></param>
 /// <param name="cname"></param>
 private void AddAlarm(Models.AlarmInfo alarmInfo, string shipId, string cid, string cname, string shipAlarmId = "")
 {
     using (var context = new MyContext())
     {
         SmartWeb.Models.Alarm model = new SmartWeb.Models.Alarm()
         {
             Id          = Guid.NewGuid().ToString(),
             Picture     = alarmInfo.picture,
             Time        = Convert.ToDateTime(alarmInfo.time),
             ShipId      = ManagerHelp.IsShipPort?"":shipId,
             Cid         = cid,
             Cname       = cname,
             Type        = (SmartWeb.Models.Alarm.AlarmType)alarmInfo.type,
             ShipAlarmId = shipAlarmId
                           //Uid = alarmInfo.uid
         };
         var replist = alarmInfo.alarmposition;
         if (replist != null && replist.Count > 0)
         {
             model.alarmPositions = new List <SmartWeb.Models.AlarmPosition>();
             foreach (var item in replist)
             {
                 SmartWeb.Models.AlarmPosition position = new SmartWeb.Models.AlarmPosition()
                 {
                     AlarmId = model.Id,
                     ShipId  = shipId,
                     Id      = Guid.NewGuid().ToString(),
                     H       = item.h,
                     W       = item.w,
                     X       = item.x,
                     Y       = item.y
                 };
                 model.alarmPositions.Add(position);
             }
         }
         context.Alarm.Add(model);
         context.SaveChanges();
     }
 }
Ejemplo n.º 4
0
        /// <summary>
        /// 组合protobuf的报警信息
        /// </summary>
        /// <param name="alarmPos"></param>
        /// <param name="item"></param>
        /// <returns></returns>
        private static AlarmInfo GetAlarmInfo(List <SmartWeb.Models.AlarmPosition> alarmPos, SmartWeb.Models.Alarm item)
        {
            Models.AlarmInfo alarmInfo = new Models.AlarmInfo()
            {
                cid           = item.Cid + ":" + item.Cname + ":" + ManagerHelp.ComponentId,
                picture       = item.Picture,
                time          = item.Time.ToString("yyyy-MM-dd HH:mm:ss"),
                type          = (Models.AlarmInfo.Type)item.Type,
                uid           = item.Id,
                alarmposition = new List <Models.AlarmPosition>()
            };
            if (alarmPos == null)
            {
                return(alarmInfo);
            }
            var positions = alarmPos.Where(c => c.AlarmId == item.Id).ToList();

            foreach (var pos in positions)
            {
                alarmInfo.alarmposition.Add(new Models.AlarmPosition()
                {
                    h = pos.H,
                    w = pos.W,
                    x = pos.X,
                    y = pos.Y
                });
            }

            return(alarmInfo);
        }