diff --git a/gui/src/components/commons/Button.tsx b/gui/src/components/commons/Button.tsx index 7791a4d1f..428316b02 100644 --- a/gui/src/components/commons/Button.tsx +++ b/gui/src/components/commons/Button.tsx @@ -49,7 +49,7 @@ export function Button({ }: { children: ReactChild; icon?: ReactChild; - variant: 'primary' | 'secondary' | 'tierciary'; + variant: 'primary' | 'secondary' | 'tierciary' | 'quaternary'; to?: string; loading?: boolean; rounded?: boolean; @@ -75,6 +75,12 @@ export function Button({ 'bg-background-50 hover:bg-background-50 cursor-not-allowed text-background-40': disabled, }), + quaternary: classNames({ + 'bg-background-70 hover:bg-background-60 text-standard text-background-10': + !disabled, + 'bg-background-70 hover:bg-background-70 cursor-not-allowed text-background-40': + disabled, + }), }; return classNames( variantsMap[variant], diff --git a/gui/src/components/settings/pages/Serial.tsx b/gui/src/components/settings/pages/Serial.tsx index 22a337d63..2a2ec75a6 100644 --- a/gui/src/components/settings/pages/Serial.tsx +++ b/gui/src/components/settings/pages/Serial.tsx @@ -1,12 +1,16 @@ -import { useEffect, useState } from 'react'; +import { useEffect, useRef, useState } from 'react'; import { CloseSerialRequestT, OpenSerialRequestT, RpcMessage, + SerialTrackerFactoryResetRequestT, + SerialTrackerGetInfoRequestT, + SerialTrackerRebootRequestT, SerialUpdateResponseT, } from 'solarxr-protocol'; -import { useLayout } from '../../../hooks/layout'; +import { useElemSize, useLayout } from '../../../hooks/layout'; import { useWebsocketAPI } from '../../../hooks/websocket-api'; +import { Button } from '../../commons/Button'; import { Typography } from '../../commons/Typography'; export interface WifiForm { @@ -21,6 +25,9 @@ export function Serial() { ref: consoleRef, } = useLayout(); + const toolbarRef = useRef(null); + const { height } = useElemSize(toolbarRef); + const { useRPCPacket, sendRPCPacket } = useWebsocketAPI(); // const consoleRef = useRef(null); const [consoleContent, setConsole] = useState(''); @@ -72,27 +79,65 @@ export function Serial() { }; }, [isSerialOpen, sendRPCPacket]); + const reboot = () => { + sendRPCPacket( + RpcMessage.SerialTrackerRebootRequest, + new SerialTrackerRebootRequestT() + ); + }; + const factoryReset = () => { + sendRPCPacket( + RpcMessage.SerialTrackerFactoryResetRequest, + new SerialTrackerFactoryResetRequestT() + ); + }; + const getInfos = () => { + sendRPCPacket( + RpcMessage.SerialTrackerGetInfoRequest, + new SerialTrackerGetInfoRequestT() + ); + }; + return ( -
- Serial Console - - This is a live information feed for serial communication. May be useful - if you need to know the firmware is acting up. - -
+
+
+ Serial Console + + This is a live information feed for serial communication. + + + May be useful if you need to know the firmware is acting up. + +
+
-
-            {isSerialOpen
-              ? consoleContent
-              : 'Connection to serial lost, Reconnecting...'}
-          
+
+
+              {isSerialOpen
+                ? consoleContent
+                : 'Connection to serial lost, Reconnecting...'}
+            
+
+
+
+
+ + + +
diff --git a/server/src/main/java/dev/slimevr/protocol/RPCHandler.java b/server/src/main/java/dev/slimevr/protocol/RPCHandler.java index f57410aee..131663597 100644 --- a/server/src/main/java/dev/slimevr/protocol/RPCHandler.java +++ b/server/src/main/java/dev/slimevr/protocol/RPCHandler.java @@ -651,24 +651,6 @@ public class RPCHandler extends ProtocolHandler return; this.api.server.getSerialHandler().rebootRequest(); - - this.api.getAPIServers().forEach((server) -> { - server - .getAPIConnections() - .filter(conn2 -> conn2.getContext().useSerial()) - .forEach((conn2) -> { - FlatBufferBuilder fbb = new FlatBufferBuilder(32); - - SerialUpdateResponse.startSerialUpdateResponse(fbb); - SerialUpdateResponse.addClosed(fbb, false); - int update = SerialUpdateResponse.endSerialUpdateResponse(fbb); - int outbound = this - .createRPCMessage(fbb, RpcMessage.SerialUpdateResponse, update); - fbb.finish(outbound); - - conn2.send(fbb.dataBuffer()); - }); - }); } public void SerialTrackerGetInfoRequest( @@ -681,24 +663,6 @@ public class RPCHandler extends ProtocolHandler return; this.api.server.getSerialHandler().infoRequest(); - - this.api.getAPIServers().forEach((server) -> { - server - .getAPIConnections() - .filter(conn2 -> conn2.getContext().useSerial()) - .forEach((conn2) -> { - FlatBufferBuilder fbb = new FlatBufferBuilder(32); - - SerialUpdateResponse.startSerialUpdateResponse(fbb); - SerialUpdateResponse.addClosed(fbb, false); - int update = SerialUpdateResponse.endSerialUpdateResponse(fbb); - int outbound = this - .createRPCMessage(fbb, RpcMessage.SerialUpdateResponse, update); - fbb.finish(outbound); - - conn2.send(fbb.dataBuffer()); - }); - }); } public void SerialTrackerFactoryResetRequest( @@ -711,24 +675,6 @@ public class RPCHandler extends ProtocolHandler return; this.api.server.getSerialHandler().factoryResetRequest(); - - this.api.getAPIServers().forEach((server) -> { - server - .getAPIConnections() - .filter(conn2 -> conn2.getContext().useSerial()) - .forEach((conn2) -> { - FlatBufferBuilder fbb = new FlatBufferBuilder(32); - - SerialUpdateResponse.startSerialUpdateResponse(fbb); - SerialUpdateResponse.addClosed(fbb, false); - int update = SerialUpdateResponse.endSerialUpdateResponse(fbb); - int outbound = this - .createRPCMessage(fbb, RpcMessage.SerialUpdateResponse, update); - fbb.finish(outbound); - - conn2.send(fbb.dataBuffer()); - }); - }); } @Override