Exemplo n.º 1
0
 private void SetDeviceStateProperties(DeviceStatePropertiesQueue parameters)
 {
     lock (state)
     {
         try
         {
             if (Devices.NetworkSpine.State == SpineClientWrap.States.DISCONNECTED ||
                 parameters.Count == 0)
             {
                 // silenciosamente, ignoro el commit pues no tengo spine a la vista.
                 // o no nay nada en la cola de actualizacion.
                 STrace.Debug(typeof(DeviceStateWrap).FullName, String.Format("SetDeviceStateProperty[DESCARTA]: id={0} SpineState={1} Paramenters_Count={2}", id, Devices.NetworkSpine.State, parameters.Count));
                 return;
             }
             STrace.Debug(typeof(DeviceStateWrap).FullName, String.Format("SetDeviceStateProperty[INICIA]: id={0} Properties_Count={1} QueryState={2}", id, parameters.Count, State));
             var asyncCallback = new AsyncCallback(SetDeviceStatePropertyAsyncCallbackHandler);
             // preparo el cliente.
             var remoteAsyncDelegate =
                 new SetDeviceStatePropertiesHandler(Devices.NetworkSpine.SetDeviceStateProperties);
             var asyncCallBackData = new SetDeviceStatePropertiesData
             {
                 RemoteProperties    = parameters,
                 RemoteAsyncDelegate = remoteAsyncDelegate
             };
             // lanzamos el evento.
             remoteAsyncDelegate.BeginInvoke(id, parameters, asyncCallback,
                                             asyncCallBackData);
         }
         catch (Exception e)
         {
             STrace.Exception(typeof(DeviceStateWrap).FullName, e);
         }
     }
 }
Exemplo n.º 2
0
        public void Commit()
        {
            var queue          = new DeviceStatePropertiesQueue();
            var counters_queue = new DeviceStateCountersQueue();

            EnqueueProperty(queue, qTreeState);
            EnqueueProperty(queue, type);
            EnqueueProperty(queue, storageMediaFailure);
            EnqueueProperty(queue, transientDeviceNetworkPath);
            EnqueueProperty(queue, state);
            EnqueueProperty(queue, lastLoginGPSPoint);
            EnqueueProperty(queue, lastKnownGPSPoint);
            EnqueueProperty(queue, lastLogin);
            EnqueueProperty(queue, lastReceivedTrackingData);
            EnqueueProperty(queue, lastReceivedEventData);
            EnqueueProperty(queue, clockSlice);
            EnqueueProperty(queue, qtreeRevision);
            EnqueueProperty(queue, firmwareVersion);
            EnqueueProperty(queue, xbeeFirmware);
            EnqueueProperty(queue, haveDisplay);
            SetDeviceStateProperties(queue);
            // contadores
            EnqueueCounter(counters_queue, flashCounter);
            EnqueueCounter(counters_queue, crapReceivedCounter);
            UpdateDeviceStateCounters(counters_queue);
            changes_to_commit = ChangesToCommit;
            //STrace.Trace(typeof(DeviceStateWrap).FullName,0, "DS[{0}]: COMMIT", id);
        }
Exemplo n.º 3
0
 private static void EnqueueProperty <FTYPE>(DeviceStatePropertiesQueue queue, WrappedProperty <FTYPE> property)
 {
     if (property.DeviceStateProperty.PendingCommits <= 0 || !property.Initialized)
     {
         return;
     }
     queue.Enqueue(property.DeviceStateProperty);
 }
Exemplo n.º 4
0
 public bool SetDeviceStateProperties(short device_id, DeviceStatePropertiesQueue properties)
 {
     try
     {
         return(State != States.DISCONNECTED && SpineClient.Spine.SetDeviceStateProperties(device_id, properties));
     }
     catch (Exception e)
     {
         STrace.Exception(GetType().FullName, e);
         STrace.Debug(GetType().FullName, String.Format("SPINE_CLIENT_WRAP/ERROR: No se pudo actualizar las propiedades del dispositivo {0}", device_id));
         State       = States.DISCONNECTED;
         SpineClient = null;
     }
     return(false);
 }