コード例 #1
0
//------------------------------------------------------------------------
// Function turns ON a range of lights.
//      Center Stage  :  5  - 10
//      Left   Stage  :  11 - 15
//      Right  Stage  :  0  - 4
//
// pre:   unsigned short* lights
//
// post:  a given range of lights is turned ON
//
void turnOnARangeOfLights(unsigned short** lights, int startBit, int numBits)
{
    unsigned short mask;
    
    turnOffAllLights(lights);
    
    mask = (~((unsigned short) ~0 << numBits) << startBit);
    
    *(*lights) |= mask;
    
}
コード例 #2
0
ファイル: LightControl.c プロジェクト: azhn/smartbike
void initializeLights() {
    uint8_t i;

    for (i=0; i<_NUM_LIGHT_TYPE; ++i) {
        _rear_lights[i]._address = _rear_light_address[i];
    }

    for (i=0; i<_NUM_LEDS; ++i) {
        _led_lights[i]._address = i;
    }
    turnOffAllLights();
}
コード例 #3
0
//------------------------------------------------------------------------
// Functions gets prompts the user for their option listed on the menu
// from printMenu() printed prior to this function
//
// pre:   stage lights UH
//
// post:  performs a number of operations on the stage lights by calling
//        the appropriate function while user is willing to do so
//
//void getUserOption(unsigned short* lights)
void getUserOption(unsigned short** lights, unsigned short** overLayPattern, int *startBit, int *numBits)
{
    int             userOption, endProgram, emptyReply;
    char            buffer[128], *line,  *endPtr, printFlag;
    
    printFlag  = endProgram = 1;
    emptyReply = 0;
    
    while(gets(buffer), (endProgram))
    {
        
        if(*buffer == '\0')   //if empty response
        {                       //re-prompt user
            while (*buffer == '\0')
            {
                printMenu();
                gets(buffer);
            }
        }
        
        strcat(buffer, "\n");
        line       = strtok(buffer, "\040\t\n");
        userOption = (int)strtol(line, &endPtr, 10);
        
        switch (userOption)
        {
            case 1:
                turnOnAllLights(lights);
                break;
            case 2:
                turnOnARangeOfLights(lights, 5, 6);
                break;
            case 3:
                turnOnARangeOfLights(lights, 11, 6);
                break;
            case 4:
                turnOnARangeOfLights(lights, 0, 5);
                break;
            case 5:
                turnOffAllLights(lights);
                break;
            case 6:
                turnOffARangeOfLights(lights, 5, 6);
                break;
            case 7:
                turnOffARangeOfLights(lights, 11, 6);
                
                break;
            case 8:
                turnOffARangeOfLights(lights, 0, 5);
                
                break;
            case 9:
                getOverlayPatternAndStartBit(overLayPattern, startBit, numBits);
                overLayOnOffPatternOntoLightConfig(lights, overLayPattern, *startBit, *numBits);
                break;
            case 10:
                printFlag = 0;
                break;
            case 11:
                printMenu();
                break;
            case 12:
                endProgram = 0;
                break;
            default:
                printf("Please enter a numeric value (1 - 12) from\n"
                       "the menu option\n");
                break;
        } //switch
        
        if(endProgram)
            printBits(**lights);
        if(printFlag && endProgram && emptyReply)
            printMenu();
        
    }
    
}