From 6c163aad0fdc0bf4bd00c8fcc01bc0d091b5dc1b Mon Sep 17 00:00:00 2001 From: dronus <paul.geisler@web.de> Date: Tue, 18 Jun 2019 12:40:04 +0200 Subject: [PATCH] Test-Bilderzeugung aus Sender ausgelagert --- .gitignore | 2 ++ sender.c | 47 +++++++++++++++++++++++++---------------------- test.c | 30 ++++++++++++++++++++++++++++++ 3 files changed, 57 insertions(+), 22 deletions(-) create mode 100644 test.c diff --git a/.gitignore b/.gitignore index 4b14a1b..9e2619e 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,4 @@ +test sender + diff --git a/sender.c b/sender.c index a0c2ed4..ebf0266 100644 --- a/sender.c +++ b/sender.c @@ -1,21 +1,27 @@ #include<stdio.h> #include <stdlib.h> #include <unistd.h> +#include <string.h> - -#define WIDTH 1000 -#define HEIGHT 8 +#define WIDTH 60 +#define HEIGHT 16 int image[WIDTH*HEIGHT]; -char data[(WIDTH*HEIGHT/8)*6*4+1]; +int image_new[WIDTH*HEIGHT]; +int image_old[WIDTH*HEIGHT]; +char data[(WIDTH*HEIGHT/8)*6*4+3]; void image2data(int* image, char* data, int layout) { - int offset = 1; + int offset = 3; int x, y, xbegin, xend, xinc, mask; int linesPerPin = HEIGHT / 8; int pixel[8]; + data[0]='*'; + data[1]=0; // sync delay, sync immediately. + data[2]=0; + for (y = 0; y < linesPerPin; y++) { if ((y & 1) == (layout ? 0 : 1)) { // even numbered rows are left to right @@ -62,33 +68,30 @@ int fade(int b, int a, int t) return (rc<<0)+(gc<<8)+(bc<<16); } - int main() { - - int old=0x000000; while(1) { - long int r=rand()>>24; - int new=r+((256-r)<<16); - for(int t=0; t<256; t+=16) - { - for(int i=0; i<WIDTH*HEIGHT; i++) - //image[i]=c+(c<<8)+(c<<16)+(c<<24); - //image[i]=c; - image[i]=fade(old,new,t); - fprintf(stderr,"Data size: %i \n", (int) sizeof(data)); + int read=fread(image_new,1,sizeof(image_new),stdin); + fprintf(stderr,"Sender input size: %i \n", (int)read); + // do a fade + for(int t=0; t<256; t+=1) + { + for(int i=0; i<sizeof(image)/4; i++) + image[i]=fade(image_old[i],image_new[i],t); + image2data(image,data,0); - int written=fwrite(data,1,sizeof(data),stdout); + int written=fwrite(data,1,sizeof(data),stdout); fflush(stdout); - fprintf(stderr,"Data written: %i \n", written); + fprintf(stderr,"Sender output written: %i \n", written); - usleep(2000L); - } - old=new; + usleep(2000L); + } + + memcpy(image_old,image_new,sizeof(image_old)); } } diff --git a/test.c b/test.c new file mode 100644 index 0000000..4b3881b --- /dev/null +++ b/test.c @@ -0,0 +1,30 @@ +#include<stdio.h> +#include <stdlib.h> +#include <unistd.h> + + +#define WIDTH 60 +#define HEIGHT 16 + +char image[WIDTH*HEIGHT*4]; + + + +int main() { + while(1) + { + + for(int i=0; i<WIDTH*HEIGHT; i++) + { + int c=rand() & 0x1F1F1F; + image[i*4+0]=(c >> 0) & 0xFF; + image[i*4+1]=(c >> 8) & 0xFF; + image[i*4+2]=(c >> 16) & 0xFF; + image[i*4+3]=0; + } + + int written=fwrite(image,1,sizeof(image),stdout); + fflush(stdout); + fprintf(stderr,"Test image data written: %i \n", written); + } +} -- GitLab