📄 commsocket.java
字号:
while (true) {
m_RecAvailableNum = m_InputStream.available();
if (m_RecAvailableNum > 0 &&
m_RecAvailableNum <= CollectorDefine.MAX_BYTE) {
bytes = m_InputStream.read(m_pRecBuffer);
m_RecNum = bytes;
break;
}
try {
Thread.sleep(CollectorDefine.COMM_SLEEP_TIME);
}
catch (InterruptedException interruptedexception) {
CFunction.putHintString(1,
"recBuffer2 in CommSocket Error1 " + "IP地址:" +
this.m_IpAddress + "端口号:" + this.m_PortNo);
return -1;
}
m_Count++;
if (m_Count > m_TimeCounter) {
break;
}
}
}
catch (IOException m_IoException) {
CFunction.putHintString(1,
"recBuffer2 in CommSocket Error2 " + "IP地址:" +
this.m_IpAddress +
"端口号:" + this.m_PortNo);
return -1;
}
return m_RecNum;
}
public int setConnectionParameters(SerialParameters serialParameters) {
byte baud = 0;
switch (serialParameters.getBaudRate()) {
case CollectorDefine.B_300:
baud = PortControlOptions.D_IOCTL_B300;
break;
case CollectorDefine.B_600:
baud = PortControlOptions.D_IOCTL_B600;
break;
case CollectorDefine.B_1200:
baud = PortControlOptions.D_IOCTL_B1200;
break;
case CollectorDefine.B_2400:
baud = PortControlOptions.D_IOCTL_B2400;
break;
case CollectorDefine.B_4800:
baud = PortControlOptions.D_IOCTL_B4800;
break;
case CollectorDefine.B_9600:
baud = PortControlOptions.D_IOCTL_B9600;
break;
case CollectorDefine.B_57600:
baud = PortControlOptions.D_IOCTL_B57600;
break;
case CollectorDefine.B_115200:
baud = PortControlOptions.D_IOCTL_B115200;
break;
default:
baud = (byte) 255;
break;
}
byte bit = 0;
switch (serialParameters.getDatabits()) {
case CollectorDefine.BIT_5:
bit = PortControlOptions.D_IOCTL_BIT5;
break;
case CollectorDefine.BIT_6:
bit = PortControlOptions.D_IOCTL_BIT6;
break;
case CollectorDefine.BIT_7:
bit = PortControlOptions.D_IOCTL_BIT7;
break;
case CollectorDefine.BIT_8:
bit = PortControlOptions.D_IOCTL_BIT8;
break;
default:
bit = (byte) 255;
break;
}
byte parity = 0;
switch (serialParameters.getParity()) {
case CollectorDefine.PARITY_NONE:
parity = PortControlOptions.D_IOCTL_NONE;
break;
case CollectorDefine.PARITY_ODD:
parity = PortControlOptions.D_IOCTL_ODD;
break;
case CollectorDefine.PARITY_EVEN:
parity = PortControlOptions.D_IOCTL_EVEN;
break;
default:
parity = (byte) 255;
break;
}
byte stop = 0;
switch (serialParameters.getStopbits()) {
case CollectorDefine.STOP_1:
stop = PortControlOptions.D_IOCTL_STOP1;
break;
case CollectorDefine.STOP_2:
stop = PortControlOptions.D_IOCTL_STOP2;
break;
default:
stop = (byte) 255;
break;
}
if (baud == (byte) 255 || bit == (byte) 255 || parity == (byte) 255 ||
stop == (byte) 255) {
return 1;
}
PortControln = new PortControl(m_IpAddress, (short)this.ControlPort);
PortControln.OpenCmdPort(this.m_IpAddress, ControlPort);
if (PortControln.CmdSocketToMoxa != null) {
//System.out.println("Open command port " + m_IpAddress + ":" + ControlPort +
// " succeeded.");
}
else {
System.out.println("Open comamnd port " + m_IpAddress + ":" + ControlPort +
" failed.");
CFunction.writeLog("Open comamnd port " + m_IpAddress + ":" + ControlPort +
" failed.", null);
CloseCmdDataPorts();
return -1;
}
//Step3: Reset port.
short ret = PortControln.ResetPort();
if (ret == PortControlOptions.OK) {
//System.out.println("Reset port " + m_IpAddress + ":" + ControlPort +
// " succeeded.");
}
else {
System.out.println("Reset port " + m_IpAddress + ":" + ControlPort +
" failed.");
CFunction.writeLog("Reset port " + m_IpAddress + ":" + ControlPort +
" failed.", null);
CloseCmdDataPorts();
return -1;
}
//Step4: Set ioctrl configuration.
byte mode = (byte) (parity |
bit |
stop); //N,8,1
ret = PortControln.ioctl(baud, mode);
if (ret == PortControlOptions.OK) {
//System.out.println("Set ioctrl of port " + m_IpAddress + ":" +
// ControlPort + " succeeded.");
}
else {
System.out.println("Set ioctrl of port " + m_IpAddress + ":" +
ControlPort +
" failed.");
CFunction.writeLog("Set ioctrl of port " + m_IpAddress + ":" +
ControlPort +
" failed.", null);
CloseCmdDataPorts();
return -1;
}
/*
//Step5: Set flowctrl configuration.
ret = PortControln.flowctrl(PortControlOptions.D_FCTRL_CTS_NO,
PortControlOptions.D_FCTRL_RTS_NO,
PortControlOptions.D_FCTRL_TXXON_NO,
PortControlOptions.D_FCTRL_RXXON_NO);
if (ret == PortControlOptions.OK) {
//System.out.println("Set flowctrl of port " + m_IpAddress + ":" +
// ControlPort + " succeeded.");
}
else {
System.out.println("Set flowctrl of port " + m_IpAddress + ":" +
ControlPort + " failed.");
WriteLog("Set flowctrl of port " + m_IpAddress + ":" + ControlPort +
" failed.");
CloseCmdDataPorts();
return;
}
*/
/*
//Step6: Set linectrl configuration.
ret = PortControln.lctrl(PortControlOptions.D_LCTRL_DTR_ON,
PortControlOptions.D_LCTRL_RTS_ON);
if (ret == PortControlOptions.OK) {
//System.out.println("Set linectrl of port " + m_IpAddress + ":" +
// ControlPort + " succeeded.");
}
else {
System.out.println("Set linectrl of port " + m_IpAddress + ":" +
ControlPort + " failed.");
WriteLog("Set linectrl of port " + m_IpAddress + ":" + ControlPort +
" failed.");
CloseCmdDataPorts();
return;
}
*/
/*
//Step7: Get line status.
ret = PortControln.lstatus();
if (ret >= 0) {
//System.out.println("Get status of port " + m_IpAddress + ":" +
// ControlPort + " succeeded." + " Status = " + ret + ".");
}
else {
System.out.println("Get status of port " + m_IpAddress + ":" + ControlPort +
" failed.");
WriteLog("Get status of port " + m_IpAddress + ":" + ControlPort +
" failed.");
CloseCmdDataPorts();
return;
}
*/
/*
//Step8: Data transfer test.
int IOok = 0;
int IOfail = 0;
System.out.println("IO testing on port " + m_IpAddress + ":" + ControlPort +
" ... ...");
for (int i = 0; i < IORetryTimes; i++) {
if (PortControln.DataSocketToMoxa != null) {
int ok = DataTransferTest();
if (ok == PortControlOptions.OK) {
IOok++;
}
else {
IOfail++;
}
}
}
System.out.println("Total io " + IORetryTimes + " times. " + IOok +
" successes, " + IOfail + " failures.");
WriteLog("IO test " + IORetryTimes + " times. " + IOok + " successes, " +
IOfail + " failures.");
*/
//Step9: Close any port if opened.
CloseCmdDataPorts();
return 1;
}
private void CloseCmdDataPorts() {
/* if (PortControln.DataSocketToMoxa != null) {
PortControln.ClosePort(PortControln.DataSocketToMoxa);
}
*/
//System.out.println("Data port for " + m_IpAddress + ":" + ControlPort +
// " closed.");
if (PortControln.CmdSocketToMoxa != null) {
PortControln.ClosePort(PortControln.CmdSocketToMoxa);
}
PortControln = null;
//System.out.println("Command port for " + m_IpAddress + ":" + ControlPort +
// " closed.");
/*
System.out.println("Port " + m_IpAddress + ":" + ControlPort + " closed.");
WriteLog("Port " + m_IpAddress + ":" + ControlPort + " closed.");
Calendar c = Calendar.getInstance();
System.out.println("[" + c.getTime().toString() + "]\n");
WriteLog("[" + c.getTime().toString() + "]\n");
*/
}
public int sendBreak() {
return 1;
}
public boolean isConnectionOpen() {
if (m_Skt == null) {
return false;
}
return true;
}
public void serialEvent(SerialPortEvent e) {
return;
}
public void ownershipChange(int type) {
return;
}
public int test(byte[] cc) {
String m_s = CFunction.translateBytesToString(1, cc, 3);
CollectorDefine.SystemPrintln(m_s);
for (int i = 0; i < 20; i++) {
cc[i] = (byte) (i + 100);
}
return 1;
}
/*
public static void main(String args[]) {
String dbHost = "localhost";
try {
if (args.length > 0) {
dbHost = args[0];
}
byte[] aa = new byte[256];
for (int i = 0; i < 20; i++) {
aa[i] = (byte) i;
}
CommSocket m_com = new CommSocket();
m_com.test(aa);
// String m_sd = CFunction.translateBytesToString(1 ,aa,3);
// CollectorDefine.SystemPrintln(m_sd);
}
catch (Exception e) {
CFunction.putHintString(1,
"sendString in CommSocket Error #1 " + "IP地址:" + this.m_IpAddress +
"端口号:" + this.m_PortNo + m_IOException.getMessage());
}
}
*/
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -