From 95c0c2e94d390650d3954c30c6a7c805fe9c714c Mon Sep 17 00:00:00 2001
From: whyclj <1525436766@qq.com>
Date: 星期四, 15 十月 2020 18:23:18 +0800
Subject: [PATCH] 负载添加历史实时数据记录功能

---
 src/com/data/PowerArk_SocketCliet_Thread.java |  316 +++++++++++++++++++++++++++++++++++----------------
 1 files changed, 215 insertions(+), 101 deletions(-)

diff --git a/src/com/data/PowerArk_SocketCliet_Thread.java b/src/com/data/PowerArk_SocketCliet_Thread.java
index f1c0500..60a9f5f 100644
--- a/src/com/data/PowerArk_SocketCliet_Thread.java
+++ b/src/com/data/PowerArk_SocketCliet_Thread.java
@@ -26,6 +26,9 @@
 	public static final int CMD_Start = 1;					//启动
 	public static final int CMD_Stop = 2;					//停止
 	
+	public static final int CMD_SUCCESS = -1;				//成功
+	public static final int CMD_FAIL = 0;					//失败
+	
 	private ByteBuffer bytebuffer_for_socket_RX = ByteBuffer.allocate(1500);
 	public static int PowerArk_Port = 502;
 	public String   dev_ip;
@@ -58,52 +61,56 @@
 		while(true) {
 			try {
 				/******************************************  读状态   **********************************************/
-				/******************************************  读状态   **********************************************/
 				{
-					if(run_count % 10 == 0) {					
-						//读取反馈信息0x4013-0x4030信息
+					if(run_count % 2 == 0) {					
+						//读取反馈信息4013-4030信息
 						basedata = new BaseData(Modbus_ComBase.READ_COIL_STATUS, Modbus_ComBase.OverTmp_Start_Addr, 18);
 						if(SocketComm(basedata.createReadData(), socket)) {
 							//读取反馈信息成功
-							PowerArk_ServerSocket_Thread_SQL.updateDynamicload_StateTable(conn_pool, state);
+							//PowerArk_ServerSocket_Thread_SQL.updateDynamicload_StateTable(conn_pool, state);
 						}
 					}
 					
-					if(run_count % 9 == 0) {
-						//读取状态信息      0x01-0x12
+					if(run_count % 2 == 0) {
+						//读取状态信息      01-12
 						basedata = new BaseData(Modbus_ComBase.READ_COIL_STATUS, Modbus_ComBase.AutoProcess1_Start_Addr, 12);
 						if(SocketComm(basedata.createReadData(), socket)) {
 							//M区状态成功 
-							PowerArk_ServerSocket_Thread_SQL.updateDynamicload_StateTable(conn_pool, state);
+							//PowerArk_ServerSocket_Thread_SQL.updateDynamicload_StateTable(conn_pool, state);
 						}
 					}
 					
-					/*if(run_count % 8 == 0) {
-						//读取状态信息      0x8000-8013
+					if(run_count % 2 == 0) {
+						//读取状态信息      8000-8013
 						basedata = new BaseData(Modbus_ComBase.READ_COIL_STATUS, Modbus_ComBase.ButtonOutPut_Start_Addr, 14);
 						if(SocketComm(basedata.createReadData(), socket)) {
 							//读取Q区状态成功 
-							PowerArk_ServerSocket_Thread_SQL.updateDynamicload_ButtonTable(conn_pool, button);
-						}
-					}*/
-					
-					/*if(run_count % 10 ==0 ) {
-						//读取各个按钮状态  0x40-x0160
-						basedata = new BaseData(Modbus_ComBase.READ_COIL_STATUS, Modbus_ComBase.LocalControl_Start_Addr, 121);
-						if(SocketComm(basedata.createReadData(), socket)) {
-							//读取Q区状态成功 
-							PowerArk_ServerSocket_Thread_SQL.updateDynamicload_ButtonTable(conn_pool, button);
+							//PowerArk_ServerSocket_Thread_SQL.updateDynamicload_ButtonTable(conn_pool, button);
 						}
 					}
 					
-					if(run_count % 10 ==0 ) {
-						//读取V区各个按钮状态  0x02-x18
-						basedata = new BaseData(Modbus_ComBase.READ_HOLDING_REGISTER, Modbus_ComBase.LocalControl_Start_Addr, 17);
+					if(run_count % 2 ==0 ) {
+						//读取各个按钮状态  40-0160
+						basedata = new BaseData(Modbus_ComBase.READ_COIL_STATUS, Modbus_ComBase.LocalControl_Start_Addr, 121);
+						if(SocketComm(basedata.createReadData(), socket)) {
+							//读取Q区状态成功 
+							//PowerArk_ServerSocket_Thread_SQL.updateDynamicload_ButtonTable(conn_pool, button);
+						}
+					}
+					
+					if(run_count % 2 ==0 ) {
+						int startaddr = Modbus_ComBase.ActualSetPower_Start_Addr;
+						//读取V区各个按钮状态  02-18
+						if(dyna_inf.getFZ_button_num() == 11) {							
+							startaddr = Modbus_ComBase.ActualSetPower_Start_Addr-2;
+						}
+						basedata = new BaseData(Modbus_ComBase.READ_HOLDING_REGISTER, startaddr, 17);
 						if(SocketComm(basedata.createReadData(), socket)) {
 							//读取V区状态成功 
-							PowerArk_ServerSocket_Thread_SQL.updateDynamicload_StateTable(conn_pool, state);
 						}
-					}*/
+					}
+					PowerArk_ServerSocket_Thread_SQL.updateDynamicload_StateTable(conn_pool, state);
+					PowerArk_ServerSocket_Thread_SQL.updateDynamicload_ButtonTable(conn_pool, button);
 				}
 				
 				/******************************************  写状态   **********************************************/
@@ -116,8 +123,10 @@
 							code_value = CONTROL_ON;
 						}
 						basedata = new BaseData(Modbus_ComBase.WRITE_SINGLE_COIL, Modbus_ComBase.Button_Start_Addr, 1);						
-						control.FZ_b1 = CONTROL_OFF;
-						SocketComm(basedata.createSingleCollWiriteData(BaseData.createButtonByte(code_value)), socket);
+						control.FZ_b1 = CMD_FAIL;
+						if(SocketComm(basedata.createSingleCollWiriteData(BaseData.createButtonByte(code_value)), socket)) {
+							control.FZ_b1 = CMD_SUCCESS;
+						}
 					}
 					
 					if(control.FZ_b2 >= CMD_Start) {
@@ -127,8 +136,10 @@
 							code_value = CONTROL_ON;
 						}
 						basedata = new BaseData(Modbus_ComBase.WRITE_SINGLE_COIL, Modbus_ComBase.Button_Start_Addr+1, 1);						
-						control.FZ_b2 = CONTROL_OFF;
-						SocketComm(basedata.createSingleCollWiriteData(BaseData.createButtonByte(code_value)), socket);
+						control.FZ_b2 = CMD_FAIL;
+						if(SocketComm(basedata.createSingleCollWiriteData(BaseData.createButtonByte(code_value)), socket)) {
+							control.FZ_b2 = CMD_SUCCESS;
+						}
 					}
 					
 					if(control.FZ_b3 >= CMD_Start) {
@@ -138,8 +149,11 @@
 							code_value = CONTROL_ON;
 						}
 						basedata = new BaseData(Modbus_ComBase.WRITE_SINGLE_COIL, Modbus_ComBase.Button_Start_Addr+2, 1);						
-						control.FZ_b3 = CONTROL_OFF;
-						SocketComm(basedata.createSingleCollWiriteData(BaseData.createButtonByte(code_value)), socket);
+						control.FZ_b3 = CMD_FAIL;
+						if(SocketComm(basedata.createSingleCollWiriteData(BaseData.createButtonByte(code_value)), socket)) {
+							control.FZ_b3 = CMD_SUCCESS;
+						}
+					
 					}
 					
 					if(control.FZ_b4 >= CMD_Start) {
@@ -149,8 +163,10 @@
 							code_value = CONTROL_ON;
 						}
 						basedata = new BaseData(Modbus_ComBase.WRITE_SINGLE_COIL, Modbus_ComBase.Button_Start_Addr+3, 1);						
-						control.FZ_b4 = CONTROL_OFF;
-						SocketComm(basedata.createSingleCollWiriteData(BaseData.createButtonByte(code_value)), socket);
+						control.FZ_b4 = CMD_FAIL;
+						if(SocketComm(basedata.createSingleCollWiriteData(BaseData.createButtonByte(code_value)), socket)) {
+							control.FZ_b4 = CMD_SUCCESS;
+						}
 					}
 					
 					if(control.FZ_b5 >= CMD_Start) {
@@ -160,8 +176,10 @@
 							code_value = CONTROL_ON;
 						}
 						basedata = new BaseData(Modbus_ComBase.WRITE_SINGLE_COIL, Modbus_ComBase.Button_Start_Addr+4, 1);						
-						control.FZ_b5 = CONTROL_OFF;
-						SocketComm(basedata.createSingleCollWiriteData(BaseData.createButtonByte(code_value)), socket);
+						control.FZ_b5 = CMD_FAIL;
+						if(SocketComm(basedata.createSingleCollWiriteData(BaseData.createButtonByte(code_value)), socket)) {
+							control.FZ_b5 = CMD_SUCCESS;
+						}
 					}
 					
 					if(control.FZ_b6 >= CMD_Start) {
@@ -171,8 +189,10 @@
 							code_value = CONTROL_ON;
 						}
 						basedata = new BaseData(Modbus_ComBase.WRITE_SINGLE_COIL, Modbus_ComBase.Button_Start_Addr+5, 1);						
-						control.FZ_b6 = CONTROL_OFF;
-						SocketComm(basedata.createSingleCollWiriteData(BaseData.createButtonByte(code_value)), socket);
+						control.FZ_b6 = CMD_FAIL;
+						if(SocketComm(basedata.createSingleCollWiriteData(BaseData.createButtonByte(code_value)), socket)) {
+							control.FZ_b6 = CMD_SUCCESS;
+						}
 					}
 					
 					if(control.FZ_b7 >= CMD_Start) {
@@ -182,8 +202,10 @@
 							code_value = CONTROL_ON;
 						}
 						basedata = new BaseData(Modbus_ComBase.WRITE_SINGLE_COIL, Modbus_ComBase.Button_Start_Addr+6, 1);						
-						control.FZ_b7 = CONTROL_OFF;
-						SocketComm(basedata.createSingleCollWiriteData(BaseData.createButtonByte(code_value)), socket);
+						control.FZ_b7 = CMD_FAIL;
+						if(SocketComm(basedata.createSingleCollWiriteData(BaseData.createButtonByte(code_value)), socket)) {
+							control.FZ_b7 = CMD_SUCCESS;
+						}
 					}
 					
 					if(control.FZ_b8 >= CMD_Start) {
@@ -193,8 +215,10 @@
 							code_value = CONTROL_ON;
 						}
 						basedata = new BaseData(Modbus_ComBase.WRITE_SINGLE_COIL, Modbus_ComBase.Button_Start_Addr+7, 1);						
-						control.FZ_b8 = CONTROL_OFF;
-						SocketComm(basedata.createSingleCollWiriteData(BaseData.createButtonByte(code_value)), socket);
+						control.FZ_b8 = CMD_FAIL;
+						if(SocketComm(basedata.createSingleCollWiriteData(BaseData.createButtonByte(code_value)), socket)) {
+							control.FZ_b8 = CMD_SUCCESS;
+						}
 					}
 					
 					if(control.FZ_b9 >= CMD_Start) {
@@ -204,8 +228,10 @@
 							code_value = CONTROL_ON;
 						}
 						basedata = new BaseData(Modbus_ComBase.WRITE_SINGLE_COIL, Modbus_ComBase.Button_Start_Addr+8, 1);						
-						control.FZ_b9 = CONTROL_OFF;
-						SocketComm(basedata.createSingleCollWiriteData(BaseData.createButtonByte(code_value)), socket);
+						control.FZ_b9 = CMD_FAIL;
+						if(SocketComm(basedata.createSingleCollWiriteData(BaseData.createButtonByte(code_value)), socket)){
+							control.FZ_b9 = CMD_SUCCESS;
+						}
 					}
 					
 					if(control.FZ_b10 >= CMD_Start) {
@@ -215,8 +241,10 @@
 							code_value = CONTROL_ON;
 						}
 						basedata = new BaseData(Modbus_ComBase.WRITE_SINGLE_COIL, Modbus_ComBase.Button_Start_Addr+9, 1);						
-						control.FZ_b10 = CONTROL_OFF;
-						SocketComm(basedata.createSingleCollWiriteData(BaseData.createButtonByte(code_value)), socket);
+						control.FZ_b10 = CMD_FAIL;
+						if(SocketComm(basedata.createSingleCollWiriteData(BaseData.createButtonByte(code_value)), socket)) {
+							control.FZ_b10 = CMD_FAIL;
+						}
 					}
 					
 					if(control.FZ_b11 >= CMD_Start) {
@@ -226,8 +254,10 @@
 							code_value = CONTROL_ON;
 						}
 						basedata = new BaseData(Modbus_ComBase.WRITE_SINGLE_COIL, Modbus_ComBase.Button_Start_Addr+10, 1);						
-						control.FZ_b11 = CONTROL_OFF;
-						SocketComm(basedata.createSingleCollWiriteData(BaseData.createButtonByte(code_value)), socket);
+						control.FZ_b11 = CMD_FAIL;
+						if(SocketComm(basedata.createSingleCollWiriteData(BaseData.createButtonByte(code_value)), socket)) {
+							control.FZ_b11 = CMD_SUCCESS;
+						}
 					}
 					
 					if(control.start_auto >= CMD_Start) {
@@ -237,8 +267,11 @@
 							code_value = CONTROL_ON;
 						}
 						basedata = new BaseData(Modbus_ComBase.WRITE_SINGLE_COIL, Modbus_ComBase.StartAutoLoad_Start_Addr, 1);						
-						control.start_auto = CONTROL_OFF;
-						SocketComm(basedata.createSingleCollWiriteData(BaseData.createButtonByte(code_value)), socket);
+						control.start_auto = CMD_FAIL;
+						if(SocketComm(basedata.createSingleCollWiriteData(BaseData.createButtonByte(code_value)), socket)) {
+							control.start_auto = CMD_FAIL;
+						}
+						
 					}
 					
 					if(control.stop_auto >= CMD_Start) {
@@ -248,8 +281,10 @@
 							code_value = CONTROL_ON;
 						}
 						basedata = new BaseData(Modbus_ComBase.WRITE_SINGLE_COIL, Modbus_ComBase.StopAutoLoad_Start_Addr, 1);						
-						control.stop_auto = CONTROL_OFF;
-						SocketComm(basedata.createSingleCollWiriteData(BaseData.createButtonByte(code_value)), socket);
+						control.stop_auto = CMD_FAIL;
+						if(SocketComm(basedata.createSingleCollWiriteData(BaseData.createButtonByte(code_value)), socket)) {
+							control.stop_auto = CMD_SUCCESS;
+						}
 					}
 					
 					if(control.sudden_crease >= CMD_Start) {
@@ -259,8 +294,10 @@
 							code_value = CONTROL_ON;
 						}
 						basedata = new BaseData(Modbus_ComBase.WRITE_SINGLE_COIL, Modbus_ComBase.SuddenCrease_Start_Addr, 1);						
-						control.sudden_crease = CONTROL_OFF;
-						SocketComm(basedata.createSingleCollWiriteData(BaseData.createButtonByte(code_value)), socket);
+						control.sudden_crease = CMD_FAIL;
+						if(SocketComm(basedata.createSingleCollWiriteData(BaseData.createButtonByte(code_value)), socket)) {
+							control.sudden_crease = CMD_SUCCESS;
+						}
 					}
 					
 					if(control.all_open >= CMD_Start) {
@@ -270,8 +307,10 @@
 							code_value = CONTROL_ON;
 						}
 						basedata = new BaseData(Modbus_ComBase.WRITE_SINGLE_COIL, Modbus_ComBase.AllOpenBreak_Start_Addr, 1);						
-						control.all_open = CONTROL_OFF;
-						SocketComm(basedata.createSingleCollWiriteData(BaseData.createButtonByte(code_value)), socket);
+						control.all_open = CMD_FAIL;
+						if(SocketComm(basedata.createSingleCollWiriteData(BaseData.createButtonByte(code_value)), socket)) {
+							control.all_open = CMD_FAIL;
+						}
 					}
 					
 					if(control.FZ_autostate1 >= CMD_Start) {
@@ -281,8 +320,10 @@
 						}
 						//FZ自动状态1
 						basedata = new BaseData(Modbus_ComBase.WRITE_SINGLE_COIL, Modbus_ComBase.AutoProcess1_Start_Addr, 1);						
-						SocketComm(basedata.createSingleCollWiriteData(BaseData.createButtonByte(code_value)), socket);
-						control.FZ_autostate1 = CONTROL_OFF;
+						control.FZ_autostate1 = CMD_FAIL;
+						if(SocketComm(basedata.createSingleCollWiriteData(BaseData.createButtonByte(code_value)), socket)) {
+							control.FZ_autostate1 = CMD_SUCCESS;
+						}
 					}
 					
 					if(control.FZ_autostate2 >= CMD_Start) {
@@ -292,8 +333,10 @@
 						}
 						//FZ自动状态2
 						basedata = new BaseData(Modbus_ComBase.WRITE_SINGLE_COIL, Modbus_ComBase.AutoProcess2_Start_Addr, 1);						
-						SocketComm(basedata.createSingleCollWiriteData(BaseData.createButtonByte(code_value)), socket);
-						control.FZ_autostate2 = CONTROL_OFF;
+						control.FZ_autostate2 = CMD_FAIL;
+						if(SocketComm(basedata.createSingleCollWiriteData(BaseData.createButtonByte(code_value)), socket)) {
+							control.FZ_autostate2 = CMD_SUCCESS;
+						}
 					}
 					
 					if(control.FZ_autostate3 >= CMD_Start) {
@@ -303,8 +346,10 @@
 							code_value = CONTROL_ON;
 						}
 						basedata = new BaseData(Modbus_ComBase.WRITE_SINGLE_COIL, Modbus_ComBase.AutoProcess3_Start_Addr, 1);						
-						control.FZ_autostate3 = CONTROL_OFF;
-						SocketComm(basedata.createSingleCollWiriteData(BaseData.createButtonByte(code_value)), socket);
+						control.FZ_autostate3 = CMD_FAIL;
+						if(SocketComm(basedata.createSingleCollWiriteData(BaseData.createButtonByte(code_value)), socket)) {
+							control.FZ_autostate3 = CMD_SUCCESS;
+						}
 					}
 					
 					if(control.FZ_autostate4 >= CMD_Start) {
@@ -314,8 +359,10 @@
 							code_value = CONTROL_ON;
 						}
 						basedata = new BaseData(Modbus_ComBase.WRITE_SINGLE_COIL, Modbus_ComBase.AutoProcess4_Start_Addr, 1);						
-						control.FZ_autostate4 = CONTROL_OFF;
-						SocketComm(basedata.createSingleCollWiriteData(BaseData.createButtonByte(code_value)), socket);
+						control.FZ_autostate4 = CMD_FAIL;
+						if(SocketComm(basedata.createSingleCollWiriteData(BaseData.createButtonByte(code_value)), socket)) {
+							control.FZ_autostate4 = CMD_SUCCESS;
+						}
 					}
 					
 					if(control.FZ_autostate5 >= CMD_Start) {
@@ -325,8 +372,10 @@
 							code_value = CONTROL_ON;
 						}
 						basedata = new BaseData(Modbus_ComBase.WRITE_SINGLE_COIL, Modbus_ComBase.AutoProcess5_Start_Addr, 1);						
-						control.FZ_autostate5 = CONTROL_OFF;
-						SocketComm(basedata.createSingleCollWiriteData(BaseData.createButtonByte(code_value)), socket);
+						control.FZ_autostate5 = CMD_FAIL;
+						if(SocketComm(basedata.createSingleCollWiriteData(BaseData.createButtonByte(code_value)), socket)) {
+							control.FZ_autostate5 = CMD_SUCCESS;
+						}
 					}
 					
 					if(control.local_control >= CMD_Start) {
@@ -336,8 +385,10 @@
 							code_value = CONTROL_ON;
 						}
 						basedata = new BaseData(Modbus_ComBase.WRITE_SINGLE_COIL, Modbus_ComBase.LocalControl_Start_Addr, 1);						
-						control.local_control = CONTROL_OFF;
-						SocketComm(basedata.createSingleCollWiriteData(BaseData.createButtonByte(code_value)), socket);
+						control.local_control = CMD_FAIL;
+						if(SocketComm(basedata.createSingleCollWiriteData(BaseData.createButtonByte(code_value)), socket)) {
+							control.local_control = CMD_SUCCESS;
+						}
 					}
 					
 					if(control.back_control >= CMD_Start) {
@@ -347,8 +398,10 @@
 							code_value = CONTROL_ON;
 						}
 						basedata = new BaseData(Modbus_ComBase.WRITE_SINGLE_COIL, Modbus_ComBase.BackControl_Start_Addr, 1);						
-						control.back_control = CONTROL_OFF;
-						SocketComm(basedata.createSingleCollWiriteData(BaseData.createButtonByte(code_value)), socket);
+						control.back_control = CMD_FAIL;
+						if(SocketComm(basedata.createSingleCollWiriteData(BaseData.createButtonByte(code_value)), socket)) {
+							control.back_control = CMD_SUCCESS;
+						}
 					}
 					
 					if(control.central_control >= CMD_Start) {
@@ -358,8 +411,10 @@
 							code_value = CONTROL_ON;
 						}
 						basedata = new BaseData(Modbus_ComBase.WRITE_SINGLE_COIL, Modbus_ComBase.CenterControl_Start_Addr, 1);						
-						control.central_control = CONTROL_OFF;
-						SocketComm(basedata.createSingleCollWiriteData(BaseData.createButtonByte(code_value)), socket);
+						control.central_control = CMD_FAIL;
+						if(SocketComm(basedata.createSingleCollWiriteData(BaseData.createButtonByte(code_value)), socket)) {
+							control.central_control = CMD_SUCCESS;
+						}
 					}
 					
 					if(control.inter_volume_M200 >= CMD_Start) {
@@ -369,8 +424,10 @@
 							code_value = CONTROL_ON;
 						}
 						basedata = new BaseData(Modbus_ComBase.WRITE_SINGLE_COIL, Modbus_ComBase.Middle_Start_Addr, 1);						
-						control.inter_volume_M200 = CONTROL_OFF;
-						SocketComm(basedata.createSingleCollWiriteData(BaseData.createButtonByte(code_value)), socket);
+						control.inter_volume_M200 = CMD_FAIL;
+						if(SocketComm(basedata.createSingleCollWiriteData(BaseData.createButtonByte(code_value)), socket)) {
+							control.inter_volume_M200 = CMD_SUCCESS;
+						}
 					}
 					
 					if(control.fan_button >= CMD_Start) {
@@ -380,15 +437,40 @@
 							code_value = CONTROL_ON;
 						}
 						basedata = new BaseData(Modbus_ComBase.WRITE_SINGLE_COIL, Modbus_ComBase.Fan_Button_Start_Addr, 1);						
-						control.fan_button = CONTROL_OFF;
-						SocketComm(basedata.createSingleCollWiriteData(BaseData.createButtonByte(code_value)), socket);
+						control.fan_button = CMD_FAIL;
+						if(SocketComm(basedata.createSingleCollWiriteData(BaseData.createButtonByte(code_value)), socket)) {
+							control.fan_button = CMD_SUCCESS;
+						}
 					}
 					
 					if(control.set_power >= CMD_Start) {
 						//设定功率
-						basedata = new BaseData(Modbus_ComBase.WRITE_MULTIPLE_REGISTER, Modbus_ComBase.SetPower_Start_Addr, 1);						
-						control.set_power = CONTROL_OFF;
-						SocketComm(basedata.createWiriteData(BaseData.createFloatByte(control.set_power)), socket);
+						int addr = Modbus_ComBase.SetPower_Start_Addr;
+						if(dyna_inf.getFZ_button_num() ==11) {
+							addr = 4;
+							basedata = new BaseData(Modbus_ComBase.WRITE_MULTIPLE_REGISTER, addr, 1);						
+							if(SocketComm(basedata.createWiriteData(BaseData.createIntByte((int)control.set_power)), socket)) {
+								control.set_power = CMD_SUCCESS;
+							}
+						}else {							
+							basedata = new BaseData(Modbus_ComBase.WRITE_MULTIPLE_REGISTER, addr, 2);						
+							if(SocketComm(basedata.createWiriteData(BaseData.createFloatByte(control.set_power)), socket)) {
+								control.set_power = CMD_SUCCESS;
+							}
+						}
+						control.set_power = CMD_FAIL;
+					}
+					if(control.interval_time >= CMD_Start) {
+						//间隔时间
+						int addr = Modbus_ComBase.InterTime_Start_Addr;
+						if(dyna_inf.getFZ_button_num() == 11) {
+							addr = 6;
+						}
+						basedata = new BaseData(Modbus_ComBase.WRITE_MULTIPLE_REGISTER, addr, 1);						
+						if(SocketComm(basedata.createWiriteData(BaseData.createIntByte(control.interval_time)), socket)) {
+							control.interval_time = CMD_SUCCESS;
+						}
+						control.interval_time = CMD_FAIL;
 					}
 					//System.out.println(control);
 					PowerArk_ServerSocket_Thread_SQL.updateDynamicload_ControlTable(conn_pool, control);					
@@ -404,7 +486,7 @@
 				if(run_count > 8999999) {
 					run_count = 0;
 				}
-				Thread.sleep(50);
+				Thread.sleep(10);
 			} catch (Exception e) {
 				//e.printStackTrace();
 			}
@@ -414,14 +496,18 @@
 	public boolean SocketComm(byte[] bytedata,Socket socket) throws InterruptedException
     { 
 		boolean res_t = false;
+		InputStream in = null;
+		OutputStream out = null;
 		try
 		{
-			reConnectClient();
+			//reConnectClient();
+			socket = new Socket();
+			socket.connect(new InetSocketAddress(dev_ip, PowerArk_Port), 5000);
+			socket.setSoTimeout(3000);
 	        if(socket != null)
 	        {
-	        	socket.setSoTimeout(3000);
-	        	InputStream in = socket.getInputStream();
-		        OutputStream out = socket.getOutputStream();
+	        	in = socket.getInputStream();
+		        out = socket.getOutputStream();
 		        //----------------- clear rx buff for tcp resend packet ----------------//
 		        byte[] rx_buf_t = new byte[1024];
 		        //----------------------------------------------------------------------//
@@ -429,10 +515,8 @@
 		        bytebuffer_for_socket_RX.clear();
 		        //--------------------- socket write -----------------------------------//
 		        //byte[] b = makeCommBuf(cmd, bf);
-		        System.err.println("发送数据:"+ComFn.bytesToHexString(bytedata, bytedata.length));
+		        //System.err.println("发送数据:"+ComFn.bytesToHexString(bytedata, bytedata.length));
 		        Date d1 = new Date();
-		      
-		        
 		        int rx_read_time_out = 0; 
 		        //int rx_len = 0;
 		        //System.err.println("TX: " + ComFn.bytesToHexString(b, b.length));
@@ -460,12 +544,13 @@
 		        bytebuffer_for_socket_RX.flip();
 		        Date d2 = new Date();
 		        long comm_tms = (d2.getTime() - d1.getTime());
-		        if(comm_tms < 200) {
-		        	Thread.sleep(200 - comm_tms);
+		        if(comm_tms < 50) {
+		        	Thread.sleep(50 - comm_tms);
 		        }
+		        //System.err.println("通讯时长:" + comm_tms);
 		        byte[] buffer = new byte[bytebuffer_for_socket_RX.limit()];
 		        bytebuffer_for_socket_RX.get(buffer);
-		        System.err.println("接收数据"+ComFn.bytesToHexString(buffer, buffer.length));       
+		        //System.err.println("接收数据"+ComFn.bytesToHexString(buffer, buffer.length));       
 		        if(true == getDataFromCommBuf(buffer)) {
 		        	connCount ++;
 		        	res_t = true;
@@ -479,7 +564,27 @@
 	        errCount++;
 	        connerrCount++;
 	    } finally {
-	    	
+	    	if(in != null) {
+	    		try {
+					in.close();
+				} catch (IOException e) {
+					e.printStackTrace();
+				}
+	    	}
+	    	if(out != null) {
+	    		try {
+					out.close();
+				} catch (IOException e) {
+					e.printStackTrace();
+				}
+	    	}
+	    	if(socket != null) {
+	    		try {
+					socket.close();
+				} catch (IOException e) {
+					e.printStackTrace();
+				}
+	    	}
 	    }		
 		return res_t;
     }
@@ -497,7 +602,7 @@
         		//读取线圈数据成功[4013-4030]
         		if(baseData.addrstart == Modbus_ComBase.OverTmp_Start_Addr) {
         			if(dyna_inf.putReadIBackByteBuffer(bf)) {
-        				System.out.println("读取I区数据成功4013-4030");
+        				//System.out.println("读取I区数据成功4013-4030");
         				issuccess = true;
         			} 			
         		}
@@ -505,7 +610,7 @@
         		//读取M区状态成功[01 - 12]
         		if(baseData.addrstart == Modbus_ComBase.AutoProcess1_Start_Addr) {
         			if(dyna_inf.putReadMBackByteBuffer(bf)) {
-        				System.out.println("读取M区数据成功01-12");
+        				//System.out.println("读取M区数据成功01-12");
         				issuccess = true;
         			} 
         		}
@@ -514,7 +619,7 @@
         		if(baseData.addrstart == Modbus_ComBase.ButtonOutPut_Start_Addr) {
         			//System.out.println("%%%%%%%%%%%%%%%%%%%%");
         			if(dyna_inf.putReadQBackByteBuffer(bf)) {
-        				System.out.println("读取Q区数据成功8000-8013");
+        				//System.out.println("读取Q区数据成功8000-8013");
         				issuccess = true;
         			} 
         		}
@@ -522,7 +627,7 @@
         		//读取M区各个控制的状态[0040-0160]
         		if(baseData.addrstart == Modbus_ComBase.LocalControl_Start_Addr) {
         			if(dyna_inf.putReadMControlStateByteBuffer(bf)) {
-        				System.out.println("读取M区数据成功0040-0160");
+        				//System.out.println("读取M区数据成功0040-0160");
         				issuccess = true;
         			} 
         		}
@@ -530,18 +635,27 @@
         		
         		
         	}else if(baseData.funcode == Modbus_ComBase.READ_HOLDING_REGISTER) {
-        		if(baseData.addrstart == Modbus_ComBase.ActualSetPower_Start_Addr) {
+        		if(baseData.addrstart == Modbus_ComBase.ActualSetPower_Start_Addr ) {
         			//读取V区各个数据状态[02-18]
         			if(dyna_inf.putReadVBackByteBuffer(bf)) {
-        				System.out.println("读取V区数据成功02-18");
+        				//System.out.println("读取V区数据成功02-18");
+        				issuccess = true;
+        			}
+        		}else if(baseData.addrstart == Modbus_ComBase.ActualSetPower_Start_Addr-2) {
+        			//读取V区各个数据状态[01-8]
+        			if(dyna_inf.putReadVLongBackByteBuffer(bf)) {
+        				//System.out.println("读取V区数据成功01-08");
         				issuccess = true;
         			}
         		}
         		
+        	}else if(baseData.funcode == Modbus_ComBase.WRITE_SINGLE_COIL) {
+        		//单点写入成功
+        		if(baseData.funcode == BaseData.SINGLEWRITE_BYTECOUNT) {
+        			issuccess = true;
+        			//System.out.println("写入成功");
+        		}        		
         	}
-        	
-        	
-        	
         }       
 		return issuccess;
 	}
@@ -553,12 +667,12 @@
 	public void reConnectClient() {
 		try {
 			if(socket == null || socket.isClosed() || errCount > 4) {
-				if(socket != null) {
+				/*if(socket != null) {
 					socket.close();
-				}
+				}*/
 				socket = new Socket();
 				socket.connect(new InetSocketAddress(dev_ip, PowerArk_Port), 5000);
-				socket.setSoTimeout(5000);
+				socket.setSoTimeout(3000);
 				errCount = 0;
 			}
 		} catch (SocketException e) {

--
Gitblit v1.9.1