use of org.openmuc.jmbus.MBusConnection in project OpenMUC by isc-konstanz.
the class DriverConnectionTest method testReadThrowsIOException.
@Test
public void testReadThrowsIOException() throws Exception {
MBusConnection con = mock(MBusConnection.class);
VariableDataStructure vds = new VariableDataStructure(NZR_ANSWER, 6, NZR_ANSWER.length - 6, null, null);
vds.decode();
when(con.read(anyInt())).thenThrow(new IOException());
ConnectionInterface serialIntervace = new ConnectionInterface(con, "/dev/ttyS100:5", delay, interfaces);
serialIntervace.increaseConnectionCounter();
String[] deviceAddressTokens = { "/dev/ttyS100", "5" };
int address = Integer.parseInt(deviceAddressTokens[1]);
DriverConnection driverCon = new DriverConnection(serialIntervace, address, null, delay);
List<ChannelRecordContainer> records = Arrays.asList(newChannelRecordContainer("04:03"));
driverCon.read(records, null, null);
Flag actualFlag = records.get(0).getRecord().getFlag();
assertEquals(Flag.DRIVER_ERROR_TIMEOUT, actualFlag);
}
use of org.openmuc.jmbus.MBusConnection in project OpenMUC by isc-konstanz.
the class DriverConnectionTest method testReadBcdDateLong.
@Test
public void testReadBcdDateLong() throws Exception {
MBusConnection con = mock(MBusConnection.class);
VariableDataStructure vds = new VariableDataStructure(SIEMENS_UH50_ANSWER, 6, SIEMENS_UH50_ANSWER.length - 6, null, null);
vds.decode();
when(con.read(anyInt())).thenReturn(vds);
ConnectionInterface serialIntervace = new ConnectionInterface(con, "/dev/ttyS100:5", delay, interfaces);
serialIntervace.increaseConnectionCounter();
String[] deviceAddressTokens = { "/dev/ttyS100", "5" };
DriverConnection mBusConnection = new DriverConnection(serialIntervace, Integer.parseInt(deviceAddressTokens[1]), null, delay);
List<ChannelRecordContainer> records = new LinkedList<>();
records.add(newChannelRecordContainer("09:74"));
records.add(newChannelRecordContainer("42:6c"));
records.add(newChannelRecordContainer("8c01:14"));
mBusConnection.read(records, null, null);
}
use of org.openmuc.jmbus.MBusConnection in project OpenMUC by isc-konstanz.
the class DriverConnectionTest method testReadThrowsTimeoutException.
@Test
public void testReadThrowsTimeoutException() throws Exception {
MBusConnection con = mock(MBusConnection.class);
VariableDataStructure vds = new VariableDataStructure(NZR_ANSWER, 6, NZR_ANSWER.length - 6, null, null);
vds.decode();
when(con.read(anyInt())).thenThrow(new SerialPortTimeoutException());
ConnectionInterface serialIntervace = new ConnectionInterface(con, "/dev/ttyS100:5", delay, interfaces);
serialIntervace.increaseConnectionCounter();
String[] deviceAddressTokens = { "/dev/ttyS100", "5" };
int address = Integer.parseInt(deviceAddressTokens[1]);
DriverConnection driverCon = new DriverConnection(serialIntervace, address, null, delay);
List<ChannelRecordContainer> records = Arrays.asList(newChannelRecordContainer("04:03"));
driverCon.read(records, null, null);
assertEquals(Flag.DRIVER_ERROR_TIMEOUT, records.get(0).getRecord().getFlag());
}
use of org.openmuc.jmbus.MBusConnection in project OpenMUC by isc-konstanz.
the class DriverConnectionTest method testScanThrowsTimeoutException.
@Test(expected = ConnectionException.class)
public void testScanThrowsTimeoutException() throws Exception {
MBusConnection con = mock(MBusConnection.class);
VariableDataStructure vds = new VariableDataStructure(NZR_ANSWER, 6, NZR_ANSWER.length - 6, null, null);
vds.decode();
when(con.read(anyInt())).thenThrow(new SerialPortTimeoutException());
ConnectionInterface serialIntervace = new ConnectionInterface(con, "/dev/ttyS100:5", delay, interfaces);
serialIntervace.increaseConnectionCounter();
String[] deviceAddressTokens = { "/dev/ttyS100", "5" };
DriverConnection driverCon = new DriverConnection(serialIntervace, Integer.parseInt(deviceAddressTokens[1]), null, delay);
driverCon.scanForChannels(null);
}
use of org.openmuc.jmbus.MBusConnection in project OpenMUC by isc-konstanz.
the class DriverConnectionTest method newConnection.
private DriverConnection newConnection(String mBusAdresse) throws Exception {
MBusConnection con = mock(MBusConnection.class);
VariableDataStructure vds = new VariableDataStructure(NZR_ANSWER, 6, NZR_ANSWER.length - 6, null, null);
vds.decode();
PowerMockito.when(con.read(anyInt())).thenReturn(vds);
ConnectionInterface serialIntervace = new ConnectionInterface(con, mBusAdresse, delay, interfaces);
serialIntervace.increaseConnectionCounter();
String[] deviceAddressTokens = mBusAdresse.trim().split(":");
Integer mBusAddress;
SecondaryAddress secondaryAddress = null;
if (deviceAddressTokens[1].length() == 16) {
mBusAddress = 0xfd;
byte[] addressData = Helper.hexToBytes(deviceAddressTokens[1]);
secondaryAddress = SecondaryAddress.newFromLongHeader(addressData, 0);
} else {
mBusAddress = Integer.decode(deviceAddressTokens[1]);
}
DriverConnection mBusConnection = new DriverConnection(serialIntervace, mBusAddress, secondaryAddress, delay);
return mBusConnection;
}
Aggregations