whyclj
2020-10-15 95c0c2e94d390650d3954c30c6a7c805fe9c714c
src/com/data/PowerArk_SocketCliet_Thread.java
@@ -62,12 +62,12 @@
         try {
            /******************************************  读状态   **********************************************/
            {
               /*if(run_count % 2 == 0) {
               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);
                  }
               }
               
@@ -76,7 +76,7 @@
                  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);
                  }
               }
               
@@ -85,7 +85,7 @@
                  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);
                     //PowerArk_ServerSocket_Thread_SQL.updateDynamicload_ButtonTable(conn_pool, button);
                  }
               }
               
@@ -94,18 +94,23 @@
                  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 % 2 ==0 ) {
                  int startaddr = Modbus_ComBase.ActualSetPower_Start_Addr;
                  //读取V区各个按钮状态  02-18
                  basedata = new BaseData(Modbus_ComBase.READ_HOLDING_REGISTER, Modbus_ComBase.LocalControl_Start_Addr, 17);
                  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);
            }
            
            /******************************************  д״̬   **********************************************/
@@ -440,9 +445,32 @@
               
               if(control.set_power >= CMD_Start) {
                  //设定功率
                  basedata = new BaseData(Modbus_ComBase.WRITE_MULTIPLE_REGISTER, Modbus_ComBase.SetPower_Start_Addr, 1);
                  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;
                  SocketComm(basedata.createWiriteData(BaseData.createFloatByte(control.set_power)), socket);
               }
               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);               
@@ -487,7 +515,7 @@
              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;
@@ -522,7 +550,7 @@
              //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;
@@ -574,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;
                 }          
              }
@@ -582,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;
                 } 
              }
@@ -591,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;
                 } 
              }
@@ -599,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;
                 } 
              }
@@ -607,10 +635,16 @@
              
              
           }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;
                 }
              }
@@ -619,7 +653,7 @@
              //单点写入成功
              if(baseData.funcode == BaseData.SINGLEWRITE_BYTECOUNT) {
                 issuccess = true;
                 System.out.println("写入成功");
                 //System.out.println("写入成功");
              }              
           }
        }