Beispiel #1
0
 /// <summary>
 /// 发送一个定时拍照任务(只有在该GPSCode任务队列为空,或者没有任务队列时才发送)
 /// </summary>
 /// <param name="para"></param>
 private void SendATimingTask(ETimingPhotoPara para)
 {
     if (PicTaskPool.ContainsKey(para.GPSCode))
     {
         //如果该GPSCode有任务队列,且队列为空,下发定时拍照任务
         if (PicTaskPool[para.GPSCode].Count == 0)
         {
             TakePicTask objRealTimeShoot = getATimingTask(para);
             PicTaskPool[para.GPSCode].Enqueue(objRealTimeShoot);
         }
     }
     else//如果该GPSCode没有任务队列,则新增任务队列,并下发定时拍照任务
     {
         Queue<TakePicTask> taskQueue = new Queue<TakePicTask>();
         TakePicTask objRealTimeShoot = getATimingTask(para);
         taskQueue.Enqueue(objRealTimeShoot);
         PicTaskPool.Add(para.GPSCode, taskQueue);
     }
     DoShoot(para.GPSCode, false);
 }
Beispiel #2
0
 /// <summary>
 /// 获得一个定时拍照任务
 /// </summary>
 /// <param name="para"></param>
 /// <returns></returns>
 private TakePicTask getATimingTask(ETimingPhotoPara para)
 {
     TakePicTask objRealTimeShoot = new TakePicTask();
     objRealTimeShoot.GPSCode = para.GPSCode;
     objRealTimeShoot.TaskType = SimpleCmdType.TimingShoot;
     objRealTimeShoot.CurrentCameraIndex = 0;
     objRealTimeShoot.CameraList = para.TimingShootCameraId;
     objRealTimeShoot.Status = TakePicTaskStatus.NotStart;
     objRealTimeShoot.SerialNumber = "Timing";
     return objRealTimeShoot;
 }
Beispiel #3
0
        /// <summary>
        /// 得到定时拍照参数列表
        /// </summary>
        /// <returns></returns>
        public Hashtable GetAllTimingPara(string GpsType)
        {
            DbConnection dbConnection = null;
            Hashtable paramList = new Hashtable();
            StringBuilder sbSql = new StringBuilder();
            sbSql.AppendLine("select a.camerasettingID,a.`interval`,a.AccStatus,b.cameraid,c.vehiclecode,d.gpscode ");
            sbSql.AppendLine(" from gps_timingtakepicturesetting a");
            sbSql.AppendLine(" left join gps_camera b on a.camerarecordid=b.recordid");
            sbSql.AppendLine(" inner join gps_camerasetting c on a.camerasettingID=c.recordid");
            sbSql.AppendLine(" left join gps_installation_info d on c.vehiclecode=d.vehiclecode where d.abolish=0 and a.enable=1 ");
            if (!string.IsNullOrEmpty(GpsType))
            {
                sbSql.AppendLine(" and d.gpscode like @gpscode");
            }
            try
            {
                using (dbConnection = GetConnection(_DefaultConnectionString))
                {
                    DbCommand command = dbConnection.CreateCommand();
                    command.CommandText = sbSql.ToString();
                    if (!string.IsNullOrEmpty(GpsType))
                    {
                        DbParameter para1 = command.CreateParameter();
                        para1.Value = GpsType + "%";
                        para1.ParameterName = "@gpscode";
                        command.Parameters.Add(para1);
                    }
                    DbDataAdapter adapter = new MySqlDataAdapter();
                    adapter.SelectCommand = command;
                    DataSet ds = new DataSet();
                    adapter.Fill(ds, "camerasetting");
                    DataTable table = ds.Tables["camerasetting"];

                    Logger.Info(string.Format("GetAllTimingPara:获取到{0}条记录", table.Rows.Count));
                    foreach (DataRow row in table.Rows)
                    {
                        string gpscode = row["gpscode"].ToString();
                        if (paramList.ContainsKey(gpscode))
                        {
                            ((ETimingPhotoPara)paramList[gpscode]).TimingShootCameraId.Add(TryParseUshort(row["cameraid"]));
                        }
                        else
                        {
                            ETimingPhotoPara entity = new ETimingPhotoPara();
                            entity.GPSCode = gpscode;
                            entity.AccStatus = TryParseUshort(row["AccStatus"]);
                            entity.TimingShootCameraId = new List<ushort>();
                            entity.TimingShootCameraId.Add(TryParseUshort(row["cameraid"]));
                            entity.TimingShootInterval = TryParseUshort(row["interval"]);
                            paramList.Add(gpscode, entity);
                        }
                    }
                    table.Dispose();
                    ds.Dispose();
                    adapter.Dispose();
                }
            }
            catch (Exception ex)
            {
                Logger.Warn("GetAllTimingPara:" + ex.Message);
            }
            return paramList;

        }