mirror of
https://github.com/chirpstack/chirpstack.git
synced 2025-06-21 08:39:55 +00:00
Add option for auto-detect measurements.
In case the decoded payload contains random keys the auto-detect measurements feature will add new measurements for each uplink. With this option it is possible to turn auto-detection off to avoid polluting the database with many measurements. Closes #42.
This commit is contained in:
4
api/grpc-web/api/device_profile_pb.d.ts
vendored
4
api/grpc-web/api/device_profile_pb.d.ts
vendored
@ -88,6 +88,9 @@ export class DeviceProfile extends jspb.Message {
|
||||
getMeasurementsMap(): jspb.Map<string, Measurement>;
|
||||
clearMeasurementsMap(): DeviceProfile;
|
||||
|
||||
getAutoDetectMeasurements(): boolean;
|
||||
setAutoDetectMeasurements(value: boolean): DeviceProfile;
|
||||
|
||||
serializeBinary(): Uint8Array;
|
||||
toObject(includeInstance?: boolean): DeviceProfile.AsObject;
|
||||
static toObject(includeInstance: boolean, msg: DeviceProfile): DeviceProfile.AsObject;
|
||||
@ -125,6 +128,7 @@ export namespace DeviceProfile {
|
||||
abpRx2Freq: number,
|
||||
tagsMap: Array<[string, string]>,
|
||||
measurementsMap: Array<[string, Measurement.AsObject]>,
|
||||
autoDetectMeasurements: boolean,
|
||||
}
|
||||
}
|
||||
|
||||
|
32
api/grpc-web/api/device_profile_pb.js
vendored
32
api/grpc-web/api/device_profile_pb.js
vendored
@ -369,7 +369,8 @@ proto.api.DeviceProfile.toObject = function(includeInstance, msg) {
|
||||
abpRx2Dr: jspb.Message.getFieldWithDefault(msg, 23, 0),
|
||||
abpRx2Freq: jspb.Message.getFieldWithDefault(msg, 24, 0),
|
||||
tagsMap: (f = msg.getTagsMap()) ? f.toObject(includeInstance, undefined) : [],
|
||||
measurementsMap: (f = msg.getMeasurementsMap()) ? f.toObject(includeInstance, proto.api.Measurement.toObject) : []
|
||||
measurementsMap: (f = msg.getMeasurementsMap()) ? f.toObject(includeInstance, proto.api.Measurement.toObject) : [],
|
||||
autoDetectMeasurements: jspb.Message.getBooleanFieldWithDefault(msg, 28, false)
|
||||
};
|
||||
|
||||
if (includeInstance) {
|
||||
@ -518,6 +519,10 @@ proto.api.DeviceProfile.deserializeBinaryFromReader = function(msg, reader) {
|
||||
jspb.Map.deserializeBinary(message, reader, jspb.BinaryReader.prototype.readString, jspb.BinaryReader.prototype.readMessage, proto.api.Measurement.deserializeBinaryFromReader, "", new proto.api.Measurement());
|
||||
});
|
||||
break;
|
||||
case 28:
|
||||
var value = /** @type {boolean} */ (reader.readBool());
|
||||
msg.setAutoDetectMeasurements(value);
|
||||
break;
|
||||
default:
|
||||
reader.skipField();
|
||||
break;
|
||||
@ -730,6 +735,13 @@ proto.api.DeviceProfile.serializeBinaryToWriter = function(message, writer) {
|
||||
if (f && f.getLength() > 0) {
|
||||
f.serializeBinary(27, writer, jspb.BinaryWriter.prototype.writeString, jspb.BinaryWriter.prototype.writeMessage, proto.api.Measurement.serializeBinaryToWriter);
|
||||
}
|
||||
f = message.getAutoDetectMeasurements();
|
||||
if (f) {
|
||||
writer.writeBool(
|
||||
28,
|
||||
f
|
||||
);
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
@ -1227,6 +1239,24 @@ proto.api.DeviceProfile.prototype.clearMeasurementsMap = function() {
|
||||
return this;};
|
||||
|
||||
|
||||
/**
|
||||
* optional bool auto_detect_measurements = 28;
|
||||
* @return {boolean}
|
||||
*/
|
||||
proto.api.DeviceProfile.prototype.getAutoDetectMeasurements = function() {
|
||||
return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 28, false));
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* @param {boolean} value
|
||||
* @return {!proto.api.DeviceProfile} returns this
|
||||
*/
|
||||
proto.api.DeviceProfile.prototype.setAutoDetectMeasurements = function(value) {
|
||||
return jspb.Message.setProto3BooleanField(this, 28, value);
|
||||
};
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
@ -92,6 +92,9 @@ export class DeviceProfileTemplate extends jspb.Message {
|
||||
getMeasurementsMap(): jspb.Map<string, api_device_profile_pb.Measurement>;
|
||||
clearMeasurementsMap(): DeviceProfileTemplate;
|
||||
|
||||
getAutoDetectMeasurements(): boolean;
|
||||
setAutoDetectMeasurements(value: boolean): DeviceProfileTemplate;
|
||||
|
||||
serializeBinary(): Uint8Array;
|
||||
toObject(includeInstance?: boolean): DeviceProfileTemplate.AsObject;
|
||||
static toObject(includeInstance: boolean, msg: DeviceProfileTemplate): DeviceProfileTemplate.AsObject;
|
||||
@ -130,6 +133,7 @@ export namespace DeviceProfileTemplate {
|
||||
abpRx2Freq: number,
|
||||
tagsMap: Array<[string, string]>,
|
||||
measurementsMap: Array<[string, api_device_profile_pb.Measurement.AsObject]>,
|
||||
autoDetectMeasurements: boolean,
|
||||
}
|
||||
}
|
||||
|
||||
|
32
api/grpc-web/api/device_profile_template_pb.js
vendored
32
api/grpc-web/api/device_profile_template_pb.js
vendored
@ -282,7 +282,8 @@ proto.api.DeviceProfileTemplate.toObject = function(includeInstance, msg) {
|
||||
abpRx2Dr: jspb.Message.getFieldWithDefault(msg, 25, 0),
|
||||
abpRx2Freq: jspb.Message.getFieldWithDefault(msg, 26, 0),
|
||||
tagsMap: (f = msg.getTagsMap()) ? f.toObject(includeInstance, undefined) : [],
|
||||
measurementsMap: (f = msg.getMeasurementsMap()) ? f.toObject(includeInstance, proto.api.Measurement.toObject) : []
|
||||
measurementsMap: (f = msg.getMeasurementsMap()) ? f.toObject(includeInstance, proto.api.Measurement.toObject) : [],
|
||||
autoDetectMeasurements: jspb.Message.getBooleanFieldWithDefault(msg, 29, false)
|
||||
};
|
||||
|
||||
if (includeInstance) {
|
||||
@ -435,6 +436,10 @@ proto.api.DeviceProfileTemplate.deserializeBinaryFromReader = function(msg, read
|
||||
jspb.Map.deserializeBinary(message, reader, jspb.BinaryReader.prototype.readString, jspb.BinaryReader.prototype.readMessage, proto.api.Measurement.deserializeBinaryFromReader, "", new proto.api.Measurement());
|
||||
});
|
||||
break;
|
||||
case 29:
|
||||
var value = /** @type {boolean} */ (reader.readBool());
|
||||
msg.setAutoDetectMeasurements(value);
|
||||
break;
|
||||
default:
|
||||
reader.skipField();
|
||||
break;
|
||||
@ -654,6 +659,13 @@ proto.api.DeviceProfileTemplate.serializeBinaryToWriter = function(message, writ
|
||||
if (f && f.getLength() > 0) {
|
||||
f.serializeBinary(28, writer, jspb.BinaryWriter.prototype.writeString, jspb.BinaryWriter.prototype.writeMessage, proto.api.Measurement.serializeBinaryToWriter);
|
||||
}
|
||||
f = message.getAutoDetectMeasurements();
|
||||
if (f) {
|
||||
writer.writeBool(
|
||||
29,
|
||||
f
|
||||
);
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
@ -1169,6 +1181,24 @@ proto.api.DeviceProfileTemplate.prototype.clearMeasurementsMap = function() {
|
||||
return this;};
|
||||
|
||||
|
||||
/**
|
||||
* optional bool auto_detect_measurements = 29;
|
||||
* @return {boolean}
|
||||
*/
|
||||
proto.api.DeviceProfileTemplate.prototype.getAutoDetectMeasurements = function() {
|
||||
return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 29, false));
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* @param {boolean} value
|
||||
* @return {!proto.api.DeviceProfileTemplate} returns this
|
||||
*/
|
||||
proto.api.DeviceProfileTemplate.prototype.setAutoDetectMeasurements = function(value) {
|
||||
return jspb.Message.setProto3BooleanField(this, 29, value);
|
||||
};
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
Reference in New Issue
Block a user