package com.concentrator;
|
|
import com.util.ComBase;
|
|
import java.nio.ByteBuffer;
|
|
/**
|
* 汇集器参数
|
*/
|
public class Concentrator_Param {
|
public final static int REG_COUNT = 17; //寄存器数量
|
|
public int dev_addr; //设备地址
|
public int first_monCount; //第一路单体数目
|
public int second_monCount; //第二路单体数目
|
public int thrid_monCount; //第三路单体数目
|
public int fourth_monCount; //第四路单体数目
|
public int fifth_monCount; //第五路单体数目
|
public int curr_range; //电流钳量程
|
public double float_currLimit; //浮充电流门限(0.1)
|
public int backup1; //备份1
|
public int auto_resTestCount; //内阻自动测试周期(小时)
|
public int backup2; //备份2
|
public int backup3; //备份3
|
public int monStdCap; //标称容量(AH)
|
public int backup4; //备份4
|
public int backup5; //备份5
|
public int backup6; //备份6
|
public int backup7; //备份7
|
|
/**
|
* 克隆当前对象
|
* @param param
|
*/
|
public void clone(Concentrator_Param param){
|
this.dev_addr = param.dev_addr; //设备地址
|
this.first_monCount = param.first_monCount; //第一路单体数目
|
this.second_monCount = param.second_monCount; //第二路单体数目
|
this.thrid_monCount = param.thrid_monCount; //第三路单体数目
|
this.fourth_monCount = param.fourth_monCount; //第四路单体数目
|
this.fifth_monCount = param.fifth_monCount; //第五路单体数目
|
this.curr_range = param.curr_range; //电流钳量程
|
this.float_currLimit = param.float_currLimit; //浮充电流门限(0.1)
|
this.backup1 = param.backup1; //备份1
|
this.auto_resTestCount = param.auto_resTestCount; //内阻自动测试周期(小时)
|
this.backup2 = param.backup2; //备份2
|
this.backup3 = param.backup3; //备份3
|
this.monStdCap = param.monStdCap; //标称容量(AH)
|
this.backup4 = param.backup4; //备份4
|
this.backup5 = param.backup5; //备份5
|
this.backup6 = param.backup6; //备份6
|
this.backup7 = param.backup7; //备份7
|
}
|
|
/**
|
* 获取读取汇集参数时的数据
|
* @return
|
*/
|
public ByteBuffer getReadByteBuffer(){
|
ByteBuffer buffer = ByteBuffer.allocate(2);
|
buffer.putShort(ComBase.changeIntToShort(REG_COUNT));
|
buffer.flip();
|
return buffer;
|
}
|
|
/**
|
* 获取设置时的数据
|
* @return
|
*/
|
public ByteBuffer getWriteByteBuffer(){
|
ByteBuffer buffer = ByteBuffer.allocate(REG_COUNT*2+3);
|
buffer.putShort(ComBase.changeIntToShort(REG_COUNT));
|
buffer.put(ComBase.changeIntToByte(REG_COUNT));
|
buffer.putShort(ComBase.changeIntToShort(dev_addr)); //设备地址
|
buffer.putShort(ComBase.changeIntToShort(first_monCount)); //第一路单体数目
|
buffer.putShort(ComBase.changeIntToShort(second_monCount)); //第二路单体数目
|
buffer.putShort(ComBase.changeIntToShort(thrid_monCount)); //第三路单体数目
|
buffer.putShort(ComBase.changeIntToShort(fourth_monCount)); //第四路单体数目
|
buffer.putShort(ComBase.changeIntToShort(fifth_monCount)); //第五路单体数目
|
buffer.putShort(ComBase.changeIntToShort(curr_range)); //电流钳量程
|
buffer.putShort(ComBase.changeIntToShort((int)(float_currLimit*10))); //浮充电流门限(0.1)
|
buffer.putShort(ComBase.changeIntToShort(backup1)); //备份1
|
buffer.putShort(ComBase.changeIntToShort(auto_resTestCount)); //内阻自动测试周期(小时)
|
buffer.putShort(ComBase.changeIntToShort(backup2)); //备份2
|
buffer.putShort(ComBase.changeIntToShort(backup3)); //备份3
|
buffer.putShort(ComBase.changeIntToShort(monStdCap)); //标称容量(AH)
|
buffer.putShort(ComBase.changeIntToShort(backup4)); //备份4
|
buffer.putShort(ComBase.changeIntToShort(backup5)); //备份5
|
buffer.putShort(ComBase.changeIntToShort(backup6)); //备份6
|
buffer.putShort(ComBase.changeIntToShort(backup7)); //备份7
|
buffer.flip();
|
return buffer;
|
}
|
|
/**
|
* 解析读取过来的汇集器参数
|
* @param bf
|
* @return
|
*/
|
public boolean putByteBuffer(ByteBuffer bf) {
|
if(bf.limit() < REG_COUNT*2) {
|
return false;
|
}
|
ByteBuffer tmpbuf = bf;
|
tmpbuf.position(0);
|
|
dev_addr = ComBase.changeShortToByte(tmpbuf.getShort()); //设备地址
|
first_monCount = ComBase.changeShortToByte(tmpbuf.getShort()); //第一路单体数目
|
second_monCount = ComBase.changeShortToByte(tmpbuf.getShort()); //第二路单体数目
|
thrid_monCount = ComBase.changeShortToByte(tmpbuf.getShort()); //第三路单体数目
|
fourth_monCount = ComBase.changeShortToByte(tmpbuf.getShort()); //第四路单体数目
|
fifth_monCount = ComBase.changeShortToByte(tmpbuf.getShort()); //第五路单体数目
|
curr_range = ComBase.changeShortToByte(tmpbuf.getShort()); //电流钳量程
|
float_currLimit = ((double)ComBase.changeShortToByte(tmpbuf.getShort()))/10; //浮充电流门限(0.1)
|
backup1 = ComBase.changeShortToByte(tmpbuf.getShort()); //备份1
|
auto_resTestCount = ComBase.changeShortToByte(tmpbuf.getShort()); //内阻自动测试周期(小时)
|
backup2 = ComBase.changeShortToByte(tmpbuf.getShort()); //备份2
|
backup3 = ComBase.changeShortToByte(tmpbuf.getShort()); //备份3
|
monStdCap = ComBase.changeShortToByte(tmpbuf.getShort()); //标称容量(AH)
|
backup4 = ComBase.changeShortToByte(tmpbuf.getShort()); //备份4
|
backup5 = ComBase.changeShortToByte(tmpbuf.getShort()); //备份5
|
backup6 = ComBase.changeShortToByte(tmpbuf.getShort()); //备份6
|
backup7 = ComBase.changeShortToByte(tmpbuf.getShort()); //备份7
|
|
return true;
|
}
|
|
//计算总的单体数目
|
public int countMonCount(){
|
//return this.first_monCount+second_monCount+thrid_monCount+fourth_monCount+fifth_monCount;
|
return 50;
|
}
|
|
}
|