mirror of
https://github.com/emsesp/EMS-ESP32.git
synced 2025-12-12 18:59:51 +03:00
add counter 0..2 for short pulses, high frequency, #2758
This commit is contained in:
@@ -586,6 +586,7 @@ const Sensors = () => {
|
||||
creating={creating}
|
||||
selectedItem={selectedAnalogSensor}
|
||||
analogGPIOList={sensorData.available_gpios}
|
||||
disabledTypeList={sensorData.exclude_types}
|
||||
validator={analogSensorItemValidation(sensorData.as, selectedAnalogSensor)}
|
||||
/>
|
||||
)}
|
||||
|
||||
@@ -35,6 +35,7 @@ interface DashboardSensorsAnalogDialogProps {
|
||||
creating: boolean;
|
||||
selectedItem: AnalogSensor;
|
||||
analogGPIOList: number[];
|
||||
disabledTypeList: number[];
|
||||
validator: Schema;
|
||||
}
|
||||
|
||||
@@ -45,6 +46,7 @@ const SensorsAnalogDialog = ({
|
||||
creating,
|
||||
selectedItem,
|
||||
analogGPIOList,
|
||||
disabledTypeList,
|
||||
validator
|
||||
}: DashboardSensorsAnalogDialogProps) => {
|
||||
const { LL } = useI18nContext();
|
||||
@@ -66,7 +68,16 @@ const SensorsAnalogDialog = ({
|
||||
|
||||
// Memoize helper functions to check sensor type conditions
|
||||
const isCounterOrRate = useMemo(
|
||||
() => editItem.t >= AnalogType.COUNTER && editItem.t <= AnalogType.RATE,
|
||||
() =>
|
||||
editItem.t === AnalogType.COUNTER ||
|
||||
editItem.t === AnalogType.RATE ||
|
||||
(editItem.t >= AnalogType.CNT_0 && editItem.t <= AnalogType.CNT_2),
|
||||
[editItem.t]
|
||||
);
|
||||
const isCounter = useMemo(
|
||||
() =>
|
||||
editItem.t === AnalogType.COUNTER ||
|
||||
(editItem.t >= AnalogType.CNT_0 && editItem.t <= AnalogType.CNT_2),
|
||||
[editItem.t]
|
||||
);
|
||||
const isFreqType = useMemo(
|
||||
@@ -80,13 +91,13 @@ const SensorsAnalogDialog = ({
|
||||
editItem.t === AnalogType.PWM_2,
|
||||
[editItem.t]
|
||||
);
|
||||
const isDigitalOutGPIO = useMemo(
|
||||
const isDACOutGPIO = useMemo(
|
||||
() =>
|
||||
editItem.t === AnalogType.DIGITAL_OUT &&
|
||||
(editItem.g === 25 || editItem.g === 26),
|
||||
[editItem.t, editItem.g]
|
||||
);
|
||||
const isDigitalOutNonGPIO = useMemo(
|
||||
const isDigitalOutGPIO = useMemo(
|
||||
() =>
|
||||
editItem.t === AnalogType.DIGITAL_OUT &&
|
||||
editItem.g !== 25 &&
|
||||
@@ -98,7 +109,11 @@ const SensorsAnalogDialog = ({
|
||||
const analogTypeMenuItems = useMemo(
|
||||
() =>
|
||||
AnalogTypeNames.map((val, i) => (
|
||||
<MenuItem key={val} value={i + 1}>
|
||||
<MenuItem
|
||||
key={val}
|
||||
value={i + 1}
|
||||
disabled={disabledTypeList.includes(i + 1)}
|
||||
>
|
||||
{val}
|
||||
</MenuItem>
|
||||
)),
|
||||
@@ -264,7 +279,7 @@ const SensorsAnalogDialog = ({
|
||||
/>
|
||||
</Grid>
|
||||
)}
|
||||
{editItem.t === AnalogType.COUNTER && (
|
||||
{isCounter && (
|
||||
<Grid>
|
||||
<ValidatedTextField
|
||||
name="o"
|
||||
@@ -309,7 +324,7 @@ const SensorsAnalogDialog = ({
|
||||
/>
|
||||
</Grid>
|
||||
)}
|
||||
{isDigitalOutGPIO && (
|
||||
{isDACOutGPIO && (
|
||||
<Grid>
|
||||
<ValidatedTextField
|
||||
name="o"
|
||||
@@ -325,7 +340,7 @@ const SensorsAnalogDialog = ({
|
||||
/>
|
||||
</Grid>
|
||||
)}
|
||||
{isDigitalOutNonGPIO && (
|
||||
{isDigitalOutGPIO && (
|
||||
<>
|
||||
<Grid>
|
||||
<ValidatedTextField
|
||||
|
||||
@@ -112,6 +112,7 @@ export interface SensorData {
|
||||
as: AnalogSensor[];
|
||||
analog_enabled: boolean;
|
||||
available_gpios: number[];
|
||||
exclude_types: number[];
|
||||
platform: string;
|
||||
}
|
||||
|
||||
@@ -245,7 +246,10 @@ export enum AnalogType {
|
||||
PULSE = 12,
|
||||
FREQ_0 = 13,
|
||||
FREQ_1 = 14,
|
||||
FREQ_2 = 15
|
||||
FREQ_2 = 15,
|
||||
CNT_0 = 16,
|
||||
CNT_1 = 17,
|
||||
CNT_2 = 18
|
||||
}
|
||||
|
||||
export const AnalogTypeNames = [
|
||||
@@ -263,7 +267,10 @@ export const AnalogTypeNames = [
|
||||
'Pulse', // 12
|
||||
'Freq 0', // 13
|
||||
'Freq 1', // 14
|
||||
'Freq 2' // 15
|
||||
'Freq 2', // 15
|
||||
'Counter 0', // 16
|
||||
'Counter 1', // 17
|
||||
'Counter2' // 18
|
||||
] as const;
|
||||
|
||||
export const BOARD_PROFILES = {
|
||||
|
||||
Reference in New Issue
Block a user