From 04072d831e97b3c2b671f814b538ff66918387e3 Mon Sep 17 00:00:00 2001 From: Rens Pastoor <555408@student.fontys.nl> Date: Mon, 16 Jun 2025 11:22:40 +0200 Subject: [PATCH] C6 adidas done --- C/C5 and C6 Adidas/build/main | Bin 0 -> 27880 bytes C/C5 and C6 Adidas/product/channel_main.c | 35 +++++----------- C/C5 and C6 Adidas/product/decode_main.c | 48 ++++++++++------------ C/C5 and C6 Adidas/product/encode_main.c | 41 +++++++----------- 4 files changed, 45 insertions(+), 79 deletions(-) create mode 100755 C/C5 and C6 Adidas/build/main diff --git a/C/C5 and C6 Adidas/build/main b/C/C5 and C6 Adidas/build/main new file mode 100755 index 0000000000000000000000000000000000000000..4a495f48bea7e6d6e82beb4bf34ac36d609d5ddb GIT binary patch literal 27880 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 -#include +#include int channel_main(int argc, char* argv[]) { - bool running = true; FILE *input_file = fopen(argv[2], "rb"); - if (input_file == NULL) { + if (!input_file) { fprintf(stderr, "Error opening input file: %s\n", argv[2]); return 1; } FILE *output_file = fopen(argv[3], "wb"); - if (output_file == NULL) { + if (!output_file) { fprintf(stderr, "Error opening output file: %s\n", argv[3]); fclose(input_file); return 1; } - while (running){ - // Read data - unsigned char buffer[1024]; - size_t bytes_read = fread(buffer, 1, sizeof(buffer), input_file); - - if (bytes_read == 0) { - if (feof(input_file)) { - running = false; // eof reached - } else { - fprintf(stderr, "Error reading from input file\n"); - fclose(input_file); - fclose(output_file); - return 1; - } + uint8_t buffer[1024], processed[1024]; + size_t bytes_read; + while ((bytes_read = fread(buffer, 1, sizeof(buffer), input_file)) > 0) { + for (size_t i = 0; i < bytes_read; i++) { + processed[i] = channel_change_one_random_bit(buffer[i]); } - - // Channel data - unsigned char processed_data[1024]; - size_t processed_size = process_channel(buffer, bytes_read, processed_data); - - // Write data - fwrite(processed_data, 1, processed_size, output_file); + fwrite(processed, 1, bytes_read, output_file); } fclose(input_file); fclose(output_file); + printf("Channel completed successfully.\n"); return 0; } diff --git a/C/C5 and C6 Adidas/product/decode_main.c b/C/C5 and C6 Adidas/product/decode_main.c index 063c53a..9f554b3 100644 --- a/C/C5 and C6 Adidas/product/decode_main.c +++ b/C/C5 and C6 Adidas/product/decode_main.c @@ -1,51 +1,45 @@ #include "decode.h" #include -#include +#include int decode_main(int argc, char* argv[]) { - bool decoding = true; FILE *input_file = fopen(argv[2], "rb"); - if (input_file == NULL) { + if (!input_file) { fprintf(stderr, "Error opening input file: %s\n", argv[2]); return 1; } FILE *output_file = fopen(argv[3], "wb"); - if (output_file == NULL) { + if (!output_file) { fprintf(stderr, "Error opening output file: %s\n", argv[3]); fclose(input_file); return 1; } - while (decoding) - { - // Read data - unsigned char data[1024]; - unsigned char buffer_High[sizeof(data)/2]; - unsigned char buffer_Low[sizeof(data)/2]; - size_t bytes_read = fread(&data, 1, sizeof(data), input_file); - for (size_t i = 0; i < bytes_read; i++) { - buffer_High[i] = data[i + (sizeof(data)/2)]; - buffer_Low[i] = data[i]; - } - - if (bytes_read == 0) { - if (feof(input_file)) { - decoding = false; // eof reached - } else { - fprintf(stderr, "Error reading from input file\n"); + uint8_t buffer[2048], decoded[1024]; + size_t bytes_read; + // // b_r + while ((bytes_read = fread(buffer, 1, sizeof(buffer), input_file)) > 0) { + if (bytes_read % 2 != 0) { //odd check + size_t extra = fread(buffer + bytes_read, 1, 1, input_file); + if (extra == 1) { // successfully read + bytes_read++; + } else { // error reading the extra byte fclose(input_file); fclose(output_file); return 1; } } - // Decode data - unsigned char decoded_data[sizeof(data)]; - decoded_data[sizeof(data)] = decode_combine_nibbles(*buffer_High, *buffer_Low); - - // Write data - fwrite(decoded_data, 1, bytes_read, output_file); + size_t decoded_size = bytes_read / 2; + for (size_t i = 0; i < decoded_size; i++) { + decoded[i] = decode_combine_nibbles(buffer[i], buffer[i + decoded_size]); + } + fwrite(decoded, 1, decoded_size, output_file); } + + fclose(input_file); + fclose(output_file); + printf("Decoding completed successfully.\n"); return 0; } diff --git a/C/C5 and C6 Adidas/product/encode_main.c b/C/C5 and C6 Adidas/product/encode_main.c index 38db00a..9205a24 100644 --- a/C/C5 and C6 Adidas/product/encode_main.c +++ b/C/C5 and C6 Adidas/product/encode_main.c @@ -1,46 +1,33 @@ #include "encode.h" -#include #include +#include int encode_main(int argc, char* argv[]) { - bool encoding = true; FILE *input_file = fopen(argv[2], "rb"); - if (input_file == NULL) { + if (!input_file) { fprintf(stderr, "Error opening input file: %s\n", argv[2]); return 1; } FILE *output_file = fopen(argv[3], "wb"); - if (output_file == NULL) { + if (!output_file) { fprintf(stderr, "Error opening output file: %s\n", argv[3]); fclose(input_file); return 1; } - while (encoding) - { - // Read data - unsigned char buffer[512]; - size_t bytes_read = fread(buffer, 1, sizeof(buffer), input_file); - if (bytes_read == 0) { - if (feof(input_file)) { - encoding = false; // eof reached - } else { - fprintf(stderr, "Error reading from input file\n"); - fclose(input_file); - fclose(output_file); - return 1; - } + uint8_t buffer[1024], high[1024], low[1024]; + size_t bytes_read; + while ((bytes_read = fread(buffer, 1, sizeof(buffer), input_file)) > 0) { + for (size_t i = 0; i < bytes_read; i++) { + encode_value(buffer[i], &high[i], &low[i]); } - - // Encode data - unsigned char encoded_data_high[sizeof(buffer)]; - unsigned char encoded_data_low[sizeof(buffer)]; - encode_value(buffer, encoded_data_high, encoded_data_low); - - // Write data - fwrite(encoded_data_high, 1, bytes_read, output_file); - fwrite(encoded_data_low, 1, bytes_read, output_file); + fwrite(high, 1, bytes_read, output_file); + fwrite(low, 1, bytes_read, output_file); } + + fclose(input_file); + fclose(output_file); + printf("Encoding completed successfully.\n"); return 0; }