/* * CTHN.de MiniLEDCube * * By Kai Lauterbach (klaute at web dot de) 12/2011 * * Based on http://mosfetkiller.de/?s=miniledcube * * License: General Public License (GPL v3) * */ #include #include #include #include #include #include #include "globals.h" #include "../firmware/globals.h" // External functions to control the ledcube. extern void lc_setFrame(unsigned long); extern void lc_setMode(int); extern int lc_saveFrame(unsigned long, int, int); extern void lc_init(void); extern void lc_close(void); int main(int argc, char **argv) { lc_init(); if (argc == 2 && !strcmp((char*)argv[1], "--stop")) { printf("stop animation loop\n"); lc_setMode(MODE_ANIMATION_STOP); } else if (argc == 2 && !strcmp((char*)argv[1], "--loop")) { printf("starting animation loop\n"); lc_setMode(MODE_ANIMATION_LOOP); } else if (argc == 2 && !strcmp((char*)argv[1], "--single")) { printf("starting animation as single shot\n"); lc_setMode(MODE_ANIMATION_SINGLE); } else if (argc == 3 && !strcmp((char*)argv[1], "--view")) { lc_setMode(MODE_ANIMATION_STOP); unsigned int frame = 0; if ( sscanf((char*)argv[2], "0x%08x", &frame) ) { printf("view frame: data=0x%08x\n", frame); lc_setFrame(frame); } } else if (argc == 5 && !strcmp((char*)argv[1], "--save")) { lc_setMode(MODE_ANIMATION_STOP); // TODO parse commandline parameters unsigned int pos = 0; if ( sscanf((char*)argv[2], "%d", &pos) ) { unsigned int delay = 0; if ( sscanf((char*)argv[3], "%d", &delay) ) { unsigned int frame = 0; if ( sscanf((char*)argv[4], "0x%08x", &frame) ) { printf("saving frame: index=%d delay=%d frame=0x%08x\n", pos, delay, frame); //lc_setFrame(frame); lc_saveFrame(frame, delay, pos); } } } } lc_close(); return 0; }