Использую программную среду Android Studio, библиотеку jamod, протокол Modbus. Не получается устанавливать значения несколько бит с помощью WriteMultipleCoilsRequest не могу понять, как для этого формировать и использовать BitVector. Например по 40 адресу у меня 8-ми битовый Coils, его биты нужно записать, подскажите как это сделать? текст программы:
public class My_WriteMultipleCoils extends AsyncTask<Void, Void, Void> {
private Exception exception;
BitVector bv = new BitVector(8);
protected Void doInBackground(Void... Params) {
try {
addr = InetAddress.getByName(MainActivity.str_adr);
int port = Modbus.DEFAULT_PORT;
con = new TCPMasterConnection(addr);
con.setPort(port);
con.connect();
WriteMultipleCoilsRequest m_WriteMultipleCoilsRequest = new WriteMultipleCoilsRequest();
ModbusTCPTransaction m_Transaction = new ModbusTCPTransaction(con);
bv.setBit(0,false);
bv.setBit(1,false);
bv.setBit(2,false);
bv.setBit(3,true);
bv.setBit(4,true);
bv.setBit(5,true);
bv.setBit(6,true);
bv.setBit(7,true);
m_WriteMultipleCoilsRequest.setUnitID(15);
m_WriteMultipleCoilsRequest.setReference(40);
m_WriteMultipleCoilsRequest.setCoils(bv);
m_Transaction.setRequest(m_WriteMultipleCoilsRequest);
m_Transaction.execute();
if (con.isConnected())
con.close();
} catch (Exception e) {
Log.d("TAG.Log", e.toString());
return null;
}
return null;
}