Also um den Drucker mit seinen Sequenzen anzusprechen muss man den Salat als binärdatei (mit gcc -o) bauen.
Das ganze sieht dann ungefähr so aus:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <time.h>
int main(int argc, char *argv[1]) {
int i;
int fd; /* file descriptor */
char buffer[128];
struct tm strctime;
time_t realtime;
fd = open("/dev/ttyS0",O_WRONLY);
if(fd == -1) {
fprintf(stderr,"Cannot open /dev/ttyS0\n");
return 1;
}
time(&realtime);
strctime = *localtime(&realtime);
strftime(buffer, 128, "Am %Y-%m-%d um %H:%M Uhr\n", &strctime);
write(fd,"Ruebezahl Naturkost\n",strlen("Ruebezahl Naturkost\n"));
write(fd,buffer,strlen(buffer));
for(i=0; i<40; i++) {
sprintf(buffer, "%.4f EUR, ",(double)i*.987654321);
write(fd,buffer,strlen(buffer));
}
write(fd,"\nusw. usf.\n\n",strlen("\nusw. usf.\n\n"));
write(fd, "BLABLA Test Text\n",
strlen("BLABLA Test Text\n"));
write(fd,"\x1D\x56\x01",3);
close(fd);
return 0;
}
leider haben wirs noch nicht ganz raus mit dem abschneiden:
http://nccr.yokuts.org/screenshots/nccr-dein-bon.jpeg