如何在积雨度/Java中直接设置测量的显示名称
我想将如何在积雨度/Java中直接设置测量的显示名称,java,cumulocity,Java,Cumulocity,我想将MeasurementValues发送到Cumulocity并使用给定的工具可视化数据。我的软件发送的值是在JSON中指定的,并且在编译后必须更改 我的问题: JavaCumulocity框架不允许我指定将在其网站上显示的度量片段的名称。名称始终是我用来创建度量的POJO的类名。因为我想发送许多不同的变量(这些变量也会随着时间的推移而改变),所以事先创建许多POJO类是不可行的 我的问题: 如何使用JavaCumulocity框架,从一个类发送测量值,在Cumulocity中以不同的名称显
MeasurementValues
发送到Cumulocity
并使用给定的工具可视化数据。我的软件发送的值是在JSON中指定的,并且在编译后必须更改
我的问题:
JavaCumulocity
框架不允许我指定将在其网站上显示的度量片段的名称。名称始终是我用来创建度量的POJO
的类名。因为我想发送许多不同的变量(这些变量也会随着时间的推移而改变),所以事先创建许多POJO类是不可行的
我的问题:
如何使用JavaCumulocity
框架,从一个类发送测量值,在Cumulocity
中以不同的名称显示不同的值
到目前为止我所尝试的:
- 没有允许我更改displayname的度量属性
- 无法在运行时更改类名(已编译^^)
- Cumulocity Java框架不允许我直接访问该属性
package c8y.tinkerforge.measurements;
import java.math.BigDecimal;
import org.svenson.AbstractDynamicProperties;
import org.svenson.JSONProperty;
import com.cumulocity.model.measurement.MeasurementValue;
import com.cumulocity.model.util.Alias;
@Alias("c8y_Acceleration")
public class AccelerationCombinedMeasurement extends AbstractDynamicProperties {
private static final long serialVersionUID = -2491579656609755745L;
public static final String DEFAULT_UNIT = "g";
private final String unit;
private MeasurementValue accelerationX;
private MeasurementValue accelerationY;
private MeasurementValue accelerationZ;
public AccelerationCombinedMeasurement(double accelerationX, double accelerationY, double accelerationZ,
final String unit) {
this.unit = unit;
this.accelerationX = new MeasurementValue(new BigDecimal(accelerationX), unit);
this.accelerationY = new MeasurementValue(new BigDecimal(accelerationY), unit);
this.accelerationZ = new MeasurementValue(new BigDecimal(accelerationZ), unit);
}
@JSONProperty("accelerationX")
public MeasurementValue getAccelerationX() {
return accelerationX;
}
public void setAccelerationX(double accelerationX) {
this.accelerationX = new MeasurementValue(new BigDecimal(accelerationX), unit);
}
@JSONProperty("accelerationY")
public MeasurementValue getAccelerationY() {
return accelerationY;
}
public void setAccelerationY(double accelerationY) {
this.accelerationY = new MeasurementValue(new BigDecimal(accelerationY), unit);
}
@JSONProperty("accelerationZ")
public MeasurementValue getAccelerationZ() {
return accelerationZ;
}
public void setAccelerationZ(double accelerationZ) {
this.accelerationZ = new MeasurementValue(new BigDecimal(accelerationZ), unit);
}
@Override
public int hashCode() {
final int prime = 31;
int result = 1;
result = prime * result + ((accelerationX == null) ? 0 : accelerationX.hashCode());
result = prime * result + ((accelerationY == null) ? 0 : accelerationY.hashCode());
result = prime * result + ((accelerationZ == null) ? 0 : accelerationZ.hashCode());
return result;
}
@Override
public boolean equals(Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
AccelerationCombinedMeasurement other = (AccelerationCombinedMeasurement) obj;
if (accelerationX == null) {
if (other.accelerationX != null)
return false;
} else if (!accelerationX.equals(other.accelerationX))
return false;
if (accelerationY == null) {
if (other.accelerationY != null)
return false;
} else if (!accelerationY.equals(other.accelerationY))
return false;
if (accelerationZ == null) {
if (other.accelerationZ != null)
return false;
} else if (!accelerationZ.equals(other.accelerationZ))
return false;
return true;
}
@Override
public String toString() {
return "AccelerationCombinedMeasurement [accelerationX=" + accelerationX + ", accelerationY=" + accelerationY
+ ", accelerationZ=" + accelerationZ + "]";
}
}
在这种情况下,它应该使用名称c8y_Acceleration。当我为使用此测量类的传感器创建数据点图时,您会得到:
您可以在红色轮廓中看到名称