import java.text.DecimalFormat;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
import com.bsd.hbdcenter.RtWxcw;
public class Test {
private static void printUsage(){
System.out.println("Usage: RtWxcw SlaveAddress SerialPort [CycleTime BaudRate DataBits StopBits Parity]");
System.out.println(" windows: RtWxcw 1 COM1 60 9600 8 1 0");
System.out.println(" linux: RtWxcw 1 /dev/ttyS0 60 9600 8 1 0");
System.out.println(" default: ");
System.out.println(" CycleTime=60");
System.out.println(" BaudRate=9600");
System.out.println(" DataBits=8");
System.out.println(" StopBits=1");
System.out.println(" Parity=0");
System.out.println("");
}
public static void main(String args[]){
if(args == null || args.length == 0 )
{
printUsage();
return;
}
int slaveaddr = 1;
String commport = null;
int cycletime = 60;
int baudrate = 9600;
int databits = 8;
int stopbits = 1;
int parity = 0;
int num = args.length;
switch( num )
{
case 1://一个参数
slaveaddr = Integer.parseInt(args[0]);
break;
case 2://两个参数
slaveaddr = Integer.parseInt(args[0]);
commport = args[1];
break;
case 3://三个参数
slaveaddr = Integer.parseInt(args[0]);
commport = args[1];
cycletime = Integer.parseInt(args[2]);
break;
case 4://四个参数
slaveaddr = Integer.parseInt(args[0]);
commport = args[1];
cycletime = Integer.parseInt(args[2]);
baudrate = Integer.parseInt(args[3]);
break;
case 5://五个参数
slaveaddr = Integer.parseInt(args[0]);
commport = args[1];
cycletime = Integer.parseInt(args[2]);
baudrate = Integer.parseInt(args[3]);
databits = Integer.parseInt(args[4]);
break;
case 6://六个参数
slaveaddr = Integer.parseInt(args[0]);
commport = args[1];
cycletime = Integer.parseInt(args[2]);
baudrate = Integer.parseInt(args[3]);
databits = Integer.parseInt(args[4]);
stopbits = Integer.parseInt(args[5]);
break;
case 7://七个参数
slaveaddr = Integer.parseInt(args[0]);
commport = args[1];
cycletime = Integer.parseInt(args[2]);
baudrate = Integer.parseInt(args[3]);
databits = Integer.parseInt(args[4]);
stopbits = Integer.parseInt(args[5]);
parity = Integer.parseInt(args[6]);
break;
default://参数错误
System.out.println( "Arguments error!" );
printUsage();
return;
}
Map<String, String> commparams = new HashMap<String, String>();
commparams.put("slaveId", String.valueOf(slaveaddr));
if ((commport == null)||(commport == "")) {
System.out.println( "Arguments error!" );
printUsage();
return;
}
commparams.put("sname", commport);
commparams.put("baudrate", String.valueOf(baudrate));
commparams.put("databits", String.valueOf(databits));
commparams.put("stopbits", String.valueOf(stopbits));
commparams.put("parity", String.valueOf(parity));
Date dt1 = new Date();
Date dt2 = new Date();
long between;
long minute1;
DecimalFormat df = new DecimalFormat("00");
getData(commparams);
while (true){
dt1 = new Date();
between=(dt1.getTime()-dt2.getTime())/1000;
minute1=between%3600/cycletime;
System.out.print("\b\b\b\b\b\b\b\b\b\b"+"waiting:"+df.format(cycletime-between));
if (Math.abs(minute1)>0) {
dt1 = new Date();
dt2 = new Date();
System.out.println();
try {
getData(commparams);
} catch (Exception e) {
e.printStackTrace();
}
}
try {
Thread.sleep(1000);
}
catch (InterruptedException e) {
e.printStackTrace();
}
}
}
private static void getData(Map<String, String> commparams) {
System.out.println("--------------------------------------------------");
System.out.print("SlaveAddress:"+commparams.get("slaveId")+"; ");
System.out.print("SerialPort:"+commparams.get("sname")+"; ");
System.out.print("BaudRate:"+commparams.get("baudrate")+"; ");
System.out.print("DataBits:"+commparams.get("databits")+"; ");
System.out.print("StopBits:"+commparams.get("stopbits")+"; ");
System.out.println("Parity:"+commparams.get("parity")+"; ");
Map<String, String> result = RtWxcw.collectionData(commparams,1);
for (int i=0; i<result.size(); i++) {
if (i % 5 == 1)
System.out.println();
System.out.print("val"+i+"="+result.get(String.valueOf(i))+"; ");
}
System.out.println("");
System.out.println("==================================================");
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
使用modbus4j获取使用modbus协议进行数据通讯的仪表数据的例子, 可以运行在windows和linux下, 可以在命令行设置参数: Usage: RtWxcw SlaveAddress SerialPort [CycleTime BaudRate DataBits StopBits Parity] windows: RtWxcw 1 COM1 60 9600 8 1 0 linux: RtWxcw 1 /dev/ttyS0 60 9600 8 1 0 default: "); CycleTime=60 BaudRate=9600 DataBits=8 StopBits=1 Parity=0
资源推荐
资源详情
资源评论
收起资源包目录
RtWxcw.zip (7个子文件)
RtWxcw
bin
Test.class 4KB
com
bsd
hbdcenter
RtWxcw.class 4KB
.settings
org.eclipse.jdt.core.prefs 598B
src
com
bsd
hbdcenter
RtWxcw.java 4KB
Test.java 6KB
.project 382B
.classpath 295B
共 7 条
- 1
csusn
- 粉丝: 2
- 资源: 2
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
- 1
- 2
前往页