diff --git a/CCI_Java/CCI_Java/src/data/Exam_217_erster_Test.bin b/CCI_Java/CCI_Java/src/data/Exam_217_erster_Test.bin new file mode 100644 index 0000000000000000000000000000000000000000..2407bbe06be75c90458a6723576efd19e1541408 Binary files /dev/null and b/CCI_Java/CCI_Java/src/data/Exam_217_erster_Test.bin differ diff --git a/CCI_Java/CCI_Java/src/data/json_bsp.bin b/CCI_Java/CCI_Java/src/data/json_bsp.bin new file mode 100644 index 0000000000000000000000000000000000000000..cc940147c2fd52e9edbf8c2ee77ad1f1755cb271 Binary files /dev/null and b/CCI_Java/CCI_Java/src/data/json_bsp.bin differ diff --git a/CCI_Java/CCI_Java/src/interfaces/Data.java b/CCI_Java/CCI_Java/src/interfaces/Data.java index ebfbe8a883561df6b23e6f29406b52d5692c6d53..0f673c5fbfe797a79a141db2973a1b1a4a97c71d 100644 --- a/CCI_Java/CCI_Java/src/interfaces/Data.java +++ b/CCI_Java/CCI_Java/src/interfaces/Data.java @@ -4,4 +4,8 @@ public interface Data { @Override String toString(); + + byte[] getHeader(); + byte[] getData(); + String getHeaderString(); } diff --git a/CCI_Java/CCI_Java/src/regular/BinaryData.java b/CCI_Java/CCI_Java/src/regular/BinaryData.java index 9977eb3d7f4f0c260c04493949efc91676dded05..575b0e2efb940f5d5790f021572020252ba4d672 100644 --- a/CCI_Java/CCI_Java/src/regular/BinaryData.java +++ b/CCI_Java/CCI_Java/src/regular/BinaryData.java @@ -1,26 +1,74 @@ package regular; +import java.lang.reflect.UndeclaredThrowableException; +import java.nio.charset.StandardCharsets; + import interfaces.Data; +import utils.DataGenerator; +import utils.binaryUtils; public class BinaryData implements Data { - byte[] data; - - public BinaryData(byte[] data) { - this.data = data; + private byte[] completePackage; + private String completePackageString; + private String headerString; + private byte[] header; + private byte[] data; + private String keyWord; + + public BinaryData(byte[] bytePackage) { + this.completePackage = bytePackage; + this.completePackageString = this.toString(); + this.keyWord = "Temperature4 [�C];"; + this.header = isolateHeader(completePackageString, keyWord); + this.headerString = binaryUtils.hexBytesToString(this.header); + this.data = isolateData(this.completePackage, this.header.length); + } + + private byte[] isolateHeader(String completePackageString, String key) { + int pos = posOfLast(completePackageString, key); + byte[] header = new byte[pos]; + System.arraycopy(completePackage, 0, header, 0, header.length); + return header; + } + + private byte[] isolateData(byte[] complete, int pos) { + byte[] data = new byte[complete.length - pos]; + System.arraycopy(complete, pos, data, 0, data.length); + return data; + } + + private int posOfLast(String aString, String key) { + return aString.indexOf(key) + key.length(); + } + + @Deprecated + private void seperate() { + +// System.out.println("orig len: " + completePackage.length); +// System.out.println("header len: " + header.length); +// System.out.println("rest len: " + data.length); +// int tot = data.length + header.length; +// System.out.println("new total: " + tot); + + } + + public String getHeaderString() { + return this.headerString; + } + + public byte[] getData() { + return completePackage; } - - private static String bytesToHex(byte[] bytes) { - StringBuilder hexString = new StringBuilder(); - for (byte b : bytes) { - // Convert each byte to a two-digit hex string - String hex = String.format("%02X", b); - hexString.append(hex); - } - return hexString.toString(); - } + @Override + public byte[] getHeader() { + return this.header; + } + @Override public String toString() { - return bytesToHex(data); + return binaryUtils.hexToString(binaryUtils.bytesToHex(completePackage)); } + + } diff --git a/CCI_Java/CCI_Java/src/regular/CsvSaver.java b/CCI_Java/CCI_Java/src/regular/CsvSaver.java index db379cf6c2dc5ec65d225df6d87299589916dcc4..da066b17acb77c5b96bcd2dc7056f9503c495ecf 100644 --- a/CCI_Java/CCI_Java/src/regular/CsvSaver.java +++ b/CCI_Java/CCI_Java/src/regular/CsvSaver.java @@ -17,7 +17,15 @@ public class CsvSaver { public void write(Data data) { try { - writer.write(data.toString()); + writer.write(data.toString()+"\n"); + } catch (IOException e) { + e.printStackTrace(); + } + } + + public void close() { + try { + writer.close(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); diff --git a/CCI_Java/CCI_Java/src/regular/DataPublisherMock.java b/CCI_Java/CCI_Java/src/regular/DataPublisherMock.java new file mode 100644 index 0000000000000000000000000000000000000000..4231011e57bd339a201c80a8d0e91011660e5a29 --- /dev/null +++ b/CCI_Java/CCI_Java/src/regular/DataPublisherMock.java @@ -0,0 +1,26 @@ +package regular; + +import java.util.ArrayList; +import java.util.List; +import java.util.concurrent.Flow.Publisher; +import java.util.concurrent.Flow.Subscriber; + +import interfaces.Data; + +public class DataPublisherMock implements Publisher<Data> { + private List<Subscriber> subscribers = new ArrayList<>(); + + @Override + public void subscribe(Subscriber<? super Data> subscriber) { + subscribers.add(subscriber); + } + + + public void publish(Data data) { + for (Subscriber subscriber : subscribers) { +// subscriber.update(data); + } + } + + +} diff --git a/CCI_Java/CCI_Java/src/regular/DataSubscriber.java b/CCI_Java/CCI_Java/src/regular/DataSubscriber.java new file mode 100644 index 0000000000000000000000000000000000000000..6f4d861aa4884bf6d575ea117789981bbf14d9a8 --- /dev/null +++ b/CCI_Java/CCI_Java/src/regular/DataSubscriber.java @@ -0,0 +1,75 @@ +package regular; + +import java.io.BufferedWriter; +import java.io.IOException; +import java.util.concurrent.Flow.Subscriber; +import java.util.concurrent.Flow.Subscription; + +import interfaces.Data; + +public class DataSubscriber implements Subscriber<Data> { + String folder; + String fileName; + String fullPath; + public BufferedWriter bw; + CsvSaver saver; + private Subscription subscription; + + public DataSubscriber(String fileName) { + this(); + this.fileName = fileName; + } + + public DataSubscriber() { + this.folder = "C:\\DevCCI\\Eclipse\\CCI_Java\\CCI_Java\\src\\testFiles"; + this.fileName = "defaultFile.csv"; + this.fullPath = folder + "\\" + fileName; + this.bw = null; + } + + @Override + public void onSubscribe(Subscription subscription) { + saver = new CsvSaver(bw); +// try { +// bw = new BufferedWriter(new FileWriter(fullPath)); +// } catch (IOException e) { +// e.printStackTrace(); +// } + this.subscription = subscription; + subscription.request(1); + } + + @Override + public void onNext(Data item) { + subscription.request(1); + saver.write(item); +// try { +// System.out.println("in onnext"); +// bw.write(item.toString()+"\n"); +// } catch (IOException e) { +// e.printStackTrace(); +// } + } + + @Override + public void onError(Throwable throwable) { + + } + + @Override + public void onComplete() { + kill(); + } + + public void kill() { + System.out.println("killing sub"); +// try { +// bw.close(); +// System.out.println("closed writer"); +// } catch (IOException e) { +// e.printStackTrace(); +// } + saver.close(); + } + +} diff --git a/CCI_Java/CCI_Java/src/regular/StringData.java b/CCI_Java/CCI_Java/src/regular/StringData.java index e649e06eb5224717bdf6f7510362cc0e658b5c05..53844d4e98fffa85db3c5d6c01e9175193c29719 100644 --- a/CCI_Java/CCI_Java/src/regular/StringData.java +++ b/CCI_Java/CCI_Java/src/regular/StringData.java @@ -13,4 +13,10 @@ public class StringData implements Data { public String toString() { return data; } + + @Override + public byte[] getData() { + // TODO Auto-generated method stub + return null; + } } diff --git a/CCI_Java/CCI_Java/src/testFiles/defaultFile.csv b/CCI_Java/CCI_Java/src/testFiles/defaultFile.csv new file mode 100644 index 0000000000000000000000000000000000000000..b03989ea740dc6e30b9c7e43010fc6b7bf22ba4d --- /dev/null +++ b/CCI_Java/CCI_Java/src/testFiles/defaultFile.csv @@ -0,0 +1,5 @@ +This is a randomly generated String. +5468697320697320612072616E646F6D6C792067656E65726174656420537472696E672E +5468697320697320612072616E646F6D6C792067656E65726174656420537472696E672E +5468697320697320612072616E646F6D6C792067656E65726174656420537472696E672E +This is a randomly generated String. diff --git a/CCI_Java/CCI_Java/src/testFiles/defaultTestFile.csv b/CCI_Java/CCI_Java/src/testFiles/defaultTestFile.csv new file mode 100644 index 0000000000000000000000000000000000000000..bc20a729443b267d65dbbf965b0eb17b8d8d8495 Binary files /dev/null and b/CCI_Java/CCI_Java/src/testFiles/defaultTestFile.csv differ diff --git a/CCI_Java/CCI_Java/src/testFiles/firstTest.csv b/CCI_Java/CCI_Java/src/testFiles/firstTest.csv index d6443dbc6458c35d24fc418acbcc19e92d0f91e6..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 100644 --- a/CCI_Java/CCI_Java/src/testFiles/firstTest.csv +++ b/CCI_Java/CCI_Java/src/testFiles/firstTest.csv @@ -1,100 +0,0 @@ -5468697320697320612072616E646F6D6C792067656E65726174656420537472696E672E -5468697320697320612072616E646F6D6C792067656E65726174656420537472696E672E -5468697320697320612072616E646F6D6C792067656E65726174656420537472696E672E -5468697320697320612072616E646F6D6C792067656E65726174656420537472696E672E -5468697320697320612072616E646F6D6C792067656E65726174656420537472696E672E -5468697320697320612072616E646F6D6C792067656E65726174656420537472696E672E -5468697320697320612072616E646F6D6C792067656E65726174656420537472696E672E -5468697320697320612072616E646F6D6C792067656E65726174656420537472696E672E -5468697320697320612072616E646F6D6C792067656E65726174656420537472696E672E -5468697320697320612072616E646F6D6C792067656E65726174656420537472696E672E -5468697320697320612072616E646F6D6C792067656E65726174656420537472696E672E -5468697320697320612072616E646F6D6C792067656E65726174656420537472696E672E -5468697320697320612072616E646F6D6C792067656E65726174656420537472696E672E -5468697320697320612072616E646F6D6C792067656E65726174656420537472696E672E -5468697320697320612072616E646F6D6C792067656E65726174656420537472696E672E -5468697320697320612072616E646F6D6C792067656E65726174656420537472696E672E -5468697320697320612072616E646F6D6C792067656E65726174656420537472696E672E -5468697320697320612072616E646F6D6C792067656E65726174656420537472696E672E -5468697320697320612072616E646F6D6C792067656E65726174656420537472696E672E -5468697320697320612072616E646F6D6C792067656E65726174656420537472696E672E -5468697320697320612072616E646F6D6C792067656E65726174656420537472696E672E -5468697320697320612072616E646F6D6C792067656E65726174656420537472696E672E -5468697320697320612072616E646F6D6C792067656E65726174656420537472696E672E -5468697320697320612072616E646F6D6C792067656E65726174656420537472696E672E -5468697320697320612072616E646F6D6C792067656E65726174656420537472696E672E -5468697320697320612072616E646F6D6C792067656E65726174656420537472696E672E -5468697320697320612072616E646F6D6C792067656E65726174656420537472696E672E -5468697320697320612072616E646F6D6C792067656E65726174656420537472696E672E -5468697320697320612072616E646F6D6C792067656E65726174656420537472696E672E -5468697320697320612072616E646F6D6C792067656E65726174656420537472696E672E -5468697320697320612072616E646F6D6C792067656E65726174656420537472696E672E -5468697320697320612072616E646F6D6C792067656E65726174656420537472696E672E -5468697320697320612072616E646F6D6C792067656E65726174656420537472696E672E -5468697320697320612072616E646F6D6C792067656E65726174656420537472696E672E -5468697320697320612072616E646F6D6C792067656E65726174656420537472696E672E -5468697320697320612072616E646F6D6C792067656E65726174656420537472696E672E -5468697320697320612072616E646F6D6C792067656E65726174656420537472696E672E -5468697320697320612072616E646F6D6C792067656E65726174656420537472696E672E -5468697320697320612072616E646F6D6C792067656E65726174656420537472696E672E -5468697320697320612072616E646F6D6C792067656E65726174656420537472696E672E -5468697320697320612072616E646F6D6C792067656E65726174656420537472696E672E -5468697320697320612072616E646F6D6C792067656E65726174656420537472696E672E -5468697320697320612072616E646F6D6C792067656E65726174656420537472696E672E -5468697320697320612072616E646F6D6C792067656E65726174656420537472696E672E -5468697320697320612072616E646F6D6C792067656E65726174656420537472696E672E -5468697320697320612072616E646F6D6C792067656E65726174656420537472696E672E -5468697320697320612072616E646F6D6C792067656E65726174656420537472696E672E -5468697320697320612072616E646F6D6C792067656E65726174656420537472696E672E -5468697320697320612072616E646F6D6C792067656E65726174656420537472696E672E -5468697320697320612072616E646F6D6C792067656E65726174656420537472696E672E -5468697320697320612072616E646F6D6C792067656E65726174656420537472696E672E -5468697320697320612072616E646F6D6C792067656E65726174656420537472696E672E -5468697320697320612072616E646F6D6C792067656E65726174656420537472696E672E -5468697320697320612072616E646F6D6C792067656E65726174656420537472696E672E -5468697320697320612072616E646F6D6C792067656E65726174656420537472696E672E -5468697320697320612072616E646F6D6C792067656E65726174656420537472696E672E -5468697320697320612072616E646F6D6C792067656E65726174656420537472696E672E -5468697320697320612072616E646F6D6C792067656E65726174656420537472696E672E -5468697320697320612072616E646F6D6C792067656E65726174656420537472696E672E -5468697320697320612072616E646F6D6C792067656E65726174656420537472696E672E -5468697320697320612072616E646F6D6C792067656E65726174656420537472696E672E -5468697320697320612072616E646F6D6C792067656E65726174656420537472696E672E -5468697320697320612072616E646F6D6C792067656E65726174656420537472696E672E -5468697320697320612072616E646F6D6C792067656E65726174656420537472696E672E -5468697320697320612072616E646F6D6C792067656E65726174656420537472696E672E -5468697320697320612072616E646F6D6C792067656E65726174656420537472696E672E -5468697320697320612072616E646F6D6C792067656E65726174656420537472696E672E -5468697320697320612072616E646F6D6C792067656E65726174656420537472696E672E -5468697320697320612072616E646F6D6C792067656E65726174656420537472696E672E -5468697320697320612072616E646F6D6C792067656E65726174656420537472696E672E -5468697320697320612072616E646F6D6C792067656E65726174656420537472696E672E -5468697320697320612072616E646F6D6C792067656E65726174656420537472696E672E -5468697320697320612072616E646F6D6C792067656E65726174656420537472696E672E -5468697320697320612072616E646F6D6C792067656E65726174656420537472696E672E -5468697320697320612072616E646F6D6C792067656E65726174656420537472696E672E -5468697320697320612072616E646F6D6C792067656E65726174656420537472696E672E -5468697320697320612072616E646F6D6C792067656E65726174656420537472696E672E -5468697320697320612072616E646F6D6C792067656E65726174656420537472696E672E -5468697320697320612072616E646F6D6C792067656E65726174656420537472696E672E -5468697320697320612072616E646F6D6C792067656E65726174656420537472696E672E -5468697320697320612072616E646F6D6C792067656E65726174656420537472696E672E -5468697320697320612072616E646F6D6C792067656E65726174656420537472696E672E -5468697320697320612072616E646F6D6C792067656E65726174656420537472696E672E -5468697320697320612072616E646F6D6C792067656E65726174656420537472696E672E -5468697320697320612072616E646F6D6C792067656E65726174656420537472696E672E -5468697320697320612072616E646F6D6C792067656E65726174656420537472696E672E -5468697320697320612072616E646F6D6C792067656E65726174656420537472696E672E -5468697320697320612072616E646F6D6C792067656E65726174656420537472696E672E -5468697320697320612072616E646F6D6C792067656E65726174656420537472696E672E -5468697320697320612072616E646F6D6C792067656E65726174656420537472696E672E -5468697320697320612072616E646F6D6C792067656E65726174656420537472696E672E -5468697320697320612072616E646F6D6C792067656E65726174656420537472696E672E -5468697320697320612072616E646F6D6C792067656E65726174656420537472696E672E -5468697320697320612072616E646F6D6C792067656E65726174656420537472696E672E -5468697320697320612072616E646F6D6C792067656E65726174656420537472696E672E -5468697320697320612072616E646F6D6C792067656E65726174656420537472696E672E -5468697320697320612072616E646F6D6C792067656E65726174656420537472696E672E -5468697320697320612072616E646F6D6C792067656E65726174656420537472696E672E -5468697320697320612072616E646F6D6C792067656E65726174656420537472696E672E -5468697320697320612072616E646F6D6C792067656E65726174656420537472696E672E diff --git a/CCI_Java/CCI_Java/src/testing/PubSubTesting.java b/CCI_Java/CCI_Java/src/testing/PubSubTesting.java new file mode 100644 index 0000000000000000000000000000000000000000..9eededbdfad3ea3eae7def171d7b6903da1f2e4f --- /dev/null +++ b/CCI_Java/CCI_Java/src/testing/PubSubTesting.java @@ -0,0 +1,31 @@ +package testing; + +import java.util.concurrent.SubmissionPublisher; + +import interfaces.Data; +import regular.DataSubscriber; +import utils.DataGenerator; + +public class PubSubTesting { + + public static void main(String[] args) { + + SubmissionPublisher<Data> publisher = new SubmissionPublisher<>(); + DataSubscriber subscriber = new DataSubscriber(); + publisher.subscribe(subscriber); + + for (int lines = 0; lines < 10; lines++) { + publisher.submit(DataGenerator.generateRandom()); + } + + try { + Thread.sleep(100); + publisher.close(); + System.out.println("should be closed"); + } catch (InterruptedException e) { + e.printStackTrace(); + } + + } + +} diff --git a/CCI_Java/CCI_Java/src/testing/StringCutFiddle.java b/CCI_Java/CCI_Java/src/testing/StringCutFiddle.java new file mode 100644 index 0000000000000000000000000000000000000000..1ff5f333fe5a80e16713b78d06acd058c6621d57 --- /dev/null +++ b/CCI_Java/CCI_Java/src/testing/StringCutFiddle.java @@ -0,0 +1,37 @@ +package testing; + +import interfaces.Data; +import regular.BinaryData; +import utils.DataGenerator; + +public class StringCutFiddle { + + public static void main(String[] args) { + + Data data = DataGenerator.generateFirstData(); + String testString = data.toString(); + String searchedString = "Temperature4 [�C];"; + int pos = testString.indexOf(searchedString); + int lenHeader = pos + searchedString.length(); +// System.out.println(testString.substring(0, pos+searchedString.length())); + byte[] header = new byte[lenHeader + 4]; + System.arraycopy(data.getData(), 0, header, 0, header.length); + Data meta = new BinaryData(header); + System.out.println(meta.toString()); + + byte[] rest = new byte[data.getData().length - header.length]; + System.arraycopy(data.getData(), header.length, rest, 0, rest.length); + Data noMeta = new BinaryData(rest); + + System.out.println("orig len: " + data.getData().length); + System.out.println("header len: " + header.length); + System.out.println("rest len: " + rest.length); + int tot = rest.length + header.length; + System.out.println("new total: " + tot); +// String dataString = testString.substring(pos+searchedString.length(), testString.length()); +// System.out.println(dataString); + // String newString = originalString.substring(startIndex, endIndex); + // .substring(0, pos+searchedString.length()) + } + +} diff --git a/CCI_Java/CCI_Java/src/testing/TestBinaryData.java b/CCI_Java/CCI_Java/src/testing/TestBinaryData.java index bf867ec4f2fff115febdbe25a792efbda975540a..27324a5a168c0dcc09f18aa060c48d3b31a4a200 100644 --- a/CCI_Java/CCI_Java/src/testing/TestBinaryData.java +++ b/CCI_Java/CCI_Java/src/testing/TestBinaryData.java @@ -1,14 +1,20 @@ package testing; import regular.BinaryData; +import utils.DataGenerator; import interfaces.Data; public class TestBinaryData { public static void main(String[] args) { - byte[] binaryData = {0x4A, 0x6F, 0x68, 0x6E}; // Represents "John" - Data data = new BinaryData(binaryData); +// byte[] binaryData = { 0x4A, 0x6F, 0x68, 0x6E }; // Represents "John" +// Data data = new BinaryData(binaryData); +// System.out.println(data.toString()); - System.out.println(data.toString()); + Data data = DataGenerator.generateFirstData(); + System.out.println(data.getHeaderString()); + } + + } diff --git a/CCI_Java/CCI_Java/src/testing/TestCsvSaver.java b/CCI_Java/CCI_Java/src/testing/TestCsvSaver.java new file mode 100644 index 0000000000000000000000000000000000000000..ada3fe04b14621b16d7396528a9a70177faa588d --- /dev/null +++ b/CCI_Java/CCI_Java/src/testing/TestCsvSaver.java @@ -0,0 +1,35 @@ +package testing; + +import java.io.BufferedWriter; +import java.io.FileWriter; +import java.io.IOException; + +import interfaces.Data; +import regular.CsvSaver; +import utils.DataGenerator; + +public class TestCsvSaver { + + public static void main(String[] args) { + + String folder = "C:\\DevCCI\\Eclipse\\CCI_Java\\CCI_Java\\src\\testFiles"; + String fileName = "defaultTestFile.csv"; + String fullPath = folder + "\\" + fileName; + BufferedWriter bw = null; + + try { + bw = new BufferedWriter(new FileWriter(fullPath)); + CsvSaver saver = new CsvSaver(bw); + + for (int lines = 0; lines < 100; lines++) { + saver.write(DataGenerator.generateRandom()); + } + saver.close(); + + } catch (IOException e) { + e.printStackTrace(); + } + + } + +} diff --git a/CCI_Java/CCI_Java/src/testing/TestDataGenerator.java b/CCI_Java/CCI_Java/src/testing/TestDataGenerator.java index 693fde6563f5a2c61d2973d76e6102aeb28bc913..a3f20782c8dcc58a24df2295ab3477680cb517df 100644 --- a/CCI_Java/CCI_Java/src/testing/TestDataGenerator.java +++ b/CCI_Java/CCI_Java/src/testing/TestDataGenerator.java @@ -1,5 +1,21 @@ package testing; +import interfaces.Data; +import utils.DataGenerator; + public class TestDataGenerator { + + + public static void main(String[] args) { + Data dataS = DataGenerator.generateString(); + System.out.println("String: " + dataS.toString()); + Data dataB = DataGenerator.generateByte(); + System.out.println("Byte: " + dataB.toString()); + + for (int i = 0; i < 5; i++) { + Data dataR = DataGenerator.generateRandom(); + System.out.println("Random: " + dataR.toString()); + } + } } diff --git a/CCI_Java/CCI_Java/src/testing/TestLoadJSON.java b/CCI_Java/CCI_Java/src/testing/TestLoadJSON.java new file mode 100644 index 0000000000000000000000000000000000000000..6503d487eb7badba4948b579e3b22051db09fdf4 --- /dev/null +++ b/CCI_Java/CCI_Java/src/testing/TestLoadJSON.java @@ -0,0 +1,31 @@ +package testing; + +import java.io.BufferedWriter; +import java.io.FileWriter; +import java.io.IOException; + +import regular.CsvSaver; +import utils.DataGenerator; + +public class TestLoadJSON { + + public static void main(String[] args) { + String folder = "C:\\DevCCI\\Eclipse\\CCI_Java\\CCI_Java\\src\\testFiles"; + String fileName = "defaultTestFile.csv"; + String fullPath = folder + "\\" + fileName; + BufferedWriter bw = null; + + try { + bw = new BufferedWriter(new FileWriter(fullPath)); + CsvSaver saver = new CsvSaver(bw); + + saver.write(DataGenerator.generateJSON()); + + saver.close(); + + } catch (IOException e) { + e.printStackTrace(); + } + } + +} diff --git a/CCI_Java/CCI_Java/src/testing/TestStringData.java b/CCI_Java/CCI_Java/src/testing/TestStringData.java new file mode 100644 index 0000000000000000000000000000000000000000..129c0b20bcdc6dccfad2300bbc47df99f66ed96f --- /dev/null +++ b/CCI_Java/CCI_Java/src/testing/TestStringData.java @@ -0,0 +1,14 @@ +package testing; + +import regular.BinaryData; +import regular.StringData; +import interfaces.Data; + +public class TestStringData { + + public static void main(String[] args) { + String stringData = "This is a String!"; // Represents "John" + Data data = new StringData(stringData); + System.out.println(data.toString()); + } +} diff --git a/CCI_Java/CCI_Java/src/testing/Testing.java b/CCI_Java/CCI_Java/src/testing/Testing.java index 97c53e1e63ec4830c49b820372859310724af6a8..531a24124eef09506d2226c2d7ccf810921f86ba 100644 --- a/CCI_Java/CCI_Java/src/testing/Testing.java +++ b/CCI_Java/CCI_Java/src/testing/Testing.java @@ -13,21 +13,17 @@ public class Testing { public static void main(String[] args) { String folder = "C:\\DevCCI\\Eclipse\\CCI_Java\\CCI_Java\\src\\testFiles"; - String fileName = "firstTest.csv"; + String fileName = "defaultTestFile.csv"; String fullPath = folder + "\\" + fileName; BufferedWriter bw = null; try { bw = new BufferedWriter(new FileWriter(fullPath)); // bw.write("testingtestingtestingtesting"); - System.out.println("writer created"); CsvSaver saver = new CsvSaver(bw); for (int lines = 0; lines < 100; lines++) { -// bw.write("testingtestingtestingtesting"); - saver.write(DataGenerator.generateByte()); - bw.newLine(); - + saver.write(DataGenerator.generateRandom()); } bw.close(); diff --git a/CCI_Java/CCI_Java/src/testing/TestingDataLoader.java b/CCI_Java/CCI_Java/src/testing/TestingDataLoader.java new file mode 100644 index 0000000000000000000000000000000000000000..1de373509a6cb77e2dd5d8814299dfc6345c2e1e --- /dev/null +++ b/CCI_Java/CCI_Java/src/testing/TestingDataLoader.java @@ -0,0 +1,34 @@ +package testing; + +import java.io.BufferedWriter; +import java.io.FileWriter; +import java.io.IOException; + +import interfaces.Data; +import regular.CsvSaver; +import utils.BinaryDataLoader; +import utils.DataGenerator; + +public class TestingDataLoader { + + public static void main(String[] args) { + + String folder = "C:\\DevCCI\\Eclipse\\CCI_Java\\CCI_Java\\src\\testFiles"; + String fileName = "defaultTestFile.csv"; + String fullPath = folder + "\\" + fileName; + BufferedWriter bw = null; + + try { + bw = new BufferedWriter(new FileWriter(fullPath)); + CsvSaver saver = new CsvSaver(bw); + + saver.write(DataGenerator.generateFirstData()); + + saver.close(); + + } catch (IOException e) { + e.printStackTrace(); + } + } + +} diff --git a/CCI_Java/CCI_Java/src/utils/BinaryDataLoader.java b/CCI_Java/CCI_Java/src/utils/BinaryDataLoader.java new file mode 100644 index 0000000000000000000000000000000000000000..6082a518270f26b2783660147f0e48b4fcb21238 --- /dev/null +++ b/CCI_Java/CCI_Java/src/utils/BinaryDataLoader.java @@ -0,0 +1,25 @@ +package utils; + +import java.io.FileInputStream; +import java.io.IOException; + +import interfaces.Data; +import regular.BinaryData; + +public class BinaryDataLoader { + + public static byte[] loadData(String filePath) { + + try (FileInputStream fileInputStream = new FileInputStream(filePath)) { + byte[] data = fileInputStream.readAllBytes(); + return data; + } catch (IOException e) { + e.printStackTrace(); + } + return null; + } + + public static Data loadDataToCover(String filePath) { + return new BinaryData(loadData(filePath)); + } +} diff --git a/CCI_Java/CCI_Java/src/utils/DataGenerator.java b/CCI_Java/CCI_Java/src/utils/DataGenerator.java index ba353f0cd7193fea721dd2c237a260cd3aa309c6..1513ad6c76685effb9dc3687aa095de2432056cc 100644 --- a/CCI_Java/CCI_Java/src/utils/DataGenerator.java +++ b/CCI_Java/CCI_Java/src/utils/DataGenerator.java @@ -55,6 +55,24 @@ public class DataGenerator { public static Data generateRandom() { Random random = new Random(); - return random.nextInt() == 1 ? generateByte() : generateString(); + return random.nextInt(2) == 1 ? generateByte() : generateString(); + } + + public static Data generateJSON() { + String folderBin = "C:\\DevCCI\\Eclipse\\CCI_Java\\CCI_Java\\src\\data"; + String fileNameBin = "json_bsp.bin"; + String fullPathBin = folderBin + "\\" + fileNameBin; + return BinaryDataLoader.loadDataToCover(fullPathBin); + } + + public static String cutJSON() { + return ""; + } + + public static Data generateFirstData() { + String folderBin = "C:\\DevCCI\\Eclipse\\CCI_Java\\CCI_Java\\src\\data"; + String fileNameBin = "Exam_217_erster_Test.bin"; + String fullPathBin = folderBin + "\\" + fileNameBin; + return BinaryDataLoader.loadDataToCover(fullPathBin); } } diff --git a/CCI_Java/CCI_Java/src/utils/binaryUtils.java b/CCI_Java/CCI_Java/src/utils/binaryUtils.java new file mode 100644 index 0000000000000000000000000000000000000000..27a3759ae7e629c0411dcc1a22095796382cfd89 --- /dev/null +++ b/CCI_Java/CCI_Java/src/utils/binaryUtils.java @@ -0,0 +1,37 @@ +package utils; + +import java.nio.charset.StandardCharsets; + +public class binaryUtils { + + public static String hexToString(String hex) { + // Validate the input + if (hex.length() % 2 != 0) { + throw new IllegalArgumentException("Hex string must have an even length."); + } + + // Convert hex to bytes + byte[] bytes = new byte[hex.length() / 2]; + for (int i = 0; i < hex.length(); i += 2) { + // Parse each pair of hex characters + bytes[i / 2] = (byte) ((Character.digit(hex.charAt(i), 16) << 4) + Character.digit(hex.charAt(i + 1), 16)); + } + + // Convert bytes to string + return new String(bytes, StandardCharsets.UTF_8); + } + + public static String bytesToHex(byte[] bytes) { + StringBuilder hexString = new StringBuilder(); + for (byte b : bytes) { + // Convert each byte to a two-digit hex string + String hex = String.format("%02X", b); + hexString.append(hex); + } + return hexString.toString(); + } + + public static String hexBytesToString(byte[] bytes) { + return hexToString(bytesToHex(bytes)); + } +}