Package

Source Code of ModbusTest

/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/

import gnu.io.SerialPort;
import gnu.io.CommPortIdentifier;
import gnu.io.CommDriver;
import com.serotonin.modbus4j.exception.ModbusInitException;
import com.serotonin.modbus4j.exception.ErrorResponseException;
import com.serotonin.modbus4j.exception.ModbusTransportException;
import com.serotonin.modbus4j.code.RegisterRange;
import com.serotonin.modbus4j.code.DataType;
import com.serotonin.modbus4j.ModbusMaster;
import com.serotonin.modbus4j.locator.NumericLocator;
import it.freedomotic.Modbus.gateways.ModbusMasterGateway;
import java.io.File;
import java.io.IOException;
import java.util.Properties;
import org.junit.AfterClass;
import org.junit.BeforeClass;
import org.junit.Test;
import static org.junit.Assert.*;

/**
*
* @author gpt
*/
public class ModbusTest {

    public ModbusTest() {
    }

    @BeforeClass
    public static void setUpClass() throws Exception {
    }

    @AfterClass
    public static void tearDownClass() throws Exception {
    }

//    public SerialConnectionProvider setUp() {
//        Properties config = new Properties();
//        config.setProperty("hello-message", "$>9000PXD3#"); //hello message defined by pmix15 comm protocol
//        config.setProperty("hello-reply", "$<9000VP"); //expected reply to hello-message starts with this string
//        config.setProperty("polling-message", "$>9000RQCE#"); //$>9000RQcs# forces read data using this string
//        return new SerialConnectionProvider(config);
//    }
//
//    public SerialConnectionProvider setUp2() {
//        Properties config = new Properties();
//        config.setProperty("port", "/dev/ttyUSB0"); //name of the serial port
//        config.setProperty("polling-message", "$>9000RQCE#"); //$>9000RQcs# forces read data using this string
//        return new SerialConnectionProvider(config);
//    }
    /**
     * Test of read method, of class SerialConnectionProvider.
     */
    @Test
    public void testRead() {

        System.out.println("\nTesting read method from modbus");
        //Config config = new Config();
//        config.setProperty("port", "/dev/ttyUSB10");
//        config.setProperty("baudrate",String.valueOf(19200));
//        config.setProperty("data-bits",String.valueOf(SerialPort.DATABITS_8));
//        config.setProperty("parity", String.valueOf(SerialPort.PARITY_EVEN));
//        config.setProperty("stop-bits", String.valueOf(SerialPort.STOPBITS_1));
        ModbusMaster master = ModbusMasterGateway.getInstance();
        try {
            master.init();
            NumericLocator bl = new NumericLocator(1, RegisterRange.HOLDING_REGISTER, 266, DataType.TWO_BYTE_INT_UNSIGNED);
            System.out.println(master.getValue(bl));

        } catch (ModbusTransportException ex) {
            System.out.println(ex.toString());
        } catch (ErrorResponseException ex) {
            System.out.println(ex.toString());
        } catch (ModbusInitException ex) {
            System.out.println(ex.toString());
        } finally {
            master.destroy();
        }
        assertEquals(1, 1);
        // sudo socat pty,link=/dev/ttyUSB10,waitslave,ignoreeof tcp:192.168.1.5:54321 &
        // chown user /dev/ttyUSB10
        // sudo socat tcp-l:54321,reuseaddr,fork file:/dev/ttyUSB0,nonblock,waitlock=/var/run/ttyUSB0.lock
    }

    /**
     * Test of write method.
     */
    @Test
    public void testWrite() {
        ModbusMaster master = ModbusMasterGateway.getInstance();
        int value1 = 235;
        int value = 0;
        try {
            master.init();
            //master.setValue(1,768,2,true);
            NumericLocator bl = new NumericLocator(1, RegisterRange.HOLDING_REGISTER, 771, DataType.TWO_BYTE_INT_UNSIGNED);
            master.setValue(bl, value1);
            value = (Integer) master.getValue(bl);

        } catch (ModbusTransportException ex) {
            System.out.println(ex.toString());
        } catch (ErrorResponseException ex) {
            System.out.println(ex.toString());
        } catch (ModbusInitException ex) {
            System.out.println(ex.toString());
        } finally {
            master.destroy();
        }
        assertEquals(value, value1);


    }
}
TOP

Related Classes of ModbusTest

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.