Typical setting of IOPorts in BizTalk RFID / Typisches Setzen von IOPorts in BizTalk RFID

(German version below / deutsche Version weiter unten)

When wanting to set an IOPort in BizTalk RFID, to for example switch on a specific light connected to an RFID reader, you basically deal with bits and bytes that you set somewhere. There are typically two ways of how this is implemented in a device:

  1. the device will encode several signal lines in a bitmask in just one port (e.g. implemented by Intermec)
  2. the device will have a port for each and every line (e.g. implemented by Sirit)

Depending on the implementation and your hardware you will have to set a bit to 0 or to 1 to actually activate the line (usually to 1).

So, when wanting to set the second and third line, this could look like this in the first case (e.g. Intermec):

byte[] bitValue = BitConverter.GetBytes(6);

connection.SetProperty("ThePortName",

        StandardDevicePropertyGroups.Source,

        SourcePropertyGroup.PortOutputValue,

        bitValue, null);

and like this in the second case (e.g. Sirit):

byte[] bitValue = BitConverter.GetBytes(1);

connection.SetProperty("PortNameOfLine2",

        StandardDevicePropertyGroups.Source,

        SourcePropertyGroup.PortOutputValue,

        bitValue, null);

connection.SetProperty("PortNameOfLine3",

        StandardDevicePropertyGroups.Source,

        SourcePropertyGroup.PortOutputValue,

        bitValue, null);

 

(German version)

Wenn man einen IOPort in BizTalk RFID setzen möchte, um beispielsweise ein bestimmtes Licht, welches an einen RFID Reader angeschlossen ist, anzuschalten, hat man vereinfacht gesagt mit Bits und Bytes zu tun, die man irgendwo setzen muss. Typischerweise gibt es zwei Herangehensweisen, wie dies in einem Gerät implementiert ist:

  1. das Gerät kodiert verschiedene Leitungen in einer Bitmaske in nur einem Port (z.B. so durch Intermec implementiert)
  2. das Gerät hat einen Port für jede einzelne Leitung (z. B. so bei Sirit zu finden)

Je nach Implementierung und der vorliegenden Hardware muss man nun den Wert jeweils zu 0 oder 1 setzen, um die Leitung zu aktivieren (normalerweise auf 1).

Wenn man also die zweite und dritte Leitung aktivieren möchte, würde das im ersten Fall (z.B. bei Intermec) so aussehen:

byte[] bitValue = BitConverter.GetBytes(6);

connection.SetProperty("ThePortName",

        StandardDevicePropertyGroups.Source,

        SourcePropertyGroup.PortOutputValue,

        bitValue, null);

und so im zweiten Fall (z.B. bei Sirit):

byte[] bitValue = BitConverter.GetBytes(1);

connection.SetProperty("PortNameOfLine2",

        StandardDevicePropertyGroups.Source,

        SourcePropertyGroup.PortOutputValue,

        bitValue, null);

connection.SetProperty("PortNameOfLine3",

        StandardDevicePropertyGroups.Source,

        SourcePropertyGroup.PortOutputValue,

        bitValue, null);


Posted May 05 2008, 09:26 AM by Andreas Erben
developers.de is a .Net Community Blog powered by daenet GmbH.