Ajout tortue fonctionne
This commit is contained in:
parent
0856b5762c
commit
eea602662f
9 changed files with 117 additions and 68 deletions
|
@ -7,11 +7,20 @@
|
|||
Keyboard::Keyboard(): Device() {}
|
||||
|
||||
//void Keyboard::run() {}
|
||||
bool Keyboard::saisie = false;
|
||||
|
||||
void Keyboard::saisie() {
|
||||
cin >> buf;
|
||||
if (i2cbus!=NULL){
|
||||
while (!(i2cbus->isEmptyRegister(i2caddr))) {}
|
||||
Device::i2cbus->write(i2caddr, buf, I2C_BUFFER_SIZE);
|
||||
void Keyboard::run() {
|
||||
while (1) {
|
||||
if (saisie && i2cbus != NULL) {
|
||||
cin >> buf;
|
||||
while (!(i2cbus->isEmptyRegister(i2caddr))) {}
|
||||
Device::i2cbus->write(i2caddr, buf, I2C_BUFFER_SIZE);
|
||||
saisie = false;
|
||||
} else if (i2cbus != NULL){
|
||||
buf[0] = '\0';
|
||||
while (!(i2cbus->isEmptyRegister(i2caddr))) {}
|
||||
Device::i2cbus->write(i2caddr, buf, I2C_BUFFER_SIZE);
|
||||
}
|
||||
sleep(3);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -168,10 +168,17 @@ void Menu::menuNext() {
|
|||
else if(id == 5){
|
||||
listId.push_back(id);
|
||||
id = 11;
|
||||
choice = 2;
|
||||
}
|
||||
else if (id == 11){
|
||||
listId.push_back(id);
|
||||
id = 12;
|
||||
choice = 2;
|
||||
}
|
||||
else if (id == 12){
|
||||
listId.clear();
|
||||
id = 0;
|
||||
choice = 0;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -5,7 +5,8 @@
|
|||
#include "../include/Terrarium.h"
|
||||
#include "../../core_simulation.h"
|
||||
Terrarium::Terrarium(int id) : id(id),
|
||||
radState(LOW), tapState(LOW){}
|
||||
radState(LOW), tapState(LOW), NextState{LOW},
|
||||
PrevState(LOW), OKState(LOW), BackState(LOW){}
|
||||
|
||||
int Terrarium::getRadState() const {
|
||||
return radState;
|
||||
|
|
|
@ -7,7 +7,9 @@
|
|||
//#include <string>
|
||||
|
||||
|
||||
Tortue::Tortue() {}
|
||||
Tortue::Tortue() {
|
||||
++nbTortue;
|
||||
}
|
||||
|
||||
Tortue::Tortue(const string &nom, const std::string &naissance, const string &sexe) : nom(nom), sexe(sexe), naissance(naissance) {
|
||||
nbTortue ++;
|
||||
|
|
0
back.txt
Normal file
0
back.txt
Normal file
11
board.cpp
11
board.cpp
|
@ -26,15 +26,12 @@ int main(){
|
|||
Board esp8266;
|
||||
// achat des senseurs et actionneurs
|
||||
AnalogSensorTemperature temperature(TEMP,DELAY);
|
||||
//DigitalActuatorLED led1(DELAY);
|
||||
IntelligentDigitalActuatorLED led1(DELAY);
|
||||
Screen screen;
|
||||
Keyboard keyboard;
|
||||
AnalogSensorLuminosity luminosite(DELAY);
|
||||
ExternalDigitalSensorButton buttonNext(DELAY, btnNextPath);
|
||||
ExternalDigitalSensorButton buttonPrev(DELAY, btnPrevPath);
|
||||
ExternalDigitalSensorButton buttonOK(DELAY, btnOkPath);
|
||||
ExternalDigitalSensorButton buttonBack(DELAY, btnBackPath);
|
||||
ExternalDigitalSensorButton buttonNext(DELAY + 2, btnNextPath);
|
||||
ExternalDigitalSensorButton buttonPrev(DELAY + 2, btnPrevPath);
|
||||
ExternalDigitalSensorButton buttonOK(DELAY + 2, btnOkPath);
|
||||
ExternalDigitalSensorButton buttonBack(DELAY + 2, btnBackPath);
|
||||
AnalogSensorManometre manometre(PRESSURE,DELAY);
|
||||
DigitalActuatorRadiator radiator(DELAY);
|
||||
DigitalActuatorElectrovanne electrovanne(DELAY);
|
||||
|
|
|
@ -13,7 +13,7 @@
|
|||
#define LOW 0
|
||||
#define MAX_I2C_DEVICES 4
|
||||
#define I2C_BUFFER_SIZE 1024
|
||||
#define MAX_IO_PIN 6
|
||||
#define MAX_IO_PIN 10
|
||||
|
||||
using namespace std;
|
||||
|
||||
|
|
|
@ -6,14 +6,16 @@
|
|||
#define PROJET_VICTORAVECUNK_KEYBOARD_H
|
||||
|
||||
#include "../../core_simulation.h"
|
||||
#include <unistd.h>
|
||||
|
||||
class Keyboard : public Device{
|
||||
protected:
|
||||
char buf[I2C_BUFFER_SIZE];
|
||||
public:
|
||||
static bool saisie;
|
||||
Keyboard();
|
||||
//virtual void run();
|
||||
void saisie();
|
||||
virtual void run();
|
||||
//void saisie();
|
||||
};
|
||||
|
||||
|
||||
|
|
133
sketch_ino.cpp
133
sketch_ino.cpp
|
@ -4,6 +4,7 @@
|
|||
#include "app/include/TerrariumParameter.h"
|
||||
#include "app/include/Menu.h"
|
||||
#include "app/include/Tortue.h"
|
||||
#include "include/I2CDevices/Keyboard.h"
|
||||
|
||||
|
||||
Terrarium *terrarium = new Terrarium(1);
|
||||
|
@ -14,11 +15,11 @@ TerrariumParameter *pressure = new TerrariumParameter(3000,
|
|||
|
||||
Menu *menu = new Menu();
|
||||
|
||||
list<Tortue> tortues;
|
||||
list<Tortue> * tortues = new list<Tortue>;
|
||||
list<Tortue>::iterator iteratorT;
|
||||
|
||||
string message;
|
||||
string input;
|
||||
string message = "";
|
||||
string input = "";
|
||||
|
||||
|
||||
|
||||
|
@ -40,10 +41,10 @@ void Board::setup(){
|
|||
|
||||
digitalWrite(0,LOW);
|
||||
//pinMode(6, OUTPUT);
|
||||
tortues.push_back(*(new Tortue("Marvin","03/09/1996","male")));
|
||||
tortues.push_back(*(new Tortue("Clara","03/09/2008", "female")));
|
||||
tortues.push_back(*(new Tortue("Camille","03/09/2017", "non binary")));
|
||||
tortues.push_back(*(new Tortue("Clarisse","03/05/1843", "danseuse")));
|
||||
tortues->push_back(*(new Tortue("Marvin","03/09/1996","male")));
|
||||
tortues->push_back(*(new Tortue("Clara","03/09/2008", "female")));
|
||||
tortues->push_back(*(new Tortue("Camille","03/09/2017", "non binary")));
|
||||
tortues->push_back(*(new Tortue("Clarisse","03/05/1843", "danseuse")));
|
||||
|
||||
}
|
||||
|
||||
|
@ -77,33 +78,35 @@ void Board::loop() {
|
|||
message = menu->getMessage();
|
||||
}
|
||||
|
||||
if (i % 2 == 0) {
|
||||
if (analogRead(3) == HIGH && (terrarium->getPrevState() != analogRead(3))) {
|
||||
terrarium->setPrevState(HIGH);
|
||||
menu->previousChoice();
|
||||
} else if (analogRead(3) == LOW && (terrarium->getPrevState() != analogRead(3))) {
|
||||
terrarium->setPrevState(LOW);
|
||||
}
|
||||
if (analogRead(4) == HIGH && (terrarium->getNextState() != analogRead(4))) {
|
||||
terrarium->setNextState(HIGH);
|
||||
menu->nextChoice();
|
||||
} else if (analogRead(4) == LOW && (terrarium->getNextState() != analogRead(4))) {
|
||||
terrarium->setNextState(LOW);
|
||||
}
|
||||
if (analogRead(6) == HIGH && (terrarium->getOkState() != analogRead(6))) {
|
||||
terrarium->setOkState(HIGH);
|
||||
cout << "OK" << endl;
|
||||
menu->menuNext();
|
||||
} else if (analogRead(6) == LOW && (terrarium->getOkState() != analogRead(6))) {
|
||||
terrarium->setOkState(LOW);
|
||||
cout << "NOK" << endl;
|
||||
}
|
||||
if (analogRead(7) == HIGH && (terrarium->getBackState() != analogRead(7))) {
|
||||
terrarium->setBackState(HIGH);
|
||||
menu->menuBack();
|
||||
} else if (analogRead(7) == LOW && (terrarium->getBackState() != analogRead(7))) {
|
||||
terrarium->setBackState(LOW);
|
||||
}
|
||||
int a3 = analogRead(3);
|
||||
int a4 = analogRead(4);
|
||||
int a6 = analogRead(6);
|
||||
int a7 = analogRead(7);
|
||||
if ( a3 == HIGH && (terrarium->getPrevState() != a3)) {
|
||||
terrarium->setPrevState(HIGH);
|
||||
menu->previousChoice();
|
||||
} else if (a3 == LOW && (terrarium->getPrevState() != a3)) {
|
||||
terrarium->setPrevState(LOW);
|
||||
}
|
||||
else if (a4 == HIGH && (terrarium->getNextState() != a4)) {
|
||||
terrarium->setNextState(HIGH);
|
||||
menu->nextChoice();
|
||||
} else if (a4 == LOW && (terrarium->getNextState() != a4)) {
|
||||
terrarium->setNextState(LOW);
|
||||
}
|
||||
else if (a6 == HIGH && (terrarium->getOkState() != a6)) {
|
||||
terrarium->setOkState(HIGH);
|
||||
cout << "OK" << endl;
|
||||
menu->menuNext();
|
||||
} else if (a6 == LOW && (terrarium->getOkState() != a6)) {
|
||||
terrarium->setOkState(LOW);
|
||||
cout << "NOK" << endl;
|
||||
}
|
||||
else if (a7 == HIGH && (terrarium->getBackState() != a7)) {
|
||||
terrarium->setBackState(HIGH);
|
||||
menu->menuBack();
|
||||
} else if (a7 == LOW && (terrarium->getBackState() != a7)) {
|
||||
terrarium->setBackState(LOW);
|
||||
}
|
||||
|
||||
// cout << buf << endl;
|
||||
|
@ -112,35 +115,63 @@ void Board::loop() {
|
|||
//sprintf(buf,"%f",temperature.getValue());
|
||||
|
||||
if (menu->getId() == 2){
|
||||
iteratorT = tortues.begin();
|
||||
iteratorT = tortues->begin();
|
||||
for (int j = 0; j < menu->getChoice(); ++j) {
|
||||
iteratorT++;
|
||||
}
|
||||
//cout << iteratorT->getInfo() << endl;
|
||||
message += iteratorT->getInfo();
|
||||
}
|
||||
if (cpt % 5 == 0) {
|
||||
if (cpt % 3 == 0) {
|
||||
strcpy(buf, message.c_str());
|
||||
bus.write(1, buf, 150);
|
||||
if (buf != NULL) bus.write(1, buf, 150);
|
||||
}
|
||||
|
||||
if (menu->getId() == 5){
|
||||
Tortue * newTortue = new Tortue();
|
||||
/*while (1){
|
||||
bus.requestFrom(2,inputBuf,150);
|
||||
|
||||
}*/
|
||||
cin >> input;
|
||||
newTortue->setNom(input);
|
||||
tortues.push_back(*newTortue);
|
||||
menu->menuNext();
|
||||
Keyboard::saisie = true ;
|
||||
sleep(5);
|
||||
if ( (&bus!=NULL)&&!(bus.isEmptyRegister(2))) {
|
||||
bus.requestFrom(2, inputBuf, 150);
|
||||
if (inputBuf[0] != '\0') {
|
||||
input = "";
|
||||
Tortue *newTortue = new Tortue();
|
||||
for (int j = 0; inputBuf[j] != '\0'; ++j) {
|
||||
input += inputBuf[j];
|
||||
}
|
||||
newTortue->setNom(input);
|
||||
tortues->push_back(*newTortue);
|
||||
menu->menuNext();
|
||||
break;
|
||||
}
|
||||
}
|
||||
} else if (menu->getId() == 11){
|
||||
cin >> input;
|
||||
tortues.back().setNaissance(input);
|
||||
menu->menuNext();
|
||||
Keyboard::saisie = true ;
|
||||
sleep(5);
|
||||
if ( (&bus!=NULL)&&!(bus.isEmptyRegister(2))) {
|
||||
bus.requestFrom(2, inputBuf, 150);
|
||||
if (inputBuf[0] != '\0') {
|
||||
input = "";
|
||||
for (int j = 0; inputBuf[j] != '\0'; ++j) {
|
||||
input += inputBuf[j];
|
||||
}
|
||||
tortues->back().setNaissance(input);
|
||||
menu->menuNext();
|
||||
break;
|
||||
}
|
||||
}
|
||||
} else if (menu->getId() == 12){
|
||||
cin >> input;
|
||||
tortues.back().setSexe(input);
|
||||
Keyboard::saisie = true ;
|
||||
if ( (&bus!=NULL)&&!(bus.isEmptyRegister(2))) {
|
||||
bus.requestFrom(2, inputBuf, 150);
|
||||
if (inputBuf[0] != '\0') {
|
||||
input = "";
|
||||
for (int j = 0; inputBuf[j] != '\0'; ++j) {
|
||||
input += inputBuf[j];
|
||||
}
|
||||
tortues->back().setSexe(input);
|
||||
menu->menuNext();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
cpt++;
|
||||
|
|
Loading…
Reference in a new issue