package org.openmuc.framework.driver.csv.test;
import java.util.List;
import org.junit.Test;
import org.openmuc.framework.config.ArgumentSyntaxException;
import org.openmuc.framework.config.ChannelScanInfo;
import org.openmuc.framework.config.DeviceScanInfo;
import org.openmuc.framework.config.ScanException;
import org.openmuc.framework.config.ScanInterruptedException;
import org.openmuc.framework.driver.csv.CsvDeviceConnection;
import org.openmuc.framework.driver.csv.CsvDriver;
import org.openmuc.framework.driver.spi.ConnectionException;
import org.openmuc.framework.driver.spi.DriverDeviceScanListener;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class CsvScanDeviceTest {
private final static Logger logger = LoggerFactory.getLogger(CsvScanDeviceTest.class);
String dir = System.getProperty("user.dir");
@Test
public void testDeviceScan()
throws ArgumentSyntaxException, UnsupportedOperationException, ScanException, ScanInterruptedException {
CsvDriver csvDriver = new CsvDriver();
String settings = "path=" + dir + "/src/test/resources";
csvDriver.scanForDevices(settings, new DriverDeviceScanListener() {
@Override
public void scanProgressUpdate(int progress) {
logger.info("Scan progress: " + progress + " %");
}
@Override
public void deviceFound(DeviceScanInfo scanInfo) {
logger.info(scanInfo.toString());
}
});
}
@Test
public void testChannelScan() {
CsvDriver csvDriver = new CsvDriver();
String deviceAddress = dir + "/src/test/resources/SmartHomeTest.csv";
try {
String settings = "SAMPLINGMODE=hhmmss";
CsvDeviceConnection csvConnection = (CsvDeviceConnection) csvDriver.connect(deviceAddress, settings);
List<ChannelScanInfo> channelsScanInfos = csvConnection.scanForChannels("");
for (ChannelScanInfo info : channelsScanInfos) {
logger.info("Channel: " + info.getChannelAddress());
}
} catch (ArgumentSyntaxException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (ConnectionException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (UnsupportedOperationException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (ScanException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}