Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
A classe LineDisplayBase é uma camada de abstração relativamente fina quando comparada a outras classes Base de Objeto de Serviço — pouco código é necessário entre o aplicativo e o dispositivo físico. O Objeto de Serviço LineDisplay precisa apenas anunciar a quais recursos o dispositivo físico dá suporte e modificar sua saída de acordo com as propriedades de exibição definidas pelo aplicativo.
Um Objeto de Serviço LineDisplay também pode monitorar o dispositivo e relatar a energia ou outras alterações de status para o aplicativo usando um StatusUpdateEvent. Isso pode ser feito usando os métodos de Fila ou, por exemplo, usando os recursos de relatório de energia no PosCommon. Monitorar o dispositivo dessa maneira geralmente exigirá o início de um novo thread para aguardar eventos de hardware e enfileirar o StatusUpdateEvent apropriado. Um Objeto de Serviço LineDisplay também pode enviar DirectIOEvents para o aplicativo.
Para implementar a classe e os atributos LineDisplay
Adicione diretivas using para os namespaces Microsoft.PointOfService, Microsoft.PointOfService.BaseServiceObject.
Adicione o atributo global PosAssemblyAttribute para que PosExplorer o reconheça como um assembly do Ponto de Serviço da Microsoft para .NET (POS para .NET).
Crie uma nova classe derivada de LineDisplayBase.
Adicione o atributo de nível de classe ServiceObjectAttribute à nova classe para que PosExplorer o reconheça como um objeto de serviço.
Para implementar membros abstratos de LineDisplayBase
Todos os Objetos de Serviço LineDisplay precisam dar suporte a pelo menos um modo de tela. Para fornecer ao aplicativo detalhes sobre os modos de tela com suporte, implemente a propriedade abstrata LineDisplayScreenModes.
No mínimo, todos os Objetos de Serviço LineDisplay devem implementar DisplayData(Cell[]) para exibir caracteres no dispositivo de saída.
Recursos adicionais
Defina as propriedades de funcionalidade em seu Objeto de Serviço para anunciar o suporte para os recursos do dispositivo. Este exemplo demonstra como implementar o recurso de piscar de LineDisplay.
Para implementar o recurso de piscar
No construtor, defina a propriedade CapBlink como DisplayBlink.All ou DisplayBlink.Each para indicar a qual modo de piscar esse Objeto de Serviço dá suporte.
Defina a propriedade CapBlink como true, indicando que a taxa de piscar pode ser definida pelo aplicativo chamando BlinkRate.
Leve essas e outras configurações em conta ao implementar DisplayData.
Exemplo
using System;
using System.Collections.Generic;
using System.Text;
using Microsoft.PointOfService;
using Microsoft.PointOfService.BaseServiceObjects;
[assembly: PosAssembly("Service Object Contractors, Inc.")]
namespace SOSample.LineDisplay
{
[ServiceObject(
DeviceType.LineDisplay,
"SampleLineDisplay",
"Sample LineDisplay Service Object",
1,
9)]
public class SampleLineDisplay : LineDisplayBase
{
SampleLineDisplay()
{
// The CapBlink property is initially set to
// DisplayBlink.None in LineDisplayBase. This property
// will be set here to indicate what mode of blinking
// text our Service Object can support.
Properties.CapBlink = DisplayBlink.All;
// Set the CapBlinkRate property to true to indicate
// that this device has the ability to change the
// rate at which it blinks by setting the property
// BlinkRate.
Properties.CapBlinkRate = true;
}
#region Implement Abstract LineDisplayBase Members
// LineDisplayScreenMode must be implemented to
// allow the application to find out which screen modes
// are supported by this device.
protected override LineDisplayScreenMode[]
LineDisplayScreenModes
{
get
{
LineDisplayScreenMode[] SupportedModes;
// Create a LineDisplayScreenMode object; this SO
// has a screen mode 10 columns wide and 2 rows deep.
LineDisplayScreenMode mode =
new LineDisplayScreenMode(10, 2, 0, 0);
// Allocate space for our screen mode array and
// initialize it to hold our supported screen
// mode(s).
SupportedModes =
new LineDisplayScreenMode[] { mode };
return SupportedModes;
}
}
// DisplayData is the method called from the application
// specifying what data should be displayed on the
// device.
protected override void DisplayData(Cell[] cells)
{
// Your code here:
// Send the data to your device. Take settings such
// as blink and blink rate into account here.
return;
}
#endregion Implement Abstract LineDisplayBase Members
#region Implement Abstract PosCommon Members
private string MyHealthText = "";
// PosCommon.CheckHealthText.
public override string CheckHealthText
{
get
{
// VerifyState(mustBeClaimed,
// mustBeEnabled).
VerifyState(false, false);
return MyHealthText;
}
}
// PosCommon.CheckHealth.
public override string CheckHealth(
HealthCheckLevel level)
{
// Verify that the device is open, claimed and enabled.
VerifyState(true, true);
// Your code here:
// check the health of the device and return a
// descriptive string.
// Cache result in the CheckHealthText property.
MyHealthText = "Ok";
return MyHealthText;
}
// PosCommon.DirectIOData.
public override DirectIOData DirectIO(
int command,
int data,
object obj)
{
// Verify that the device is open.
VerifyState(false, false);
return new DirectIOData(data, obj);
}
#endregion Abstract PosCommon Members
}
}