Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
In eerdere onderwerpen wordt uitgelegd hoe u een eenvoudige serviceobjectsjabloon maakt met Plug en Play ondersteuning. In deze sectie wordt toegevoegd hoe u een beperkt voorbeeld maakt met de volgende nieuwe functies:
- De benodigde abstracte methoden worden geïmplementeerd, zodat het voorbeeld met succes wordt gecompileerd.
- Het serviceobject wordt herkend door toepassingen die PosExplorerbijvoorbeeld de POS voor .NET-testtoepassing gebruiken die deel uitmaakt van de SDK.
- Toepassingen kunnen nu methoden aanroepen voor het serviceobject of toegangseigenschappen, hoewel er geen nuttige resultaten worden geretourneerd.
Vereisten
Als u dit voorbeeld wilt compileren, moet uw project over de juiste verwijzingen en globale kenmerken beschikken.
Opmerking
using System;
using Microsoft.PointOfService;
using Microsoft.PointOfService.BaseServiceObjects;
namespace Samples.ServiceObjects.MSR
{
[HardwareId(@"HID\Vid_05e0&Pid_038a", @"HID\Vid_05e0&Pid_038a")]
[ServiceObject(DeviceType.Msr,
"SampleMsr",
"Sample Msr Service Object",
1,
9)]
public class SampleMsr : MsrBase
{
// String returned from CheckHealth
private string MyHealthText;
public SampleMsr()
{
// Initialize device capability properties.
Properties.CapIso = true;
Properties.CapTransmitSentinels = true;
Properties.DeviceDescription = "Sample MSR";
// Initialize other class variables.
MyHealthText = "";
}
~SampleMsr()
{
Dispose(false);
}
// Release any resources managed by this object.
protected override void Dispose(bool disposing)
{
try
{
// Your code here.
}
finally
{
// Must call base class Dispose.
base.Dispose(disposing);
}
}
#region PosCommon overrides
// Returns the result of the last call to CheckHealth().
public override string CheckHealthText
{
get
{
// MsrBasic.VerifyState(mustBeClaimed,
// mustBeEnabled). This may throw an exception.
VerifyState(false, false);
return MyHealthText;
}
}
public override string CheckHealth(
HealthCheckLevel level)
{
// Verify that 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;
}
public override DirectIOData DirectIO(
int command,
int data,
object obj)
{
// Verify that device is open.
VerifyState(false, false);
return new DirectIOData(data, obj);
}
#endregion // PosCommon overrides
#region MsrBasic Overrides
protected override MsrFieldData ParseMsrFieldData(
byte[] track1Data,
byte[] track2Data,
byte[] track3Data,
byte[] track4Data,
CardType cardType)
{
// Your code here:
// Implement this method to parse track data
// into fields which will be returned as
// properties to the application
// (for example, FirstName,
// AccountNumber, etc.)
return new MsrFieldData();
}
protected override MsrTrackData ParseMsrTrackData(
byte[] track1Data,
byte[] track2Data,
byte[] track3Data,
byte[] track4Data,
CardType cardType)
{
// Your code here:
// Implement this method to convert raw track data.
return new MsrTrackData();
}
#endregion
}
}
Om dit voorbeeld te vereenvoudigen, implementeert de code geen globalisatiefuncties. De waarde voor Properties.DeviceDescription wordt bijvoorbeeld meestal gelezen uit een gelokaliseerd tekenreeksresourcebestand.