mirror of https://github.com/rusefi/RomRaider.git
utec map generation added
git-svn-id: http://svn.3splooges.com/romraider-arch/trunk@513 d2e2e1cd-ba16-0410-be16-b7c4453c7c2d
This commit is contained in:
parent
f6a9c33a54
commit
a1816d8ef9
|
@ -17,22 +17,109 @@ public class UtecMapData {
|
||||||
|
|
||||||
private double[] tempStorage = new double[440];
|
private double[] tempStorage = new double[440];
|
||||||
|
|
||||||
|
private String stringChecksumHexValue = "";
|
||||||
|
|
||||||
public void addRawData(int byteData) {
|
public void addRawData(int byteData) {
|
||||||
rawMapData.append(byteData);
|
rawMapData.append(byteData);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void populateMapData() {
|
public void populateMapDataStructures() {
|
||||||
System.out.println("---------------");
|
System.out.println("---------------");
|
||||||
//System.out.println(rawMapData);
|
System.out.println(rawMapData);
|
||||||
|
|
||||||
// Functionality as the method names suggest
|
// Functionality as the method names suggest
|
||||||
cleanUpMapData();
|
cleanUpMapData();
|
||||||
|
|
||||||
|
System.out.println("---------------");
|
||||||
|
System.out.println(rawMapData);
|
||||||
|
|
||||||
populateMapName();
|
populateMapName();
|
||||||
populateMapComment();
|
populateMapComment();
|
||||||
populateFuelMapData();
|
populateFuelMapData();
|
||||||
populateTimingMapData();
|
populateTimingMapData();
|
||||||
populateBoostMapData();
|
populateBoostMapData();
|
||||||
calculateChecksum();
|
calculateChecksum();
|
||||||
|
|
||||||
|
System.out.println("------------------");
|
||||||
|
System.out.println(getUpdatedMap());
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public StringBuffer getUpdatedMap(){
|
||||||
|
calculateChecksum();
|
||||||
|
|
||||||
|
|
||||||
|
StringBuffer totalFile = new StringBuffer("");
|
||||||
|
|
||||||
|
totalFile.append("[START][MAPGROUP1][MAPGROUP]\r");
|
||||||
|
totalFile.append("Map Name:-["+this.mapName+"]\r");
|
||||||
|
totalFile.append("Map Comments:-["+this.mapComment+"]\r");
|
||||||
|
|
||||||
|
totalFile.append("Fuel Map\r");
|
||||||
|
for(int i=0 ; i<40 ; i++){
|
||||||
|
for(int j=0 ; j<11 ; j++){
|
||||||
|
String temp = this.fuelMap[j][i]+"";
|
||||||
|
if(temp.endsWith(".0")){
|
||||||
|
temp = temp.substring(0, temp.length()-2);
|
||||||
|
}
|
||||||
|
String number = "["+temp+"]";
|
||||||
|
int count = 9-number.length();
|
||||||
|
String spaces = "";
|
||||||
|
for(int k=0 ; k<count ; k++){
|
||||||
|
spaces += " ";
|
||||||
|
}
|
||||||
|
|
||||||
|
number = spaces+number;
|
||||||
|
totalFile.append(number);
|
||||||
|
}
|
||||||
|
totalFile.append("\r");
|
||||||
|
}
|
||||||
|
totalFile.append("\r");
|
||||||
|
|
||||||
|
totalFile.append("Timing Map\r");
|
||||||
|
for(int i=0 ; i<40 ; i++){
|
||||||
|
for(int j=0 ; j<11 ; j++){
|
||||||
|
String temp = this.timingMap[j][i]+"";
|
||||||
|
if(temp.endsWith(".0")){
|
||||||
|
temp = temp.substring(0, temp.length()-2);
|
||||||
|
}
|
||||||
|
String number = "["+temp+"]";
|
||||||
|
int count = 9-number.length();
|
||||||
|
String spaces = "";
|
||||||
|
for(int k=0 ; k<count ; k++){
|
||||||
|
spaces += " ";
|
||||||
|
}
|
||||||
|
|
||||||
|
number = spaces+number;
|
||||||
|
totalFile.append(number);
|
||||||
|
}
|
||||||
|
totalFile.append("\r");
|
||||||
|
}
|
||||||
|
totalFile.append("\r");
|
||||||
|
|
||||||
|
|
||||||
|
totalFile.append("Boost Map\r");
|
||||||
|
for(int i=0 ; i<40 ; i++){
|
||||||
|
for(int j=0 ; j<11 ; j++){
|
||||||
|
String temp = this.boostMap[j][i]+"";
|
||||||
|
if(temp.endsWith(".0")){
|
||||||
|
temp = temp.substring(0, temp.length()-2);
|
||||||
|
}
|
||||||
|
String number = "["+temp+"]";
|
||||||
|
int count = 9-number.length();
|
||||||
|
String spaces = "";
|
||||||
|
for(int k=0 ; k<count ; k++){
|
||||||
|
spaces += " ";
|
||||||
|
}
|
||||||
|
|
||||||
|
number = spaces+number;
|
||||||
|
totalFile.append(number);
|
||||||
|
}
|
||||||
|
totalFile.append("\r");
|
||||||
|
}
|
||||||
|
|
||||||
|
totalFile.append("[END][MAPGROUP]["+this.stringChecksumHexValue.toUpperCase()+"][EOF]");
|
||||||
|
return totalFile;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void calculateChecksum(){
|
public void calculateChecksum(){
|
||||||
|
@ -43,7 +130,7 @@ public class UtecMapData {
|
||||||
int charValue = charArray[i];
|
int charValue = charArray[i];
|
||||||
mapChecksumValue += charValue;
|
mapChecksumValue += charValue;
|
||||||
}
|
}
|
||||||
System.out.println("Map name Checksum:"+mapChecksumValue);
|
//System.out.println("Map name Checksum:"+mapChecksumValue);
|
||||||
|
|
||||||
int mapCommentChecksumValue = 0;
|
int mapCommentChecksumValue = 0;
|
||||||
charArray = this.mapComment.toCharArray();
|
charArray = this.mapComment.toCharArray();
|
||||||
|
@ -51,7 +138,7 @@ public class UtecMapData {
|
||||||
int charValue = charArray[i];
|
int charValue = charArray[i];
|
||||||
mapCommentChecksumValue += charValue;
|
mapCommentChecksumValue += charValue;
|
||||||
}
|
}
|
||||||
System.out.println("Map comment Checksum:"+mapCommentChecksumValue);
|
//System.out.println("Map comment Checksum:"+mapCommentChecksumValue);
|
||||||
|
|
||||||
int fuelChecksum = 0;
|
int fuelChecksum = 0;
|
||||||
for(int i=0 ; i<40 ; i++){
|
for(int i=0 ; i<40 ; i++){
|
||||||
|
@ -59,7 +146,7 @@ public class UtecMapData {
|
||||||
fuelChecksum += (this.fuelMap[j][i]*10 + 1000 + 1);
|
fuelChecksum += (this.fuelMap[j][i]*10 + 1000 + 1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
System.out.println("Fuel Checksum:"+fuelChecksum);
|
//System.out.println("Fuel Checksum:"+fuelChecksum);
|
||||||
|
|
||||||
int timingChecksum = 0;
|
int timingChecksum = 0;
|
||||||
for(int i=0 ; i<40 ; i++){
|
for(int i=0 ; i<40 ; i++){
|
||||||
|
@ -67,7 +154,7 @@ public class UtecMapData {
|
||||||
timingChecksum += (this.timingMap[j][i]*10 + 1000 + 1);
|
timingChecksum += (this.timingMap[j][i]*10 + 1000 + 1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
System.out.println("Timing Checksum:"+timingChecksum);
|
//System.out.println("Timing Checksum:"+timingChecksum);
|
||||||
|
|
||||||
int boostChecksum = 0;
|
int boostChecksum = 0;
|
||||||
for(int i=0 ; i<40 ; i++){
|
for(int i=0 ; i<40 ; i++){
|
||||||
|
@ -75,18 +162,19 @@ public class UtecMapData {
|
||||||
boostChecksum += (this.boostMap[j][i]*100 + 1);
|
boostChecksum += (this.boostMap[j][i]*100 + 1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
System.out.println("Boost Checksum:"+boostChecksum);
|
//System.out.println("Boost Checksum:"+boostChecksum);
|
||||||
|
|
||||||
int totalChecksum = mapChecksumValue+mapCommentChecksumValue+fuelChecksum+timingChecksum+boostChecksum;
|
int totalChecksum = mapChecksumValue+mapCommentChecksumValue+fuelChecksum+timingChecksum+boostChecksum;
|
||||||
System.out.println("Total decimal checksum:"+totalChecksum);
|
//System.out.println("Total decimal checksum:"+totalChecksum);
|
||||||
String hexString = Integer.toHexString(totalChecksum);
|
String hexString = Integer.toHexString(totalChecksum);
|
||||||
System.out.println("Total hex checksum:"+hexString);
|
//System.out.println("Total hex checksum:"+hexString);
|
||||||
|
|
||||||
hexString = hexString.substring(1);
|
hexString = hexString.substring(hexString.length()-4, hexString.length());
|
||||||
hexString = 0 + hexString;
|
hexString = 0 + hexString;
|
||||||
totalChecksum = Integer.parseInt(hexString, 16);
|
totalChecksum = Integer.parseInt(hexString, 16);
|
||||||
|
|
||||||
|
this.stringChecksumHexValue = hexString;
|
||||||
System.out.println("Total hex checksum:"+Integer.toHexString(totalChecksum));
|
System.out.println("Total hex checksum:"+Integer.toHexString(totalChecksum));
|
||||||
System.out.println("Final expected value:"+Integer.parseInt("0B05E", 16));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public void populateBoostMapData(){
|
public void populateBoostMapData(){
|
||||||
|
@ -255,14 +343,10 @@ public class UtecMapData {
|
||||||
int stop = rawMapData.indexOf("[EOF]") + 5;
|
int stop = rawMapData.indexOf("[EOF]") + 5;
|
||||||
int size = rawMapData.length();
|
int size = rawMapData.length();
|
||||||
|
|
||||||
//System.out.println("Start:" + start);
|
|
||||||
//System.out.println("Stop:" + stop);
|
|
||||||
//System.out.println("Length:" + size);
|
|
||||||
|
|
||||||
if (stop != size) {
|
if (stop != size) {
|
||||||
rawMapData.delete(0, start);
|
rawMapData.delete(0, start);
|
||||||
rawMapData.delete(stop, rawMapData.length());
|
stop = rawMapData.indexOf("[EOF]") + 5;
|
||||||
//System.out.println("***************" + rawMapData);
|
rawMapData.delete(stop, size);
|
||||||
} else {
|
} else {
|
||||||
//System.out.println("Nothing to update.");
|
//System.out.println("Nothing to update.");
|
||||||
//System.out.println(rawMapData);
|
//System.out.println(rawMapData);
|
||||||
|
@ -295,7 +379,7 @@ public class UtecMapData {
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
}
|
}
|
||||||
|
|
||||||
populateMapData();
|
populateMapDataStructures();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue