broadcast tab seems to work now?!
This commit is contained in:
parent
9ff5dcca97
commit
2e581ec6cd
|
@ -34,11 +34,11 @@ public class NetworkConnector implements Closeable {
|
|||
private final static Logging log = Logging.getLogging(NetworkConnector.class);
|
||||
private boolean isClosed;
|
||||
|
||||
public NetworkConnectorResult runNetworkConnector(String authToken, String controllerPort, NetworkConnectorContext context) {
|
||||
return runNetworkConnector(authToken, controllerPort, context, ReconnectListener.VOID);
|
||||
public NetworkConnectorResult start(String authToken, String controllerPort, NetworkConnectorContext context) {
|
||||
return start(authToken, controllerPort, context, ReconnectListener.VOID);
|
||||
}
|
||||
|
||||
public NetworkConnectorResult runNetworkConnector(String authToken, String controllerPort, NetworkConnectorContext context, ReconnectListener reconnectListener) {
|
||||
public NetworkConnectorResult start(String authToken, String controllerPort, NetworkConnectorContext context, ReconnectListener reconnectListener) {
|
||||
LinkManager controllerConnector = new LinkManager()
|
||||
.setCompositeLogicEnabled(false)
|
||||
.setNeedPullData(false);
|
||||
|
@ -78,7 +78,7 @@ public class NetworkConnector implements Closeable {
|
|||
proxyReconnectSemaphore.acquire();
|
||||
|
||||
try {
|
||||
runNetworkConnector(context.serverPortForControllers(), controllerConnector, authToken, (String message) -> {
|
||||
start(context.serverPortForControllers(), controllerConnector, authToken, (String message) -> {
|
||||
log.error(message + " Disconnect from proxy server detected, now sleeping " + context.reconnectDelay() + " seconds");
|
||||
sleep(context.reconnectDelay() * Timeouts.SECOND);
|
||||
log.debug("Releasing semaphore");
|
||||
|
@ -98,7 +98,7 @@ public class NetworkConnector implements Closeable {
|
|||
}
|
||||
|
||||
@NotNull
|
||||
private static SessionDetails runNetworkConnector(int serverPortForControllers, LinkManager linkManager, String authToken, final TcpIoStream.DisconnectListener disconnectListener, int oneTimeToken, ControllerInfo controllerInfo, final NetworkConnectorContext context) throws IOException {
|
||||
private static SessionDetails start(int serverPortForControllers, LinkManager linkManager, String authToken, final TcpIoStream.DisconnectListener disconnectListener, int oneTimeToken, ControllerInfo controllerInfo, final NetworkConnectorContext context) throws IOException {
|
||||
IoStream targetEcuSocket = linkManager.getConnector().getBinaryProtocol().getStream();
|
||||
|
||||
SessionDetails deviceSessionDetails = new SessionDetails(controllerInfo, authToken, oneTimeToken);
|
||||
|
|
|
@ -24,7 +24,7 @@ public class NetworkConnectorStartup {
|
|||
|
||||
NetworkConnectorContext connectorContext = new NetworkConnectorContext();
|
||||
|
||||
NetworkConnector.NetworkConnectorResult networkConnectorResult = new NetworkConnector().runNetworkConnector(authToken, autoDetectedPort, connectorContext);
|
||||
NetworkConnector.NetworkConnectorResult networkConnectorResult = new NetworkConnector().start(authToken, autoDetectedPort, connectorContext);
|
||||
log.info("Running with oneTimeToken=" + networkConnectorResult.getOneTimeToken());
|
||||
}
|
||||
}
|
||||
|
|
|
@ -101,7 +101,7 @@ public class FullServerTest {
|
|||
};
|
||||
|
||||
// start "rusEFI network connector" to connect controller with backend since in real life controller has only local serial port it does not have network
|
||||
NetworkConnector.NetworkConnectorResult networkConnectorResult = new NetworkConnector().runNetworkConnector(TestHelper.TEST_TOKEN_1, TestHelper.LOCALHOST + ":" + controllerPort, networkConnectorContext, NetworkConnector.ReconnectListener.VOID);
|
||||
NetworkConnector.NetworkConnectorResult networkConnectorResult = new NetworkConnector().start(TestHelper.TEST_TOKEN_1, TestHelper.LOCALHOST + ":" + controllerPort, networkConnectorContext, NetworkConnector.ReconnectListener.VOID);
|
||||
ControllerInfo controllerInfo = networkConnectorResult.getControllerInfo();
|
||||
|
||||
TestHelper.assertLatch("controllerRegistered", controllerRegistered);
|
||||
|
|
|
@ -1,6 +1,5 @@
|
|||
package com.rusefi;
|
||||
|
||||
import com.opensr5.Logger;
|
||||
import com.rusefi.config.generated.Fields;
|
||||
import com.rusefi.io.IoStream;
|
||||
import com.rusefi.io.commands.GetOutputsCommand;
|
||||
|
@ -34,8 +33,6 @@ import static org.junit.Assert.assertEquals;
|
|||
* https://github.com/rusefi/web_backend/blob/master/documentation/rusEFI%20remote.png
|
||||
*/
|
||||
public class ServerTest {
|
||||
private final static Logger logger = Logger.CONSOLE;
|
||||
|
||||
@Before
|
||||
public void setup() throws MalformedURLException {
|
||||
BackendTestHelper.commonServerTest();
|
||||
|
@ -126,7 +123,7 @@ covered by FullServerTest
|
|||
TestHelper.createVirtualController(controllerPort, new ConfigurationImage(Fields.TOTAL_CONFIG_SIZE), logger);
|
||||
|
||||
// start "rusEFI network connector" to connect controller with backend since in real life controller has only local serial port it does not have network
|
||||
SessionDetails deviceSessionDetails = NetworkConnector.runNetworkConnector(MockRusEfiDevice.TEST_TOKEN_1, TestHelper.LOCALHOST + ":" + controllerPort, serverPortForControllers);
|
||||
SessionDetails deviceSessionDetails = NetworkConnector.start(MockRusEfiDevice.TEST_TOKEN_1, TestHelper.LOCALHOST + ":" + controllerPort, serverPortForControllers);
|
||||
|
||||
assertTrue(controllerRegistered.await(READ_IMAGE_TIMEOUT, TimeUnit.MILLISECONDS));
|
||||
|
||||
|
|
|
@ -75,7 +75,7 @@ public class NetworkConnectorTest {
|
|||
reconnectCounter.countDown();
|
||||
}
|
||||
};
|
||||
new NetworkConnector().runNetworkConnector(TestHelper.TEST_TOKEN_1, TestHelper.LOCALHOST + ":" + controllerPort, connectorContext, reconnectListener);
|
||||
new NetworkConnector().start(TestHelper.TEST_TOKEN_1, TestHelper.LOCALHOST + ":" + controllerPort, connectorContext, reconnectListener);
|
||||
|
||||
assertLatch(reconnectCounter);
|
||||
|
||||
|
|
|
@ -10,6 +10,8 @@ import com.rusefi.ui.util.URLLabel;
|
|||
import org.putgemin.VerticalFlowLayout;
|
||||
|
||||
import javax.swing.*;
|
||||
import java.awt.event.ActionEvent;
|
||||
import java.awt.event.ActionListener;
|
||||
|
||||
/**
|
||||
* @see PluginEntry
|
||||
|
@ -17,12 +19,13 @@ import javax.swing.*;
|
|||
public class BroadcastTab {
|
||||
private final JComponent content = new JPanel(new VerticalFlowLayout());
|
||||
|
||||
private final JLabel help = new URLLabel(RemoteTab.HOWTO_REMOTE_TUNING);
|
||||
|
||||
private final JLabel status = new JLabel();
|
||||
private final JButton disconnect = new JButton("Disconnect");
|
||||
private NetworkConnector networkConnector;
|
||||
|
||||
public BroadcastTab() {
|
||||
JButton broadcast = new JButton("Broadcast");
|
||||
disconnect.setEnabled(false);
|
||||
|
||||
broadcast.addActionListener(e -> {
|
||||
String authToken = AuthTokenPanel.getAuthToken();
|
||||
|
@ -40,9 +43,18 @@ public class BroadcastTab {
|
|||
}).start();
|
||||
});
|
||||
|
||||
disconnect.addActionListener(new ActionListener() {
|
||||
@Override
|
||||
public void actionPerformed(ActionEvent e) {
|
||||
networkConnector.close();
|
||||
disconnect.setEnabled(false);
|
||||
}
|
||||
});
|
||||
|
||||
content.add(broadcast);
|
||||
content.add(status);
|
||||
content.add(help);
|
||||
content.add(disconnect);
|
||||
content.add(new URLLabel(RemoteTab.HOWTO_REMOTE_TUNING));
|
||||
content.add(new JLabel(PluginEntry.LOGO));
|
||||
|
||||
AutoupdateUtil.trueLayout(content);
|
||||
|
@ -53,11 +65,14 @@ public class BroadcastTab {
|
|||
status.setText("<html>rusEFI ECU not detected.<br/>Please make sure that TunerStudio is currently not connected to ECU.</html>");
|
||||
} else {
|
||||
status.setText("rusEFI detected at " + autoDetectedPort);
|
||||
disconnect.setEnabled(true);
|
||||
|
||||
NetworkConnectorContext connectorContext = new NetworkConnectorContext();
|
||||
|
||||
new Thread(() -> {
|
||||
NetworkConnector.NetworkConnectorResult networkConnectorResult = new NetworkConnector().runNetworkConnector(authToken, autoDetectedPort, connectorContext);
|
||||
networkConnector = new NetworkConnector();
|
||||
|
||||
NetworkConnector.NetworkConnectorResult networkConnectorResult = networkConnector.start(authToken, autoDetectedPort, connectorContext);
|
||||
|
||||
SwingUtilities.invokeLater(() -> status.setText("One time password to connect to this ECU: " + networkConnectorResult.getOneTimeToken()));
|
||||
|
||||
|
|
Loading…
Reference in New Issue