whyclj
2020-10-15 95c0c2e94d390650d3954c30c6a7c805fe9c714c
src/com/data/PowerArk_SocketCliet_Thread.java
@@ -99,8 +99,12 @@
               }
               
               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.ActualSetPower_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区状态成功 
                  }
@@ -441,15 +445,28 @@
               
               if(control.set_power >= CMD_Start) {
                  //设定功率
                  basedata = new BaseData(Modbus_ComBase.WRITE_MULTIPLE_REGISTER, Modbus_ComBase.SetPower_Start_Addr, 2);
                  if(SocketComm(basedata.createWiriteData(BaseData.createFloatByte(control.set_power)), socket)) {
                     control.set_power = CMD_SUCCESS;
                  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) {
                  //间隔时间
                  basedata = new BaseData(Modbus_ComBase.WRITE_MULTIPLE_REGISTER, Modbus_ComBase.InterTime_Start_Addr, 1);
                  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;
                  }
@@ -498,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;
@@ -533,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;
@@ -618,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;
                 }
              }
@@ -630,7 +653,7 @@
              //单点写入成功
              if(baseData.funcode == BaseData.SINGLEWRITE_BYTECOUNT) {
                 issuccess = true;
                 System.out.println("写入成功");
                 //System.out.println("写入成功");
              }              
           }
        }