28 lines
1.1 KiB
JavaScript
28 lines
1.1 KiB
JavaScript
const { contextBridge, ipcRenderer } = require("electron");
|
|
|
|
contextBridge.exposeInMainWorld("api", {
|
|
saveTags: (tags) => ipcRenderer.send("save-tags", tags),
|
|
loadTags: () => ipcRenderer.invoke("load-tags"),
|
|
listSerialPorts: () => ipcRenderer.invoke("list-serial-ports"),
|
|
|
|
// connect/disconnect + subscription API
|
|
connectCom: (port, baudRate) => ipcRenderer.invoke("connect-com", { port, baudRate }),
|
|
disconnectCom: () => ipcRenderer.invoke("disconnect-com"),
|
|
onSerialUpdate: (cb) => {
|
|
const listener = (event, data) => { cb(data); };
|
|
ipcRenderer.on("serial-update", listener);
|
|
// return unregister function
|
|
return () => ipcRenderer.removeListener("serial-update", listener);
|
|
},
|
|
onSerialRaw: (cb) => {
|
|
const listener = (event, data) => { cb(data); };
|
|
ipcRenderer.on("serial-raw", listener);
|
|
return () => ipcRenderer.removeListener("serial-raw", listener);
|
|
},
|
|
onVolumeLog: (cb) => {
|
|
const listener = (event, data) => { cb(data); };
|
|
ipcRenderer.on("volume-log", listener);
|
|
return () => ipcRenderer.removeListener("volume-log", listener);
|
|
}
|
|
});
|