Я пытаюсь easyModbus TCP , чтобы прочитать в регистрах хранения аналогового устройства ADAM 6017.Я использую пример клиентского кода , чтобы ознакомиться с этой библиотекой.Кажется, проблема в том, что мне нужно, чтобы значения регистров читались как беззнаковые, но это возвращает мне подписанные значения.У меня есть 3.3548 Вольт, подключенных к устройству, и шкала установлена на 0-5 В, и он выдает -10781 от АЦП.Вот что я написал:
package modbus.logger;
import de.re.easymodbus.modbusclient.*;
import java.lang.*;
/**
*
* @author Michael Haire
* SJVAPCD
*/
public class ModbusLogger {
public static void main(String[] args)
{
float volt;
int Input;
int x = 1;
float input;
ModbusClient modbusClient = new ModbusClient("192.168.1.201",502);
try
{ while(x>0){
modbusClient.Connect();
System.out.print("Raw ADC Value: ");System.out.println(modbusClient.ReadHoldingRegisters(0, 1)[0]);
Input = modbusClient.ReadHoldingRegisters(0, 1)[0];
System.out.print("Input: ");System.out.println(Input);
input = (float) Input;
volt = (float) ((input / 65536)*5.0);
System.out.print("Voltage: ");System.out.printf("%f%n" , volt);System.out.println("");
}}
catch (Exception e){
}
}
}
Что я должен сделать, чтобы получить значение без знака?