Newer
Older
Import / research / embedded / src / tests / test-led.c
/*
Copyright (c) 2007-2013, John Ryland
*/
#include <oslayer.h>
#include <corelayer.h>

typedef struct {
    int	    A;
    int	    B;
    int	    C;
} LedControls;


void ledTest(int a, int b, int c)
{
    int fd = fsOpen("/dev/misc/led", O_RDWR);
    LedControls vals;

    vals.A = 0x01000002; vals.B = 0x00010000; vals.C = 0x01000100; // no change
    vals.A = 0x00000000; vals.B = 0x00000000; vals.C = 0x00000000; // no change

    vals.A = 0x02030102; vals.B = 0x28280100; vals.C = 0xFF050100; // left green, right orange

    vals.A = 0x02010302; vals.B = 0x00012828; vals.C = 0x000105FF; // left green, right pulsing blue
    vals.A = 0x01000002; vals.B = 0x00010000; vals.C = 0x00020100; // left green, right off

    vals.A = 0x02020202; vals.B = 0x00010000; vals.C = 0x00020100; // left green, right off
    vals.A = 0x02010302; vals.B = 0x00012828; vals.C = 0x000105FF; // left green, right off


//		  F - orange
//		  8 - off
//		  7 - orange 
//		  6 - orange
//		  5 - blue
//		  4 - off
//		  3 - orange
//		  2 - orange
//	          1 - blue
//		  0 - off
//
//		    4 - off
//		    3 - pulsing
//		    2 - flashing
//		    1 - normal
//		    0 - off
//
//		      2 - right
//		      1 - top-left

    vals.A = 0x02010102; vals.B = 0x00012828; vals.C = 0x000501FF; // left green, right orange
    vals.A = 0x02020102; vals.B = 0x00012828; vals.C = 0x000501FF; // left green, right orange

    vals.A = a; vals.B = b; vals.C = c; // left green, right orange

    //fsWrite(fd, "\2\0\0\1 \0\0\1\0 \0\1\2\0", 12);  // power on, wireless off
    //fsWrite(fd, "\2\0\0\1 \0\0\1\0 \0\1\0\1", 12); // same
    //fsWrite(fd,   "\2\3\1\2 40 40 \1 \0   255 \5\1\0", 12); // power on, wireless on

    fsWrite(fd, &vals, sizeof(vals)); // power on, wireless on
    fsClose(fd);
}


int main(int argc, char *argv[])
{
    int i;

    strPrint("SONY mylo led test\n");
    strPrint("Version 0.02\n");
    strPrint("Copyright 2007 John Ryland\n");

    strPrintf("argc: %i\n", argc);
    for (i = 0; i < argc; i++) {
	strPrintf("argv[%i] = %s\n", i, argv[i]);
    }
    i = 0; 
    while (environ[i]) {
        strPrintf("%s\n", environ[i]);
	i++;
    }

    ledTest(0,0,0);
//    ledTest(a, b, c);
    return 0;
}