Example #1
0
        private static void ProcessPosition(GPSPosition position)
        {
            //last_point = new GPSPoint(position.Time.ToUniversalTime(), (float)position.dblLatitude, (float)position.dblLongitude, Convert.ToInt32(position.flSpeed))
            last_point = new GPSPoint(position.Time, (float)position.dblLatitude, (float)position.dblLongitude, Convert.ToInt32(position.flSpeed))
            {
                Course = position.flHeading
            };

            T.INFO(last_point.ToString());
            double delta_distance = -1;

            mobile.Fix(last_point);

            if (destination_point != null)
            {
                delta_distance = Distances.Rhumb(last_point, destination_point);
                T.TRACE(String.Format("TRACKER: delta_distance={0}", delta_distance));
                //Locked = delta_distance <= destination_area_radio;

                /*if (delta_distance <= destination_radio)
                 * {
                 *  T.INFO("TRACKER: Llegamos al destino. Informando.");
                 *  Beep("gps_in_destination");
                 *  posicion.Clear();
                 *  destination_point = null;
                 *  var dummy = new byte[2];
                 *  dummy[0] = 0;
                 *  posicion.Push(last_point.AsMessage((int)delta_distance), dummy);
                 *  mobile.ActiveOT(last_point, active_ot);
                 * }*/
            }

            if (last_sent_point == null || (last_point.Date - last_sent_point.Date).TotalSeconds >= fix_interval)
            {
                T.INFO("TRACKER: fix seleccionado para enviar.");
                last_sent_point = last_point;
                mobile.Fix(last_sent_point);
                posicion.Clear();
                var dummy = new byte[2];
                dummy[0] = 0;
                posicion.Push(last_sent_point.AsMessage((int)delta_distance), dummy);
            }
        }
Example #2
0
        public static void Process(DAOFactory daoFactory, string codigo, Coche vehiculo, GPSPoint point, IMessage message, bool ignoreMessages, Empleado chofer)
        {
            try
            {
                // Si no es uno de los codigos que cambian estados automáticos, salgo directamente;))
                if (!IsAutomaticCode(codigo))
                {
                    return;
                }

                var evento = EventFactory.GetEvent(daoFactory, point, codigo, null, message, vehiculo, chofer);
                if (evento == null)
                {
                    return;
                }

                Process(vehiculo, evento, ignoreMessages);
            }
            catch (Exception ex)
            {
                STrace.Exception(typeof(CicloLogisticoFactory).FullName, ex, "Code: " + (codigo ?? "null") + " vehicle: " + (vehiculo == null ? "null" : vehiculo.Id.ToString("#0")) + " message:" + (message == null ? "null" : message.ToString()) + " gpspoint:" + (point == null ? "null" : point.ToString()));
            }
        }