proxy progress - vehicle name from controller

This commit is contained in:
rusefi 2020-07-18 22:04:08 -04:00
parent 4c07e66dce
commit e028c29115
2 changed files with 16 additions and 3 deletions

View File

@ -206,4 +206,13 @@ public class Field {
Field field = new Field(name, offset, type); Field field = new Field(name, offset, type);
return field; return field;
} }
public String getStringValue(ConfigurationImage image) {
if (type != STRING)
throw new IllegalStateException("Not a string parameter " + name);
ByteBuffer bb = image.getByteBuffer(offset, stringSize);
byte[] bytes = new byte[stringSize];
bb.get(bytes);
return new String(bytes).trim();
}
} }

View File

@ -1,6 +1,8 @@
package com.rusefi.proxy; package com.rusefi.proxy;
import com.opensr5.ConfigurationImage;
import com.opensr5.Logger; import com.opensr5.Logger;
import com.rusefi.config.generated.Fields;
import com.rusefi.io.ConnectionStateListener; import com.rusefi.io.ConnectionStateListener;
import com.rusefi.io.IoStream; import com.rusefi.io.IoStream;
import com.rusefi.io.LinkManager; import com.rusefi.io.LinkManager;
@ -55,9 +57,11 @@ public class NetworkConnector {
HelloCommand.send(targetEcuSocket, logger); HelloCommand.send(targetEcuSocket, logger);
String controllerSignature = HelloCommand.getHelloResponse(targetEcuSocket.getDataBuffer(), logger); String controllerSignature = HelloCommand.getHelloResponse(targetEcuSocket.getDataBuffer(), logger);
// Fields.VEHICLENAME.getAnyValue() ConfigurationImage image = linkManager.getConnector().getBinaryProtocol().getControllerConfiguration();
// todo: request vehicle info from controller String vehicleName = Fields.VEHICLENAME.getStringValue(image);
ControllerInfo ci = new ControllerInfo("vehicle", "make", "code", controllerSignature); String engineMake = Fields.ENGINEMAKE.getStringValue(image);
String engineCode = Fields.ENGINECODE.getStringValue(image);
ControllerInfo ci = new ControllerInfo(vehicleName, engineMake, engineCode, controllerSignature);
SessionDetails deviceSessionDetails = new SessionDetails(ci, authToken, SessionDetails.createOneTimeCode()); SessionDetails deviceSessionDetails = new SessionDetails(ci, authToken, SessionDetails.createOneTimeCode());