bosko lekovic
/
IO_board
IO plocana FRDM K64
Diff: SPIprotokol/IOspiprotokol.cpp
- Revision:
- 7:4aa3dac73b66
- Child:
- 15:3429cdc6e5f4
diff -r 12b2660d7dff -r 4aa3dac73b66 SPIprotokol/IOspiprotokol.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/SPIprotokol/IOspiprotokol.cpp Sun Mar 21 18:20:15 2021 +0100 @@ -0,0 +1,77 @@ +#include "IOspiprotokol.h" + +#include <functional> + +// extern DigitalOut ioTest; +extern volatile char ext_command, ext_data; + +extern char verzija, reset_flag; + +void C_spiProtokol::do_writeCommand( const char command, const char data) +{ + +//pc_data->set_validity(0x3f); +//ioTest =! ioTest; + switch( command ) + { + case 1: pc_data->set_command(data); /* ioTest =! ioTest;*/ /* ext_command = command; ext_data = data; */ break; + case 2: pc_data->set_validity(data); set_reset(false); // brisanje reset flaga + /*ext_command = command; ext_data = data;*/ /*ioTest =! ioTest;*/ break; + case 3: pc_ledControl->unpack_ledBulb(data); break; // formiranje tabele sijalica + // prikazi na shift ledove + case 4: pc_ledControl->set_colorTemplate(); pc_ledControl->set_ledView(komanda);/* set_byte(pc_data->get_command()); */ break; + case 5: pc_ledControl->set_colorTemplate(); pc_ledControl->set_ledView(indikacija);/*set_byte(pc_data->get_indication());*/ break; + case 6: pc_ledControl->set_colorTemplate(); pc_ledControl->set_ledView(ispravnost);/*set_byte(pc_data->get_correctness());*/ break; + case 7: pc_ledControl->set_colorTemplate(); pc_ledControl->set_ledView(mis);/*set_byte(pc_data->get_faultVoltage());*/ break; + case 8: pc_ledControl->set_colorTemplate(); pc_ledControl->set_ledView(poruka);/* set_byte(pc_data->get_message());*/ break; + case 9: pc_ledControl->set_colorTemplate_Yellow(); pc_ledControl->set_ledView(validnost);/* set_byte(pc_data->get_validity());*/ break; + case 10: pc_ledControl->set_colorTemplate_Red(); pc_data->set_data(data); pc_ledControl->set_ledView(podatak);/* set_byte(pc_data->get_data());*/ break; + case 11: pc_data->clear_correctness( ); pc_data->clear_faultVoltage(); break; + case 12: pc_ledControl->set_colorTemplate_Green(); pc_ledControl->set_ledView(adresa);/*set_byte(pc_data->get_address());*/ break; + case 13: pc_ledControl->set_ledView(aktuelna_indikacija);pc_ledControl->set_colorTemplate(); pc_ledControl->set_ledView(aktuelna_indikacija);/* set_byte(pc_data->get_raelIndication());*/ break; + + case 14: /* brisanje look-up tabele sijalica */ break; + case 15: /* reset ploce */ break; + } +} + +char C_spiProtokol::do_readCommand( const char command, const char data) +{ + switch( command ) + { + case 0: return 0; + case 1: return data; + case 2: return pc_data->get_message(); + case 3: return verzija; + case 4: return pc_data->get_command(); // komanda paljenja sijalica + case 5: return pc_data->get_indication(); // indikacije sa sijalica + case 6: return pc_data->get_correctness(); //ispravnost sijalica + case 7: return pc_data->get_faultVoltage(); //detkcija misa + case 8: return pc_data->get_validity(); // validni izlazi + case 9: /* ne znam sta je - neki LED_IND - TREBA PROVERIti !!!! */ return 9; + case 10: /* bajt sa adrese na koju pokazuje polje data - nemoguce je realizovati */ return 10; + case 11: return pc_data->get_address(); // POTPUNA GLUPOST !!! + case 12: return pc_data->get_raelIndication(); // aktuelna indikacija + case 13: return pc_data->get_roughIndication(); // treba da bude (sirova indikacija | sirovi mis) - nepotrebno + case 14: return 14; // treba da bude sirova indikacija - Pa_min - nepotrebno + } + + return 15; +} + +void C_spiProtokol::do_readGroupCommand( const char command) +{ + switch( command ) + { + case 1: /* aktiviranje timera na 4 sekunde za gasenja IO */ break; + case 2: /* gasenje timera */ break; + } + } + + + + + + + +