Проблема с программным кодом

Тема в разделе "Arduino & Shields", создана пользователем smilling, 8 июн 2022.

  1. smilling

    smilling Нуб

    Всем привет друзья, помогите решить проблему.. Все никак не могу разобраться с этим.
    Прошу о помощи, нет МОЛЮ!

    C:\Users\Vladislav\Documents\Arduino\sketch_jun08a\sketch_jun08a.ino: In function 'uint8_t getFingerprintEnroll()':
    C:\Users\Vladislav\Documents\Arduino\sketch_jun08a\sketch_jun08a.ino:298:7: warning: return-statement with no value, in function returning 'uint8_t {aka unsigned char}' [-fpermissive]
    return;
    ^~~~~~

    Сам код

    Код (C++):
    #include<LiquidCrystal.h>
    LiquidCrystal lcd(13,12,11,10,9,8);
    #include <SoftwareSerial.h>
    SoftwareSerial fingerPrint(2, 3);
    #include<Servo.h>
    Servo myServo;
    #include <Adafruit_Fingerprint.h>
    uint8_t id;
    Adafruit_Fingerprint finger = Adafruit_Fingerprint(&fingerPrint);
    #define enroll 14
    #define del 15
    #define up 16
    #define down 17
    #define openLight 6
    #define closeLight 7
    #define servoPin 5
    void setup()
    {
        delay(1000);
        myServo.attach(servoPin);
        myServo.write(180);
        pinMode(enroll, INPUT_PULLUP);
        pinMode(up, INPUT_PULLUP);
        pinMode(down, INPUT_PULLUP);
        pinMode(del, INPUT_PULLUP);
        pinMode(openLight, OUTPUT);
        pinMode(closeLight, OUTPUT);
        lcd.begin(16,2);
        lcd.print("Security System");
        lcd.setCursor(0,1);
        lcd.print("by Finger Print");
        delay(2000);
        lcd.clear();
        lcd.print("Circuit Digest");
        lcd.setCursor(0,1);
        lcd.print("Saddam Khan");
        delay(2000);
        finger.begin(57600);
        Serial.begin(9600);
        lcd.clear();
        lcd.print("Finding Module");
        lcd.setCursor(0,1);
        delay(1000);
        if (finger.verifyPassword())
        {
          Serial.println("Found fingerprint sensor!");
          lcd.clear();
          lcd.print("Found Module ");
          delay(1000);
        }
        else
        {
        Serial.println("Did not find fingerprint sensor :(");
        lcd.clear();
        lcd.print("module not Found");
        lcd.setCursor(0,1);
        lcd.print("Check Connections");
        while (1);
        }
    }
    void loop()
    {
    lcd.setCursor(0,0);
    lcd.print("Press UP/Down ");
    lcd.setCursor(0,1);
    lcd.print("to start System");
    digitalWrite(closeLight, HIGH);
    if(digitalRead(up)==0 || digitalRead(down)==0)
    {
      for(int i=0;i<5;i++)
      {
        lcd.clear();
        lcd.print("Place Finger");
        delay(2000);
        int result=getFingerprintIDez();
        if(result>=0)
        {
            digitalWrite(openLight, HIGH);
            digitalWrite(closeLight, LOW);
            lcd.clear();
            lcd.print("Allowed");
            lcd.setCursor(0,1);
            lcd.print("Gete Opened   ");
            myServo.write(0);
            delay(5000);
            myServo.write(180);
            digitalWrite(closeLight, HIGH);
            digitalWrite(openLight, LOW);
            lcd.setCursor(0,1);
            lcd.print("Gate Closed   ");
            return;
         }
       }
    }
    checkKeys();
    delay(1000);
    }
    void checkKeys()
    {
       if(digitalRead(enroll) == 0)
       {
        lcd.clear();
        lcd.print("Please Wait");
        delay(1000);
        while(digitalRead(enroll) == 0);
        Enroll();
       }
       else if(digitalRead(del) == 0)
       {
        lcd.clear();
        lcd.print("Please Wait");
        delay(1000);
        delet();
       }
    }
    void Enroll()
    {
       int count=0;
       lcd.clear();
       lcd.print("Enroll Finger    ");
       lcd.setCursor(0,1);
       lcd.print("Location:");
       while(1)
       {
         lcd.setCursor(9,1);
         lcd.print(count);
         if(digitalRead(up) == 0)
         {
           count++;
           if(count>25)
           count=0;
           delay(500);
         }
         else if(digitalRead(down) == 0)
         {
           count--;
           if(count<0)
           count=25;
           delay(500);
         }
         else if(digitalRead(del) == 0)
         {
              id=count;
              getFingerprintEnroll();
              return;
         }
           else if(digitalRead(enroll) == 0)
         {      
              return;
         }
    }
    }
    void delet()
    {
       int count=0;
       lcd.clear();
       lcd.print("Delete Finger    ");
       lcd.setCursor(0,1);
       lcd.print("Location:");
       while(1)
       {
         lcd.setCursor(9,1);
         lcd.print(count);
         if(digitalRead(up) == 0)
         {
           count++;
           if(count>25)
           count=0;
           delay(500);
         }
         else if(digitalRead(down) == 0)
         {
           count--;
           if(count<0)
           count=25;
           delay(500);
         }
         else if(digitalRead(del) == 0)
         {
              id=count;
              deleteFingerprint(id);
              return;
         }
           else if(digitalRead(enroll) == 0)
         {      
              return;
         }
    }
    }
    uint8_t getFingerprintEnroll()
    {
      int p = -1;
      lcd.clear();
      lcd.print("finger ID:");
      lcd.print(id);
      lcd.setCursor(0,1);
      lcd.print("Place Finger");
      delay(2000);
      while (p != FINGERPRINT_OK)
      {
        p = finger.getImage();
        switch (p)
        {
        case FINGERPRINT_OK:
          Serial.println("Image taken");
          lcd.clear();
          lcd.print("Image taken");
          break;
        case FINGERPRINT_NOFINGER:
          Serial.println("No Finger");
          lcd.clear();
          lcd.print("No Finger");
          break;
        case FINGERPRINT_PACKETRECIEVEERR:
          Serial.println("Communication error");
          lcd.clear();
          lcd.print("Comm Error");
          break;
        case FINGERPRINT_IMAGEFAIL:
          Serial.println("Imaging error");
          lcd.clear();
          lcd.print("Imaging Error");
          break;
        default:
          Serial.println("Unknown error");
           lcd.clear();
          lcd.print("Unknown Error");
          break;
        }
      }
      // OK success!
      p = finger.image2Tz(1);
      switch (p) {
        case FINGERPRINT_OK:
          Serial.println("Image converted");
          lcd.clear();
          lcd.print("Image converted");
          break;
        case FINGERPRINT_IMAGEMESS:
          Serial.println("Image too messy");
           lcd.clear();
           lcd.print("Image too messy");
          return p;
        case FINGERPRINT_PACKETRECIEVEERR:
          Serial.println("Communication error");
          lcd.clear();
          lcd.print("Comm Error");
          return p;
        case FINGERPRINT_FEATUREFAIL:
          Serial.println("Could not find fingerprint features");
          lcd.clear();
          lcd.print("Feature Not Found");
          return p;
        case FINGERPRINT_INVALIDIMAGE:
          Serial.println("Could not find fingerprint features");
          lcd.clear();
          lcd.print("Feature Not Found");
          return p;
        default:
          Serial.println("Unknown error");
          lcd.clear();
          lcd.print("Unknown Error");
          return p;
      }
     
      Serial.println("Remove finger");
      lcd.clear();
      lcd.print("Remove Finger");
      delay(2000);
      p = 0;
      while (p != FINGERPRINT_NOFINGER) {
        p = finger.getImage();
      }
      Serial.print("ID "); Serial.println(id);
      p = -1;
      Serial.println("Place same finger again");
       lcd.clear();
          lcd.print("Place Finger");
          lcd.setCursor(0,1);
          lcd.print("   Again");
      while (p != FINGERPRINT_OK) {
        p = finger.getImage();
        switch (p) {
        case FINGERPRINT_OK:
          Serial.println("Image taken");
          break;
        case FINGERPRINT_NOFINGER:
          Serial.print(".");
          break;
        case FINGERPRINT_PACKETRECIEVEERR:
          Serial.println("Communication error");
          break;
        case FINGERPRINT_IMAGEFAIL:
          Serial.println("Imaging error");
          break;
        default:
          Serial.println("Unknown error");
          return;
        }
      }
      // OK success!
      p = finger.image2Tz(2);
      switch (p) {
        case FINGERPRINT_OK:
          Serial.println("Image converted");
          break;
        case FINGERPRINT_IMAGEMESS:
          Serial.println("Image too messy");
          return p;
        case FINGERPRINT_PACKETRECIEVEERR:
          Serial.println("Communication error");
          return p;
        case FINGERPRINT_FEATUREFAIL:
          Serial.println("Could not find fingerprint features");
          return p;
        case FINGERPRINT_INVALIDIMAGE:
          Serial.println("Could not find fingerprint features");
          return p;
        default:
          Serial.println("Unknown error");
          return p;
      }
     
      // OK converted!
      Serial.print("Creating model for #");  Serial.println(id);
     
      p = finger.createModel();
      if (p == FINGERPRINT_OK) {
        Serial.println("Prints matched!");
      } else if (p == FINGERPRINT_PACKETRECIEVEERR) {
        Serial.println("Communication error");
        return p;
      } else if (p == FINGERPRINT_ENROLLMISMATCH) {
        Serial.println("Fingerprints did not match");
        return p;
      } else {
        Serial.println("Unknown error");
        return p;
      }  
     
      Serial.print("ID "); Serial.println(id);
      p = finger.storeModel(id);
      if (p == FINGERPRINT_OK) {
        Serial.println("Stored!");
        lcd.clear();
        lcd.print("Stored!");
        delay(2000);
      } else if (p == FINGERPRINT_PACKETRECIEVEERR) {
        Serial.println("Communication error");
        return p;
      } else if (p == FINGERPRINT_BADLOCATION) {
        Serial.println("Could not store in that location");
        return p;
      } else if (p == FINGERPRINT_FLASHERR) {
        Serial.println("Error writing to flash");
        return p;
      }
      else {
        Serial.println("Unknown error");
        return p;
      }  
    }
    int getFingerprintIDez()
    {
      uint8_t p = finger.getImage();
     
      if (p != FINGERPRINT_OK)
      return -1;
      p = finger.image2Tz();
      if (p != FINGERPRINT_OK)
      return -1;
      p = finger.fingerFastSearch();
      if (p != FINGERPRINT_OK)
      {
       lcd.clear();
       lcd.print("Finger Not Found");
       lcd.setCursor(0,1);
       lcd.print("Try Later");
       delay(2000);
      return -1;
      }
      // found a match!
      Serial.print("Found ID #");
      Serial.print(finger.fingerID);
      return finger.fingerID;
    }
    uint8_t deleteFingerprint(uint8_t id)
    {
      uint8_t p = -1;
      lcd.clear();
      lcd.print("Please wait");
      p = finger.deleteModel(id);
      if (p == FINGERPRINT_OK)
      {
        Serial.println("Deleted!");
        lcd.clear();
        lcd.print("Figer Deleted");
        lcd.setCursor(0,1);
        lcd.print("Successfully");
        delay(1000);
      }
     
      else
      {
        Serial.print("Something Wrong");
        lcd.clear();
        lcd.print("Something Wrong");
        lcd.setCursor(0,1);
        lcd.print("Try Again Later");
        delay(2000);
        return p;
      }  
    }
     
  2. DetSimen

    DetSimen Гуру

    Гугол-переводчик напрячь не пробовал? Вот на эту фразу
    "return-statement with no value, in function returning 'uint8_t"
     
  3. smilling

    smilling Нуб

    это мне не сильно помогло если честно, я не понимаю
     
  4. DetSimen

    DetSimen Гуру

    тогда другой вопрос, где ты взял этот говнокод?
     
    SergeiL, Airbus и parovoZZ нравится это.
  5. smilling

    smilling Нуб

    в инете, какой то сайт пендосский, у меня дипломная работа по этому проекту и вот такой код, что делать не знаю
     
  6. Рокки1945

    Рокки1945 Гуру

    Дай на пузырь @DetSimen - он сделает.
     
  7. smilling

    smilling Нуб

    А я и не против дать на пузырь ради такого
     
  8. parovoZZ

    parovoZZ Гуру

    А в макдоналдсах уже дипломы требуют?
     
    Andrey12 нравится это.
  9. Airbus

    Airbus Радиохулиган Модератор

    Он тебе говорит—предупреждение: return-оператор без значения, в функции, возвращающей 'uint8_t. Шо такое «р» у тебя?
     
  10. smilling

    smilling Нуб

    я не знаю если честно))
     
  11. Andrey12

    Andrey12 Гик

    Всегда требовали.
     
  12. smilling

    smilling Нуб

    Мужики, ну правда, помощь нужна, я вообще хз что делать с этой дрянью и какое значение хочет return, насчет p.. я вообще в душе не чаю
     
  13. DetSimen

    DetSimen Гуру

    Ну так, это не мы брали диплом по теме в которой ни в зуб ногой. Примеряй теперь берцы, всё равно ты больше ни на что не способен. Не нужен тебе диплом.
     
    parovoZZ и Михаил123 нравится это.
  14. Рокки1945

    Рокки1945 Гуру

    Вот защитишься - а дальше, что? Придешь на работу - с тебя спросют - а копипастеров нигде не любят.
     
  15. Airbus

    Airbus Радиохулиган Модератор

    У меня всё скомпилилось без проблем. IDE 1.8.5
    [​IMG]
    Проверяйте настройки. Плату правильно выбрали?Может и правда ну его нафиг?И правда не Ваше?Может чем то другим заняться?
    [​IMG]
     
  16. DetSimen

    DetSimen Гуру

    У тебя варнинги отключены, а у него нет. Поэтому ему и страшно, и так нихрена не знает, а тут еще канпилятор непонятно ругается, да и вапще не по-нашему
     
  17. kalapanga

    kalapanga Нерд

    Хоть бы примеры к библиотеке открыл, нашёл там этот кусок кода и слизал оттуда недостающую в той строчке букву...
    Только не спрашивай, к какой из библиотек примеры смотреть нужно!
     
  18. fogary

    fogary Гик

    Если тупо.
    1. Это не ошибка, а только предупреждение. Не хотите исправлять - игнорируйте.
    2. Что бы не ругалось, замените "return;" на "return p;"
     
  19. Airbus

    Airbus Радиохулиган Модератор

    Не люблю я Варнинги.Поэтому и отключил.По совету DiHalt
    Адский Фрукт Голдфингер?:):):)
    Ну да-всё правильно.Там в одном только месте надо это сделать.Хотя и так будет работать.
    Не люблю я скопипащеные Говнокоды. ничего не имею против их авторов,хотя они бывают большие юмористы порою. То вместо английской аое поставят русские-сразу не заметишь. Переписываешь весь оператор.То точку с запятой "забудут" поставить или скобку. Вот Канпилятор и ругается. Конечно если в теме этот код можно за три-четыре "прочёса" оживить. А если пень-пнём то миссия невыполнима. Я тут пару дней назад такой код "чесал"-заставил таки работать. Но "ашипки" были вопиющие-наверное так Авторы приучают Копипастеров думать?
     
  20. b707

    b707 Гуру

    да не... не верю я во вселенский заговор хитрых авторов. Никакие они не хитрые. такие же балбесы как копипастеры. - и ошибки все не злонамеренные. а "настоящие". от души :)
    Да что говорить про чужой код... Я тут третий день перебираю свой собственный проект от 2014 года... Писано на Qt3. а теперь надо на Qt5 запустить. Так что вы думаете - просто сотни ошибок! Блин. ну что там курят эти авторы QT - ну хоть какое-то поенятие об обратной совместимости должно быть? Ну я понимаю - новые возможности, новые методы.... А нафига старые функции переименовывать? Ну вот тупо тот же метод. что раньше - а название другое. Было setName(), стало setCaption(). сигнал активации кнопки был isActivated(), стал isTriggered()... Заняться. что ли, нечем?