/* By Idleman (idleman@idleman.fr - http://blog.idleman.fr) Licence : CC by sa Translated to english from original, with slight modifications */ #include #include #include #include #include #include #include #include using namespace std; int pin; bool bit2[26]={}; bool bit2Interruptor[4]={}; int interruptor; int sender; string onoff; void log(string a){ cout << a << endl; } void scheduler_realtime() { struct sched_param p; p.__sched_priority = sched_get_priority_max(SCHED_RR); if( sched_setscheduler( 0, SCHED_RR, &p ) == -1 ) { perror("Failed to switch to realtime scheduler."); } } void scheduler_standard() { struct sched_param p; p.__sched_priority = 0; if( sched_setscheduler( 0, SCHED_OTHER, &p ) == -1 ) { perror("Failed to switch to normal scheduler."); } } void sendBit(bool b) { if (b) { digitalWrite(pin, HIGH); delayMicroseconds(310); //275 originally, but tweaked. digitalWrite(pin, LOW); delayMicroseconds(1340); //1225 originally, but tweaked. } else { digitalWrite(pin, HIGH); delayMicroseconds(310); //275 originally, but tweaked. digitalWrite(pin, LOW); delayMicroseconds(310); //275 originally, but tweaked. } } unsigned long power2(int power){ unsigned long integer=1; for (int i=0; i