bosko lekovic
/
IO_board_K22
K22 processor
IOdata/IOdata.h
- Committer:
- bosko001
- Date:
- 2021-03-21
- Revision:
- 7:4aa3dac73b66
File content as of revision 7:4aa3dac73b66:
#ifndef IODATA_H #define IODATA_H class C_data { char komanda = 0, komanda_buf = 0; // char portMin=0x0, pMin = 0xff, pMin_buf = 0xff; // char portMax, portMax_buf=0, pMax = 0, pMax_buf = 0; // char indikacija = 0x0; char ispravnost = 0x3f; // char mis = 0; char poruka; char validnost = 0; char podatak; char adresa; char aktuelna_indikacija = 0; public: // volatile char komanda = 0, komanda_buf = 0; volatile bool komanda_flag = false; volatile char pMin, pMin_buf; volatile char pMax, pMax_buf; volatile char indikacija = 0x0; char mis = 0; C_data() { clear_pMin(); clear_pMax(); } // void set_command( char cmnd ) // { // if( (cmnd & validnost) != komanda ) //komanda promenjena // { komanda = cmnd & validnost; komanda_flag = true;} // } // void set_validity( char val ) // { // validnost = val; // if( (komanda & validnost) != komanda ) { komanda = komanda & validnost; komanda_flag = true; } // } // char get_command( void ) { return komanda;} void set_command( char cmnd ) { if( (cmnd & validnost) != (komanda & validnost) ) komanda_flag = true; //komanda promenjena komanda = cmnd; } void set_validity( char val ) { if( (komanda & validnost) != (komanda & val) ) { komanda_flag = true; } validnost = val; } char get_command( void ) { return komanda & validnost;} char get_command_uncut( void ) { return komanda;} bool get_newcommand_flag( void) { bool ret = komanda_flag; komanda_flag = false; return ret;} bool check_newcommand_flag( void) { return komanda_flag; } char get_indication( void ) { return indikacija;} char get_roughIndication(void) { return pMax | pMin;} char get_raelIndication( void ) { return aktuelna_indikacija;} char get_correctness( void ) { return ispravnost;} //void bitset_correctness( char c ) { ispravnost |= c;} void clear_correctness( void ) { ispravnost = 0x3f;} // void bitset_bulbfaults( char c) { ispravnost &= ~c;} char get_bulbfaults( void ) { return ~ispravnost;} char get_faultVoltage( void ) {return mis; } // void bitset_faultVoltage( char c ) { mis |= c; } void clear_faultVoltage( void ) { mis= 0; } char get_message( void ) {return poruka; } char get_validity( void ) { return validnost;} void set_data( char data ) { podatak = data;} char get_data( void ) { return podatak;} void set_address( char c) { adresa = c; } char get_address( void) { return adresa;} void set_pMin( char p ) { pMin = (~p) & komanda; } void clear_pMin( void ) { pMin = pMin_buf = 0xff;} char set_pMax( char p ) { p |= 0xC0; pMax = (~p) & (~komanda); return pMax;} void clear_pMax( void ) { pMax = pMax_buf = 0;} void set_indication( void ) { indikacija = (pMin | pMin_buf) & komanda /* FALI!!! & validnost*/; pMin_buf = pMin; } void set_corectness( void ) { ispravnost = (ispravnost & ~komanda) | indikacija | mis; } void set_faultVoltage( void ) { mis = ( (pMax | pMax_buf) | mis ) /* validnost ? */; pMax_buf = pMax; } void set_messagge( void ) { poruka = (~komanda & mis) | (komanda & ispravnost);} void set_realIndication( void ) { aktuelna_indikacija = (~mis & ispravnost & indikacija) | (~ispravnost & validnost) | mis;} }; #endif