使用以下代码;我正在尝试调整天线的范围;
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);
问题是,它不会让我更改TransmitPowerIndex
或ReceiveSensitivityIndex
除了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帮助文件没有特定的数据......
答案 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 。
希望这有助于某人。 问候。