V3.332 edit lijun at 2025-01-14
1.送检要求-uekyID需从现场实际UKEYID绑定避免多个设备共用同一个ID
6个文件已修改
78 ■■■■ 已修改文件
iec_61850_forFoShanAES/src/com/battdata_rt/BattData_RT.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
iec_61850_forFoShanAES/src/com/battdata_rt/BattData_RT_Array.java 15 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
iec_61850_forFoShanAES/src/com/dec/fbs9100/BTS61850_Task_Thread_SQL.java 25 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
iec_61850_forFoShanAES/src/com/dec/fbs9100/BTS_61850_SocketClient.java 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
iec_61850_forFoShanAES/src/com/dec/fbs9100/FBS9100_StatAndParam.java 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
iec_61850_forFoShanAES/src/com/version_inf/version_inf.txt 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
iec_61850_forFoShanAES/src/com/battdata_rt/BattData_RT.java
@@ -46,6 +46,7 @@
    public float MonStdCap;
    
    public String PublicKeyY;            //ukey
    public String ukeyId;                //ukeyID
    
    private boolean StoreBattRes_DataEn = false;
    private boolean StoreDataBusy = false;
iec_61850_forFoShanAES/src/com/battdata_rt/BattData_RT_Array.java
@@ -83,7 +83,7 @@
            sql.sqlMysqlUseDB(Sql_Mysql.DB_BATT_INF);
            
            String sql_str = "SELECT DISTINCT "
                            + " FBSDeviceId,FBSDeviceIp,BattGroupName6,GroupIndexInFBSDevice,FBSDeviceName,"
                            + " FBSDeviceId,FBSDeviceIp,BattGroupName6,GroupIndexInFBSDevice,FBSDeviceName,KeyID,SerialNumber,"
                            + " BattGroupId,BattGroupNum,MonCount,BattFloatCurrent,FloatVolLevel,MonCapStd,MonVolStd,PublicKeyY"
                            + " FROM " + Sql_Mysql.BattInf_Table
                            + " ORDER BY BattGroupId ASC";
@@ -104,6 +104,8 @@
                float float_vol_lev = res.getFloat("FloatVolLevel");
                float float_curr_lev = res.getFloat("BattFloatCurrent");
                int GroupIndexInFBSDevice = res.getInt("GroupIndexInFBSDevice");
                String ukeyId = res.getString("KeyID").trim();            //ukeyID
                if(GroupIndexInFBSDevice > 3) {
                    GroupIndexInFBSDevice = 3;
                }
@@ -137,7 +139,13 @@
                                    brt.getBattFloatVolLev(), brt.getBattFloatCurrLev(),
                                    brt.getDevRegCode());
                        }
                        brt.PublicKeyY = res.getString("PublicKeyY");            //ukey鏄惁鏈夋洿鏂�
                        if(!ukeyId.equals(brt.ukeyId)) {
                            //ukeyID 更新
                            brt.ukeyId = ukeyId;
                            param_changed = true;
                        }
                        brt.PublicKeyY = res.getString("PublicKeyY");
                        batt_group_exist = true;
                        break;
                    }
@@ -175,6 +183,9 @@
                    rtdata.MonStdVol = res.getFloat("MonVolStd");
                    rtdata.setBattFloatVolCurrLevel(res.getFloat("FloatVolLevel"), res.getFloat("BattFloatCurrent"));
                    rtdata.PublicKeyY = res.getString("PublicKeyY");
                    rtdata.ukeyId = res.getString("KeyID").trim();            //ukeyID
                    for(int mn=0; mn<rtdata.MonCount; mn++) {
                        MonVolData data = new MonVolData(0, 0, auto_cid++);
                        rtdata.al_MonVol.add(data);
iec_61850_forFoShanAES/src/com/dec/fbs9100/BTS61850_Task_Thread_SQL.java
@@ -122,7 +122,7 @@
     */
    public static void UpdateBattInfTable(MysqlConnPool m_ConnPool,FBS9100_StatAndParam param) {
        String sql_str = " UPDATE " + Sql_Mysql.BattInf_Table + ""
                + " SET PublicKeyX = '"+ param.publicKeyX +"',KeyID = '" + param.keyID + "',SerialNumber = '"+param.serialNumber+"'"
                + " SET PublicKeyX = '" + param.publicKeyX /* +"',KeyID = '" + param.keyID */ + "',SerialNumber = '"+param.serialNumber+"'"
                + " WHERE FBSDeviceId = " + param.dev_id;
        
        Sql_Mysql sql = new Sql_Mysql(m_ConnPool);
@@ -134,4 +134,27 @@
            sql.close_con();
        }
    }
    public static String queryDeviceUkeyID(MysqlConnPool m_ConnPool, int dev_id) {
        String ukeyID = "";
        String sql_str = "SELECT KeyID FROM " + Sql_Mysql.BattInf_Table+ " WHERE FBSDeviceId = " + dev_id + " LIMIT 1";
        Sql_Mysql sql = new Sql_Mysql(m_ConnPool);
        ResultSet res = null;
        try {
            res = sql.sqlMysqlQuery(sql_str);
            if(res.next()) {
                ukeyID = res.getString("KeyID").trim();
            }
        } catch (SQLException e) {
            e.printStackTrace();
        } finally {
            sql.close_con();
        }
        return ukeyID;
    }
    public static void main(String[] args) {
        MysqlConnPool pool = new MysqlConnPool("192.168.10.79",3360,10);
        System.out.println(queryDeviceUkeyID(pool,618500001));
    }
}
iec_61850_forFoShanAES/src/com/dec/fbs9100/BTS_61850_SocketClient.java
@@ -125,6 +125,9 @@
                MonStdCap = AL_RTdata.getItem(n).MonStdCap;
                MonVolStd = AL_RTdata.getItem(n).MonStdVol;
                FBSDeviceName = AL_RTdata.getItem(n).FBSDeviceName;
                //ukey来源
                m_StatAndParam.keyID = AL_RTdata.getItem(n).ukeyId;
                //FBSDeviceIp = AL_RTdata.getItem(n).FBSDeviceIp;
                
                //m_StatAndParam.Crc32publicKeyY = AL_RTdata.getItem(n).PublicKeyY;                        //计算公钥Y
@@ -191,12 +194,16 @@
            FBS9100_Task_Thread_SQL.queryBTS61850OffLineyhPlanOnRam(m_ConnPool, m_StatAndParam);
            //if(parseDevVersion(m_StatAndParam.m_DevVersion) >= 3.0) {
                //当协转版本不低于于3.0时需要检测UKEY                
                //m_StatAndParam.keyID = readStringNodeData(FBSDeviceName + "/ncdGGIO1.Key_ID.d", Fc.DC);                    //ukeyID字符串
                //m_StatAndParam.serialNumber = readStringNodeData(FBSDeviceName + "/ncdGGIO1.Bts_ID.d", Fc.DC);            //唯一序列号        btsid
                //m_StatAndParam.publicKeyX = readStringNodeData(FBSDeviceName + "/ncdGGIO1.keyNum.d", Fc.DC);                //ykey字符串
                m_StatAndParam.keyID = readStringNodeData(FBSDeviceName+"/btgGGIO1.ukeyID.d",Fc.DC);
                m_StatAndParam.serialNumber = readStringNodeData(FBSDeviceName+"/btgGGIO1.Bts_ID.d",Fc.DC);                //唯一序列号
                BTS61850_Task_Thread_SQL.UpdateBattInfTable(m_ConnPool, m_StatAndParam);        //更新当前参数
                //m_StatAndParam.keyID = readStringNodeData(FBSDeviceName + "/ncdGGIO1.Key_ID.d", Fc.DC);            //ukeyID字符串
                //m_StatAndParam.serialNumber = readStringNodeData(FBSDeviceName + "/ncdGGIO1.Bts_ID.d", Fc.DC);    //唯一序列号        btsid
                //m_StatAndParam.publicKeyX = readStringNodeData(FBSDeviceName + "/ncdGGIO1.keyNum.d", Fc.DC);        //ykey字符串
                /**
                 * 送检要求设备绑定的ukey 不能用其他设备的ukey遥调遥控
                 */
                //m_StatAndParam.keyID = readStringNodeData(FBSDeviceName+"/btgGGIO1.ukeyID.d",Fc.DC);                //ukeyID字符串
                m_StatAndParam.serialNumber = readStringNodeData(FBSDeviceName+"/btgGGIO1.Bts_ID.d",Fc.DC);            //唯一序列号
                BTS61850_Task_Thread_SQL.UpdateBattInfTable(m_ConnPool, m_StatAndParam);                            //更新当前参数
            //}
            
            
@@ -253,7 +260,8 @@
                                
                                FBS9100_Task_Thread_SQL.updateFbs9100SetParamBydev_id(m_ConnPool, m_StatAndParam);
                                //读取一次ukey信息
                                m_StatAndParam.keyID = readStringNodeData(FBSDeviceName+"/btgGGIO1.ukeyID.d",Fc.DC);
                                //m_StatAndParam.keyID = readStringNodeData(FBSDeviceName+"/btgGGIO1.ukeyID.d",Fc.DC);
                                m_StatAndParam.keyID = BTS61850_Task_Thread_SQL.queryDeviceUkeyID(m_ConnPool,m_StatAndParam.dev_id);
                                m_StatAndParam.serialNumber = readStringNodeData(FBSDeviceName+"/btgGGIO1.Bts_ID.d",Fc.DC);                //唯一序列号
                            }
                        } else if (FBS9100_ComBase.CMD_SetIp == m_FBS_DiscParam.op_cmd) {
iec_61850_forFoShanAES/src/com/dec/fbs9100/FBS9100_StatAndParam.java
@@ -19,15 +19,15 @@
    public FBS9100_SysParam m_FBS_SysParam = null;
    public BTS61850_OffLineYHPlan bts61850_OffLineYHPlan = null;
    
    public FBS9100_batt_testparam test_Param = null;    //当前设置成功的充放电参数
    public FBS9100_batt_testparam test_Param = null;    //上一次测试参数
    
    public String m_DevVersion = "";
    
    public String publicKeyX="";            //閸忣剟鎸淴
    public long Crc32publicKeyY;            //閸忣剟鎸淵
    public String publicKeyY;                //
    public String keyID = "";                //
    public String serialNumber = "";        //閸烆垯绔存惔蹇撳灙閸欙拷
    public String publicKeyX="";            //UKEYX
    public long Crc32publicKeyY;            //
    public String publicKeyY;                //UKEYY
    public String keyID = "";                //UKEYID
    public String serialNumber = "";        //BTSID
    
    public int CRC = 0;
    
iec_61850_forFoShanAES/src/com/version_inf/version_inf.txt
@@ -10,6 +10,9 @@
    
    
    遵义紫晶61850单组-使用
V3.332 edit lijun at 2025-01-14
    1.送检要求-uekyID需从现场实际UKEYID绑定避免多个设备共用同一个ID
V3.331 edit lijun at 2024-01-24
    1.远程重启设备时判断ukey校验返回结果判断操作是否成功