bosko lekovic
/
IO_board
IO plocana FRDM K64
SPIledovi/ledControl.cpp
- Committer:
- bosko001
- Date:
- 2021-04-30
- Revision:
- 16:a3085300cac3
- Parent:
- 7:4aa3dac73b66
File content as of revision 16:a3085300cac3:
#include "ledControl.h" const E_ledColor e_colorTemplateRed[NO_LED] = { ledRed, ledRed, ledRed, ledRed, ledRed, ledRed }; const E_ledColor e_colorTemplateGreen[NO_LED] = { ledGreen, ledGreen, ledGreen, ledGreen, ledGreen, ledGreen }; const E_ledColor e_colorTemplateYellow[NO_LED] = { ledYellow, ledYellow, ledYellow, ledYellow, ledYellow, ledYellow }; const E_ledColor e_colorTemplateExample[NO_LED] = { ledRed, ledRed, ledYellow, ledGreen, ledRed, ledGreen }; void C_ledControl::set_colorTemplate_Red( void ) {apply_colorTemplate( e_colorTemplateRed);} void C_ledControl::set_colorTemplate_Green( void ) {apply_colorTemplate( e_colorTemplateGreen);} void C_ledControl::set_colorTemplate_Yellow( void ) {apply_colorTemplate( e_colorTemplateYellow);} void C_ledControl::set_colorTemplate_Example( void ) {apply_colorTemplate( e_colorTemplateExample);} void C_ledControl::apply_colorTemplate( const E_ledColor *p_lcniz) { apply_ledColorTemplate(p_lcniz); } void C_ledControl::set_ledBlinker( char no, const E_blinkPatern bp ) { switch( bp ) { case offBlink: set_ledLightTickPatern(no, 0); break; case onBlink: set_ledLightTickPatern(no, 0xff); break; case faultBlink: set_ledLightTickPatern(no, 0x72); break; case mouseBlink: set_ledLightTickPatern(no, 0x0f); break; } } void C_ledControl::insert_ledInColorTemplate( char noled, E_ledColor c) { if( noled < NO_LED ) e_colorTemplate[noled] = c; } void C_ledControl::unpack_ledBulb( char b ) { U_ledBulb u; u.command = b; insert_ledInColorTemplate(u.led, (E_ledColor)u.color); // e_colorTemplate[u.led] = (E_ledColor) (u.color); if( (u.bulb < NO_BULB) && (u.led < NO_LED)) { bulb[u.bulb] = u.led+1; // pc_data->set_validity((pc_data->get_validity()) | (1<<u.bulb)); // AKTIVIRATI NAKNADNO } } void C_ledControl::clear_ledBulbTable( void ) { for(int i=0; i<NO_LED; i++) { insert_ledInColorTemplate( i, ledOff ); // e_colorTemplate[i] = ledOff; } for(int i=0; i<NO_BULB; i++) { bulb[i] = 0xff; } // pc_data->set_validity(0); // AKTIVIRATI NAKNADNO } void C_ledControl::execute_indications( char indication) { for( char i=1, j=0; j<NO_BULB; i<<=1, j++ ) { if( pc_data->get_faultVoltage() & i ) mouse_led( bulb[j]); else if( (~(pc_data->get_correctness())) & i ) fault_led( bulb[j]); else if(pc_data->get_indication() & i) set_led( bulb[j] ); else res_led( bulb[j] ); } }