Esempio n. 1
0
 public void CheckTask(bool LongRun)
 {
     Repeater.RunTask();
     if (LongRun)
     {
         ConsoleResponseBoolean variable = Console.GetOnOff(string.Format(Variables.V_camera_stream_enabled, ID));
         if (variable.State == ConsoleCommandState.Failure)
         {
             throw new LogicException(string.Format("{0} is not a boolean variable!", Variables.V_camera_stream_enabled));
         }
         if (variable.Value)
         {
             if ((encoderProcess == null || encoderProcess.HasExited) && Program.ThreadsRunning)
             {
                 StartStream(Console.GetValue(string.Format(Variables.V_camera_url, ID)).Value,
                             hostname);
             }
         }
         else
         {
             if ((encoderProcess != null && !encoderProcess.HasExited) && Program.ThreadsRunning)
             {
                 Console.WriteLine("Killing camera {0}", ID);
                 Terminate();
             }
         }
     }
 }
Esempio n. 2
0
        public void CheckTask(bool LongRun)
        {
            if (!LongRun)
            {
                return;
            }
            ConsoleResponseBoolean variable = Console.GetOnOff(string.Format(Variables.V_camera_enabled, ID));

            if (variable.State == ConsoleCommandState.Failure)
            {
                throw new LogicException(string.Format("{0} is not a boolean variable!", Variables.V_camera_enabled));
            }
            if (variable.Value)
            {
                if ((StreamSaveThread == null || StreamSaveThread.HasExited) && Program.ThreadsRunning)
                {
                    StartStream(Console.GetValue(string.Format(Variables.V_camera_url, ID)).Value,
                                string.Format(Console.GetValue(Variables.V_camera_save_path).Value, ID) +
                                Console.GetValue(string.Format(Variables.V_camera_save_format, ID)).Value);
                }
            }
            else
            {
                if ((StreamSaveThread != null && !StreamSaveThread.HasExited) && Program.ThreadsRunning)
                {
                    Console.WriteLine("Killing camera {0}", ID);
                    Terminate();
                }
            }
        }
Esempio n. 3
0
        public void CheckTask(bool LongRun)
        {
            if (!LongRun)
            {
                return;
            }
            ConsoleResponseBoolean variable = Console.GetOnOff(string.Format(Variables.V_camera_enabled, ID));

            if (variable.State == ConsoleCommandState.Failure)
            {
                throw new LogicException(string.Format("{0} is not a boolean variable!", Variables.V_camera_enabled));
            }
            if (variable.Value)
            {
                if ((stream == null || !stream.CanWrite) && Program.ThreadsRunning)
                {
                    StartStream();
                }
                else
                {
                    if (DateTime.Now >= NextSegment)
                    {
                        StartStream();
                    }
                }

                if (DateTime.Now >= NextFlush && LongRun)
                {
                    stream.Flush(true);
                    NextFlush = DateTime.Now.AddMinutes(1);
                }
            }
            else
            {
                /* if ((StreamSaveThread != null && !StreamSaveThread.HasExited) && Program.ThreadsRunning)*/
                if (stream != null)
                {
                    Console.WriteLine("Killing camera {0}", ID);
                    Terminate();
                }
            }
        }
Esempio n. 4
0
        private void StartStream()
        {
            string filename = string.Format(Console.GetValue(Variables.V_camera_save_path).Value, ID) +
                              DateTime.Now.ToString(Console.GetValue(string.Format(Variables.V_camera_save_format, ID)).Value);

            Debugging.DebugLog(Debugging.DebugLevel.Info, "Starting Camera " + ID);
            //We need to make sure the stream task is started also so we can pull the data from it
            ConsoleResponseBoolean variable = Console.GetOnOff(string.Format(Variables.V_camera_stream_enabled, ID));

            if (variable.State == ConsoleCommandState.Failure)
            {
                throw new LogicException(string.Format("{0} is not a boolean variable!", Variables.V_camera_stream_enabled));
            }
            if (!variable.Value)
            {
                Console.SetValue(string.Format(Variables.V_camera_stream_enabled, ID), "True");
            }


            try { stream?.Close(); } catch { };

            File.Delete(filename);
            stream = File.OpenWrite(filename);

            Program.CameraManager.GetGamera(ID)
            .StreamTask.Repeater.AddStream(
                new StreamClient(stream, (data, offset, length) => {
                try { stream.Write(data, offset, length);

                      /*      string s = ASCIIEncoding.ASCII.GetString(data, 0, data.Length);
                       *    var sb = new StringBuilder();
                       *    int i = 0;
                       *
                       *    sb.Append(" Capture Pattern: ")
                       *        .Append(data[i++].ToString("X2")).Append(" ")
                       *        .Append(data[i++].ToString("X2")).Append(" ")
                       *        .Append(data[i++].ToString("X2")).Append(" ")
                       *        .Append(data[i++].ToString("X2")).Append("\n");
                       *
                       *    sb.Append("         Version: ")
                       *        .Append(data[i++].ToString("X2")).Append("\n");
                       *
                       *    sb.Append("     Header Type: ")
                       *        .Append(data[i++].ToString("X2")).Append("\n");
                       *
                       *    sb.Append("Granule Position: ")
                       *         .Append(BitConverter.ToUInt64(new byte[] { data[6],  data[7],  data[8], data[9], data[10], data[11], data[12], data[13] }, 0)).Append("\n");
                       *
                       *    sb.Append("Granule Position: ")
                       *        .Append(data[i++].ToString("X2")).Append(" ")
                       *        .Append(data[i++].ToString("X2")).Append(" ")
                       *        .Append(data[i++].ToString("X2")).Append(" ")
                       *        .Append(data[i++].ToString("X2")).Append(" ")
                       *        .Append(data[i++].ToString("X2")).Append(" ")
                       *        .Append(data[i++].ToString("X2")).Append(" ")
                       *        .Append(data[i++].ToString("X2")).Append(" ")
                       *        .Append(data[i++].ToString("X2")).Append("\n");
                       *
                       *    sb.Append("Bitstream Number: ")
                       *        .Append(data[i++].ToString("X2")).Append(" ")
                       *        .Append(data[i++].ToString("X2")).Append(" ")
                       *        .Append(data[i++].ToString("X2")).Append(" ")
                       *        .Append(data[i++].ToString("X2")).Append("\n");
                       *
                       *    sb.Append(" Page Seq Number: ")
                       *        .Append(data[i++].ToString("X2")).Append(" ") // 18
                       *        .Append(data[i++].ToString("X2")).Append(" ")
                       *        .Append(data[i++].ToString("X2")).Append(" ")
                       *        .Append(data[i++].ToString("X2")).Append("\n");
                       *
                       *    sb.Append("        Checksum: ")
                       *        .Append(data[i++].ToString("X2")).Append(" ")
                       *        .Append(data[i++].ToString("X2")).Append(" ")
                       *        .Append(data[i++].ToString("X2")).Append(" ")
                       *        .Append(data[i++].ToString("X2")).Append("\n");
                       *
                       *
                       *    sb.Append("\n");
                       *    Console.Write(sb.ToString());*/

                      return(true); } catch { }
                return(false);
            })
                );

            NextSegment = DateTime.Now.AddMinutes(30);
            NextFlush   = DateTime.Now.AddMinutes(1);
        }