pxt-jacdac/dc-voltage-measurement/client.g.ts

144 строки
5.3 KiB
TypeScript
Исходник Постоянная ссылка Обычный вид История

2022-03-21 16:22:46 +03:00
namespace modules {
/**
* A service that reports a voltage measurement.
**/
//% fixedInstances blockGap=8
2022-03-29 23:17:14 +03:00
export class DcVoltageMeasurementClient extends jacdac.SimpleSensorClient {
2022-04-08 18:39:19 +03:00
private readonly _measurementType: jacdac.RegisterClient<
[jacdac.DcVoltageMeasurementVoltageMeasurementType]
>
private readonly _measurementName: jacdac.RegisterClient<[string]>
2022-09-02 17:39:03 +03:00
private readonly _measurementError: jacdac.RegisterClient<[number]>
private readonly _minMeasurement: jacdac.RegisterClient<[number]>
private readonly _maxMeasurement: jacdac.RegisterClient<[number]>
2022-03-21 16:22:46 +03:00
constructor(role: string) {
super(
jacdac.SRV_DC_VOLTAGE_MEASUREMENT,
role,
jacdac.DcVoltageMeasurementRegPack.Measurement
)
2022-03-21 16:22:46 +03:00
2022-04-08 18:39:19 +03:00
this._measurementType = this.addRegister<
[jacdac.DcVoltageMeasurementVoltageMeasurementType]
>(
jacdac.DcVoltageMeasurementReg.MeasurementType,
2022-04-19 22:08:59 +03:00
jacdac.DcVoltageMeasurementRegPack.MeasurementType,
jacdac.RegisterClientFlags.Const
)
2022-04-08 18:39:19 +03:00
this._measurementName = this.addRegister<[string]>(
jacdac.DcVoltageMeasurementReg.MeasurementName,
2022-04-19 22:08:59 +03:00
jacdac.DcVoltageMeasurementRegPack.MeasurementName,
jacdac.RegisterClientFlags.Const
2022-04-08 18:39:19 +03:00
)
2022-09-02 17:39:03 +03:00
this._measurementError = this.addRegister<[number]>(
jacdac.DcVoltageMeasurementReg.MeasurementError,
jacdac.DcVoltageMeasurementRegPack.MeasurementError,
jacdac.RegisterClientFlags.Optional
)
this._minMeasurement = this.addRegister<[number]>(
jacdac.DcVoltageMeasurementReg.MinMeasurement,
jacdac.DcVoltageMeasurementRegPack.MinMeasurement,
jacdac.RegisterClientFlags.Optional |
jacdac.RegisterClientFlags.Const
)
this._maxMeasurement = this.addRegister<[number]>(
jacdac.DcVoltageMeasurementReg.MaxMeasurement,
jacdac.DcVoltageMeasurementRegPack.MaxMeasurement,
jacdac.RegisterClientFlags.Optional |
jacdac.RegisterClientFlags.Const
)
2022-03-21 16:22:46 +03:00
}
/**
2022-04-08 18:39:19 +03:00
* The type of measurement that is taking place. Absolute results are measured with respect to ground, whereas differential results are measured against another signal that is not ground.
*/
2022-03-21 16:22:46 +03:00
//% callInDebugger
2022-03-22 14:44:11 +03:00
//% group="DC Voltage Measurement"
2022-03-21 16:22:46 +03:00
//% weight=100
2022-03-29 23:17:14 +03:00
measurementType(): jacdac.DcVoltageMeasurementVoltageMeasurementType {
2022-04-08 18:39:19 +03:00
this.start()
const values = this._measurementType.pauseUntilValues() as any[]
return values[0]
2022-03-21 16:22:46 +03:00
}
/**
2022-04-08 18:39:19 +03:00
* A string containing the net name that is being measured e.g. `POWER_DUT` or a reference e.g. `DIFF_DEV1_DEV2`. These constants can be used to identify a measurement from client code.
*/
2022-03-21 16:22:46 +03:00
//% callInDebugger
2022-03-22 14:44:11 +03:00
//% group="DC Voltage Measurement"
2022-03-21 16:22:46 +03:00
//% weight=99
measurementName(): string {
2022-04-08 18:39:19 +03:00
this.start()
const values = this._measurementName.pauseUntilValues() as any[]
return values[0]
2022-03-21 16:22:46 +03:00
}
/**
2022-04-08 18:39:19 +03:00
* The voltage measurement.
*/
2022-03-21 16:22:46 +03:00
//% callInDebugger
2022-03-22 14:44:11 +03:00
//% group="DC Voltage Measurement"
2022-05-16 22:11:00 +03:00
//% block="%dcvoltagemeasurement measurement (V)"
2022-03-22 14:44:11 +03:00
//% blockId=jacdac_dcvoltagemeasurement_measurement___get
2022-03-21 16:22:46 +03:00
//% weight=98
measurement(): number {
2022-04-08 18:39:19 +03:00
return this.reading()
2022-03-21 16:22:46 +03:00
}
2022-09-02 17:39:03 +03:00
/**
* Absolute error on the reading value.
*/
//% callInDebugger
//% group="DC Voltage Measurement"
//% weight=97
measurementError(): number {
this.start()
const values = this._measurementError.pauseUntilValues() as any[]
return values[0]
}
/**
* Minimum measurable current
*/
//% callInDebugger
//% group="DC Voltage Measurement"
//% weight=96
minMeasurement(): number {
this.start()
const values = this._minMeasurement.pauseUntilValues() as any[]
return values[0]
}
/**
* Maximum measurable current
*/
//% callInDebugger
//% group="DC Voltage Measurement"
//% weight=95
maxMeasurement(): number {
this.start()
const values = this._maxMeasurement.pauseUntilValues() as any[]
return values[0]
}
2022-03-21 16:22:46 +03:00
/**
* Run code when the measurement changes by the given threshold value.
2022-04-08 18:39:19 +03:00
*/
2022-03-22 14:44:11 +03:00
//% group="DC Voltage Measurement"
//% blockId=jacdac_dcvoltagemeasurement_on_measurement_change
2022-05-18 22:29:10 +03:00
//% block="on %dcvoltagemeasurement measurement changed by %threshold (V)"
2022-09-02 17:39:03 +03:00
//% weight=94
2022-03-21 16:22:46 +03:00
//% threshold.min=0
//% threshold.defl=1
onMeasurementChangedBy(threshold: number, handler: () => void): void {
2022-04-08 18:39:19 +03:00
this.onReadingChangedBy(threshold, handler)
2022-03-21 16:22:46 +03:00
}
}
2022-06-16 00:56:29 +03:00
2022-04-08 18:39:19 +03:00
//% fixedInstance whenUsed weight=1 block="dc voltage measurement1"
export const dcVoltageMeasurement1 = new DcVoltageMeasurementClient(
"dc Voltage Measurement1"
)
}