proxy progress

IT WORKS!
This commit is contained in:
rusefi 2020-07-17 20:50:16 -04:00
parent 4ddf532166
commit 640aace20d
7 changed files with 31 additions and 24 deletions

View File

@ -10,10 +10,11 @@
<orderEntry type="inheritedJdk" /> <orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" /> <orderEntry type="sourceFolder" forTests="false" />
<orderEntry type="library" exported="" name="jcip-annotations" level="project" /> <orderEntry type="library" exported="" name="jcip-annotations" level="project" />
<orderEntry type="library" name="jSerialComm" level="project" /> <orderEntry type="library" exported="" name="jSerialComm" level="project" />
<orderEntry type="module" module-name="logging-api" exported="" /> <orderEntry type="module" module-name="logging-api" exported="" />
<orderEntry type="module" module-name="models" /> <orderEntry type="module" module-name="models" exported="" />
<orderEntry type="library" exported="" name="annotations" level="project" /> <orderEntry type="library" exported="" name="annotations" level="project" />
<orderEntry type="module" module-name="inifile" /> <orderEntry type="module" module-name="inifile" exported="" />
<orderEntry type="library" exported="" name="javax.json" level="project" />
</component> </component>
</module> </module>

View File

@ -13,6 +13,5 @@
<orderEntry type="library" exported="" name="httpclient" level="project" /> <orderEntry type="library" exported="" name="httpclient" level="project" />
<orderEntry type="library" exported="" name="annotations" level="project" /> <orderEntry type="library" exported="" name="annotations" level="project" />
<orderEntry type="library" exported="" scope="TEST" name="junit" level="project" /> <orderEntry type="library" exported="" scope="TEST" name="junit" level="project" />
<orderEntry type="library" name="javax.json" level="project" />
</component> </component>
</module> </module>

View File

@ -60,7 +60,7 @@ public class ServerTest {
} }
}; };
backend.runControllerConnector(serverPort, serverCreated); backend.runControllerConnector(serverPort, parameter -> serverCreated.countDown());
assertTrue(serverCreated.await(30, TimeUnit.SECONDS)); assertTrue(serverCreated.await(30, TimeUnit.SECONDS));
assertEquals(0, backend.getCount()); assertEquals(0, backend.getCount());
@ -94,7 +94,7 @@ public class ServerTest {
}; };
CountDownLatch applicationServerCreated = new CountDownLatch(1); CountDownLatch applicationServerCreated = new CountDownLatch(1);
backend.runApplicationConnector(serverPortForRemoteUsers, applicationServerCreated); backend.runApplicationConnector(serverPortForRemoteUsers, parameter -> applicationServerCreated.countDown());
assertTrue(applicationServerCreated.await(READ_IMAGE_TIMEOUT, TimeUnit.MILLISECONDS)); assertTrue(applicationServerCreated.await(READ_IMAGE_TIMEOUT, TimeUnit.MILLISECONDS));
// start authenticator // start authenticator
@ -123,7 +123,7 @@ public class ServerTest {
}; };
CountDownLatch applicationServerCreated = new CountDownLatch(1); CountDownLatch applicationServerCreated = new CountDownLatch(1);
backend.runApplicationConnector(serverPortForRemoteUsers, applicationServerCreated); backend.runApplicationConnector(serverPortForRemoteUsers, parameter -> applicationServerCreated.countDown());
assertTrue(applicationServerCreated.await(READ_IMAGE_TIMEOUT, TimeUnit.MILLISECONDS)); assertTrue(applicationServerCreated.await(READ_IMAGE_TIMEOUT, TimeUnit.MILLISECONDS));
SessionDetails sessionDetails = MockRusEfiDevice.createTestSession(MockRusEfiDevice.TEST_TOKEN_1, Fields.TS_SIGNATURE); SessionDetails sessionDetails = MockRusEfiDevice.createTestSession(MockRusEfiDevice.TEST_TOKEN_1, Fields.TS_SIGNATURE);
@ -161,11 +161,13 @@ public class ServerTest {
// first start backend server // first start backend server
CountDownLatch controllerServerCreated = new CountDownLatch(1); CountDownLatch controllerServerCreated = new CountDownLatch(1);
backend.runControllerConnector(serverPortForControllers, controllerServerCreated);
assertTrue(controllerServerCreated.await(READ_IMAGE_TIMEOUT, TimeUnit.MILLISECONDS));
CountDownLatch applicationServerCreated = new CountDownLatch(1); CountDownLatch applicationServerCreated = new CountDownLatch(1);
backend.runApplicationConnector(serverPortForRemoteUsers, applicationServerCreated);
backend.runControllerConnector(serverPortForControllers, parameter -> controllerServerCreated.countDown());
backend.runApplicationConnector(serverPortForRemoteUsers, parameter -> applicationServerCreated.countDown());
assertTrue(controllerServerCreated.await(READ_IMAGE_TIMEOUT, TimeUnit.MILLISECONDS));
assertTrue(applicationServerCreated.await(READ_IMAGE_TIMEOUT, TimeUnit.MILLISECONDS)); assertTrue(applicationServerCreated.await(READ_IMAGE_TIMEOUT, TimeUnit.MILLISECONDS));

View File

@ -1,6 +1,7 @@
package com.rusefi.server; package com.rusefi.server;
import com.opensr5.Logger; import com.opensr5.Logger;
import com.rusefi.Listener;
import com.rusefi.io.IoStream; import com.rusefi.io.IoStream;
import com.rusefi.io.commands.HelloCommand; import com.rusefi.io.commands.HelloCommand;
import com.rusefi.io.tcp.BinaryProtocolProxy; import com.rusefi.io.tcp.BinaryProtocolProxy;
@ -20,7 +21,6 @@ import javax.json.JsonObject;
import java.io.IOException; import java.io.IOException;
import java.net.Socket; import java.net.Socket;
import java.util.*; import java.util.*;
import java.util.concurrent.CountDownLatch;
import java.util.function.Function; import java.util.function.Function;
public class Backend { public class Backend {
@ -71,7 +71,7 @@ public class Backend {
} }
public void runApplicationConnector(int serverPortForApplications, CountDownLatch serverCreated) { public void runApplicationConnector(int serverPortForApplications, Listener serverSocketCreationCallback) {
BinaryProtocolServer.tcpServerSocket(serverPortForApplications, "ApplicationServer", new Function<Socket, Runnable>() { BinaryProtocolServer.tcpServerSocket(serverPortForApplications, "ApplicationServer", new Function<Socket, Runnable>() {
@Override @Override
public Runnable apply(Socket applicationSocket) { public Runnable apply(Socket applicationSocket) {
@ -114,14 +114,14 @@ public class Backend {
} }
}; };
} }
}, logger, parameter -> serverCreated.countDown()); }, logger, serverSocketCreationCallback);
} }
protected void onDisconnectApplication() { protected void onDisconnectApplication() {
logger.info("Disconnecting application"); logger.info("Disconnecting application");
} }
public void runControllerConnector(int serverPortForControllers, CountDownLatch serverCreated) { public void runControllerConnector(int serverPortForControllers, Listener serverSocketCreationCallback) {
BinaryProtocolServer.tcpServerSocket(serverPortForControllers, "ControllerServer", new Function<Socket, Runnable>() { BinaryProtocolServer.tcpServerSocket(serverPortForControllers, "ControllerServer", new Function<Socket, Runnable>() {
@Override @Override
public Runnable apply(Socket controllerSocket) { public Runnable apply(Socket controllerSocket) {
@ -133,14 +133,15 @@ public class Backend {
controllerConnectionState.requestControllerInfo(); controllerConnectionState.requestControllerInfo();
register(controllerConnectionState); register(controllerConnectionState);
// controllerConnectionState.runEndlessLoop();
controllerConnectionState.getOutputs();
} catch (IOException e) { } catch (IOException e) {
close(controllerConnectionState); close(controllerConnectionState);
} }
} }
}; };
} }
}, logger, parameter -> serverCreated.countDown()); }, logger, serverSocketCreationCallback);
} }
@NotNull @NotNull

View File

@ -96,14 +96,18 @@ public class ControllerConnectionState {
public void runEndlessLoop() throws IOException { public void runEndlessLoop() throws IOException {
while (true) { while (true) {
byte[] commandPacket = GetOutputsCommand.createRequest(); getOutputs();
stream.sendPacket(commandPacket, logger);
byte[] packet = incomingData.getPacket(logger, "msg", true);
if (packet == null)
throw new IOException("No response");
} }
} }
public void getOutputs() throws IOException {
byte[] commandPacket = GetOutputsCommand.createRequest();
stream.sendPacket(commandPacket, logger);
byte[] packet = incomingData.getPacket(logger, "msg", true);
if (packet == null)
throw new IOException("No response");
}
} }