diff --git a/package-lock.json b/package-lock.json
index 2f6f8fc..8bf5f65 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -42,7 +42,7 @@
"mui-tel-input": "^7.0.0",
"notistack": "^3.0.1",
"openweathermap-ts": "^1.2.10",
- "protobuf-ts": "git+https://gitlab+deploy-token-50627:hv8mB4WkyvtjBpJKU1rN@gitlab.com/brandx/protobuf-ts.git#i2c_detect",
+ "protobuf-ts": "git+https://gitlab+deploy-token-50627:hv8mB4WkyvtjBpJKU1rN@gitlab.com/brandx/protobuf-ts.git#onewire_detect",
"query-string": "^9.2.1",
"react": "^18.3.1",
"react-beautiful-dnd": "^13.1.1",
@@ -10953,7 +10953,7 @@
},
"node_modules/protobuf-ts": {
"version": "1.0.0",
- "resolved": "git+https://gitlab+deploy-token-50627:hv8mB4WkyvtjBpJKU1rN@gitlab.com/brandx/protobuf-ts.git#0d0084ce207218ea5c8c94addfbf009814c35a1f",
+ "resolved": "git+https://gitlab+deploy-token-50627:hv8mB4WkyvtjBpJKU1rN@gitlab.com/brandx/protobuf-ts.git#aab2a77a75ca78e22d69d4a44e1c900bbac41bcf",
"dependencies": {
"protobufjs": "^6.8.8"
}
diff --git a/package.json b/package.json
index c3e3fdc..c73e616 100644
--- a/package.json
+++ b/package.json
@@ -54,7 +54,7 @@
"mui-tel-input": "^7.0.0",
"notistack": "^3.0.1",
"openweathermap-ts": "^1.2.10",
- "protobuf-ts": "git+https://gitlab+deploy-token-50627:hv8mB4WkyvtjBpJKU1rN@gitlab.com/brandx/protobuf-ts.git#i2c_detect",
+ "protobuf-ts": "git+https://gitlab+deploy-token-50627:hv8mB4WkyvtjBpJKU1rN@gitlab.com/brandx/protobuf-ts.git#onewire_detect",
"query-string": "^9.2.1",
"react": "^18.3.1",
"react-beautiful-dnd": "^13.1.1",
diff --git a/src/device/DeviceWizard.tsx b/src/device/DeviceWizard.tsx
index 32387eb..6c8f361 100644
--- a/src/device/DeviceWizard.tsx
+++ b/src/device/DeviceWizard.tsx
@@ -141,6 +141,28 @@ export default function DeviceWizard(props: Props) {
)}
+ {selectedPort &&
+ // selectedPort.addressType === quack.AddressType.ADDRESS_TYPE_CONFIGURABLE_PIN_ARRAY &&
+ // device.featureSupported("detectOneWire") &&
+ selectedPort.autoDetectable && (
+
+
+
+ )}
{portComponents.length > 0 && (
Current Components
diff --git a/src/device/autoDetect/DeviceScannedComponents.tsx b/src/device/autoDetect/DeviceScannedComponents.tsx
index 0381281..530ecb9 100644
--- a/src/device/autoDetect/DeviceScannedComponents.tsx
+++ b/src/device/autoDetect/DeviceScannedComponents.tsx
@@ -31,7 +31,8 @@ export default function DeviceScannedComponents(props: Props){
const compAPI = useComponentAPI();
const deviceAPI = useDeviceAPI()
const [scannedI2C, setScannedI2C] = useState() //the unmodified scan of addresses
- const [validCompAddresses, setValidComponentAddresses] = useState([]) //the filtered array of address data
+ const [scannedOneWire, setScannedOneWire] = useState([])
+ const [validI2CCompAddresses, setValidI2CComponentAddresses] = useState([]) //the filtered array of address data
const [components, setComponents] = useState([])
const [steps, setSteps] = useState([]);
const { error, success } = useSnackbar();
@@ -40,8 +41,8 @@ export default function DeviceScannedComponents(props: Props){
const [openDialog, setOpenDialog] = useState(false);
useEffect(()=>{
- //console.log(scannedComponents)
if (scannedComponents.i2c) setScannedI2C(scannedComponents.i2c)
+ if (scannedComponents.oneWire) setScannedOneWire(scannedComponents.oneWire)
//makes the array empty for testing
// if (scannedComponents.i2c) {
// let clone = cloneDeep(scannedComponents.i2c)
@@ -76,7 +77,7 @@ export default function DeviceScannedComponents(props: Props){
}
})
}
- setValidComponentAddresses(valid)
+ setValidI2CComponentAddresses(valid)
},[scannedI2C])
const stepper = () => {
@@ -225,7 +226,7 @@ export default function DeviceScannedComponents(props: Props){
- {validCompAddresses.length > 0 ? validCompAddresses.map((addr, index) => {
+ {validI2CCompAddresses.length > 0 ? validI2CCompAddresses.map((addr, index) => {
return (
()}/>
)
@@ -242,6 +243,23 @@ export default function DeviceScannedComponents(props: Props){
}
}
+ {scannedOneWire.length > 0 &&
+
+
+
+ Pin Port Sensors
+
+
+
+ {scannedOneWire.map(scan => {
+ return(
+
+
+
+ )
+ })}
+
+ }
diff --git a/src/device/autoDetect/ScannedOneWirePort.tsx b/src/device/autoDetect/ScannedOneWirePort.tsx
new file mode 100644
index 0000000..f391dd3
--- /dev/null
+++ b/src/device/autoDetect/ScannedOneWirePort.tsx
@@ -0,0 +1,7 @@
+import React from "react"
+
+export default function ScannedOneWirePort(){
+ return (
+
+ )
+}
\ No newline at end of file
diff --git a/src/models/Device.ts b/src/models/Device.ts
index 0aec35a..29f06ef 100644
--- a/src/models/Device.ts
+++ b/src/models/Device.ts
@@ -48,6 +48,21 @@ const featureVersions: Map = new Map([
v2CellBlue: "2.1.7",
v2EthBlue: "2.1.7"
}
+ ],[
+ "detectOneWire",
+ {
+ photon: "N/A",
+ electron: "N/A",
+ v2Wifi: "N/A",
+ v2Cell: "N/A",
+ v2WifiS3: "N/A",
+ v2CellS3: "N/A",
+ v2CellBlack: "2.1.8",
+ v2CellGreen: "N/A",
+ v2WifiBlue: "2.1.8",
+ v2CellBlue: "2.1.8",
+ v2EthBlue: "2.1.8"
+ }
]
]);
export class Device {
diff --git a/src/pages/Device.tsx b/src/pages/Device.tsx
index 4d7d41f..e9012ee 100644
--- a/src/pages/Device.tsx
+++ b/src/pages/Device.tsx
@@ -1,4 +1,4 @@
-import { Button, Card, Divider, List, ListItem, Typography } from "@mui/material";
+import { Box, Button, Card, Divider, List, ListItem, Typography } from "@mui/material";
import Grid from '@mui/material/Grid2';
import { Component, Device, Interaction, User } from "models";
import { getContextKeys, getContextTypes } from "pbHelpers/Context";
@@ -169,7 +169,8 @@ export default function DevicePage() {
const loadPortScan = () => {
deviceAPI.listFoundComponents(parseInt(deviceID))
.then(resp => {
- if (resp.data.foundComponents?.i2c){
+ console.log(resp.data)
+ if (resp.data.foundComponents){
setScannedAddresses(resp.data.foundComponents ?? undefined)
}
})
@@ -430,8 +431,8 @@ export default function DevicePage() {
refreshCallback={loadDevice}
/>
- {scannedAddresses &&
-
+ {(scannedAddresses?.i2c || scannedAddresses?.oneWire) &&
+
Promise>;
getMulti: (ids: number[] | string[], otherTeam?: string) => Promise>;
detectI2C: (id: number, otherTeam?: string) => Promise>;
+ detectOneWire: (id: number, port: number, otherTeam?: string) => Promise>
listFoundComponents: (id: number, otherTeam?: string) => Promise>
getGeoJson: (id: number | string, demo?: boolean, otherTeam?: string) => Promise;
getMultiGeoJson: (ids: number[] | string[], otherTeam?: string) => Promise;
@@ -962,6 +963,19 @@ export default function DeviceProvider(props: PropsWithChildren) {
})
}
+ const detectOneWire = (id: number, port: number, otherTeam?: string) => {
+ let url = "/devices/" + id + "/detectOneWire?port=" + port;
+ const view = otherTeam ? otherTeam : as
+ if(view) url = url + "?as=" + view
+ return new Promise>((resolve, reject) => {
+ put(pondURL(url)).then(resp => {
+ return resolve(resp)
+ }).catch(err => {
+ return reject(err)
+ })
+ })
+ }
+
const listFoundComponents = (id: number, otherTeam?: string) => {
let url = "/devices/" + id + "/listScannedComponents";
const view = otherTeam ? otherTeam : as
@@ -1035,6 +1049,7 @@ export default function DeviceProvider(props: PropsWithChildren) {
updateComponentPreferences,
listDeviceComponentPreferences,
detectI2C,
+ detectOneWire,
listFoundComponents,
removeFoundComponents
}}>