使用Motorola Emdks调整天线范围

时间:2014-08-13 13:13:44

标签: c# motorola-emdk

使用以下代码;我正在尝试调整天线的范围;

Antennas.Config config = new Antennas.Config();
config.TransmitPowerIndex = (ushort)myreader.TransmitPowerIndex;
config.TransmitFrequencyIndex = (ushort)myreader.TransmitFrequencyIndex;
config.ReceiveSensitivityIndex = (ushort)myreader.ReceiveSensitivityIndex;
myreader.ReaderAPI.Config.Antennas.SetConfig(config);

问题是,它不会让我更改TransmitPowerIndexReceiveSensitivityIndex 除了0之外,我得到的例外是" out范围的配置值"

如果我以默认设置运行天线(不使用上面的代码),它们将以全功率运行。

如果我使用以下设置:

Antennas.Config config = new Antennas.Config();
config.TransmitPowerIndex = 10;
config.TransmitFrequencyIndex = 1;
config.ReceiveSensitivityIndex = 0;
myreader.ReaderAPI.Config.Antennas.SetConfig(config);

天线以非常低的功率运行,但这对于mysetting来说太低了。如果我想将powerindex更改为20,例如,没有任何变化。如果我将transmitfrequencyindex或receivesensitivityindex更改为除上述值以外的任何值,我得到"配置值超出范围错误"。

如何根据线性基础上的某些值调整天线的范围?不幸的是,EMDK帮助文件没有特定的数据......

2 个答案:

答案 0 :(得分:3)

天线读取范围由config.TransmitPowerIndex

设置

然后是最大读取范围:

config.TransmitPowerIndex = 160;

对于最小读取范围:

config.TransmitPowerIndex = 0;

答案 1 :(得分:3)

有点晚了,但总比没有好。

摩托罗拉使用表格来分配天线的功率。此表位于此属性中:

Symbol.RFID3.Reader MyReader;

int[] table = MyReader.ReaderCapabilities.TransmitPowerLevelValues;

现在,table是一个int数组,值是天线可用的功率级别。

例如,我们假设包含50个项目。

如果你想要天线为50%:

config.TransmitPowerIndex = 24;

如果你想要天线在~75%左右:

config.TransmitPowerIndex = 36;

如果您希望天线处于100%:

config.TransmitPowerIndex = 49;

请记住,您必须指定所需值的 INDEX

希望这有助于某人。 问候。