Compartir a través de


Compatibilidad con Plug and Play (POS para la documentación del SDK de .NET v1.14)

POS para .NET es totalmente compatible con la tecnología Windows Embedded Plug and Play. Para usar esta característica, los desarrolladores de objetos de servicio simplemente pueden agregar uno o varios HardwareId atributos a su código, o incluir la referencia de hardware en un archivo de configuración XML plug and play .

Agregar este atributo a un objeto de servicio ayuda a los desarrolladores de aplicaciones, que ahora sabrán que cuando usan PosExplorer para obtener una lista de objetos de servicio, cualquier objeto de servicio de esa lista se asociará con un dispositivo pos funcional. La aplicación se beneficia directamente de esta asociación mediante una mayor confiabilidad y facilidad de uso. Se recomienda que Los objetos de servicio admitan la característica Plug and Play siempre que sea posible.

Comportamiento de Plug and Play

Una vez que el objeto de servicio se ha asociado con el identificador de hardware del dispositivo POS, POS para .NET usa el Administrador de Windows Plug and Play para determinar qué dispositivos POS están conectados al equipo. La aplicación o el objeto de servicio no requieren ningún código adicional.

Cuando una aplicación invoca el método PosExplorer.GetDevices, PosExplorer busca el dispositivo asociado a cada objeto de servicio Plug and Play y, a continuación, consulta el Administrador de Windows Plug and Play para determinar el estado del dispositivo. Si el dispositivo no está disponible, no se agregará a la lista de dispositivos que se devuelve a la aplicación desde PosExplorer.GetDevices.

Filtrado de objetos de servicio PosExplorer

PosExplorer puede filtrar eficazmente la lista de objetos del servicio Plug and Play cuando la aplicación llama a PosExplorer.GetDevices. El proceso de filtrado funciona de la siguiente manera:

  1. Busca todos los ensamblados en el POS especificado para los directorios de .NET.
  2. Si el ensamblado no está marcado con el atributo global PosAssembly , lo descarta.
  3. Busca clases marcadas con el ServiceObject atributo . Para cada clase de este tipo:
    1. Busca un identificador de hardware asociado a esta clase, como un HardwareId atributo o dentro del archivo de configuración XML plug and play . Si no hay ningún identificador de hardware, deja el objeto de servicio en la lista PosExplorer .
    2. Si hay un identificador de hardware, consulta Windows para recuperar el estado del dispositivo. Si el dispositivo está conectado al equipo, lo deja en la lista PosExplorer .
    3. Si el dispositivo no está conectado al equipo, lo quita de la lista PosExplorer .

Example

En el ejemplo de código siguiente se muestra un método sencillo de control de eventos plug and Play. La información generada por PosExplorer se usa para crear instancias del dispositivo correcto, en este caso un Lector de bandas magnéticas (MSR).

// Connect the Plug and Play events to detect the removal or
// connection of a new device.
   explorer.DeviceAddedEvent += new
         DeviceChangedEventHandler(explorer_DeviceAddedEvent);
   explorer.DeviceRemovedEvent += new
         DeviceChangedEventHandler(explorer_DeviceRemovedEvent);

// This event handler extends Plug and Play functionality to the MSR
// device type. A message is printed to the console if the connection
// is successful.
void explorer_DeviceAddedEvent(object sender, DeviceChangedEventArgs e)
{

   // Checks if the newly added device is an MSR.
   if (e.Device.Type == DeviceType.Msr)
   {

      // Checks if an MSR instance has already been created and,
      // if not,creates one. If a new MSR instance is created, its
      // name is recorded in a string and written to the console.
      // Once the printing is finished, the MSR is closed.
      if (msr == null)
      {
         CreateMsr(e.Device);
         strMsrConfig = e.Device.ServiceObjectName;
         Console.WriteLine(strMsrConfig);
         // It is important that applications close all open
         // Service Objects before terminating.
         msr.Close();
      }
   }
}

Véase también

Tasks

Referencia

Conceptos

Otros recursos