Problém zobrazeni znaku v obsahu FRID (arduino, C) Vyřešeno

Místo pro dotazy a rady ohledně programovacích jazyků (C++, C#, PHP, ASP, Javascript, VBS..) a tvorby webových stránek

Moderátor: Mods_senior

Uživatelský avatar
Mr_Egot
nováček
Příspěvky: 49
Registrován: září 19
Bydliště: Strasbourg
Pohlaví: Muž
Stav:
Offline

Problém zobrazeni znaku v obsahu FRID (arduino, C)

Příspěvekod Mr_Egot » 26 zář 2019 17:50

Nazdar vlčáci !

[Pouzity material] :
- Arduino UNO
- RFID - RC522
(vyzkouseno na dvou modelech Fruiduino / FreeNove + ELEGOO)

- Muj problém spociva ve zobrazeném vysledném obsahu, ktery na misto zobrazeni spravnych znaku zobrazuje znaky jako "wׅa⸮⸮(⸮
" snad mi rozumite. Coz mi nasledovne vrati neco jako :
JGIE002⸮*&Iv⸮2⸮w
JGIE002⸮*&Iv⸮2⸮
atd. Jen ta prvni polovina JGIE002 se zda ze je zobrazena korektne.

V "seriovém monitoru" to pak vypada nejak nasledovne :
Obrázek

[Ucel]
- Ceho bych potreboval dosahnout, je prekopirovat mou klicenku k otvirani dveri, jelikoz jsem jednu jiz stratil, chtel bych si naklonovat tu jednu zbyvajici. Jde o takovou tu modrou placku nebo jak to nazvat k otvirani domovnich dveri (RFID cipova karta / klicenka). Problém je ale v tom, ze ji nedokazu korektne precist, jelikoz mi vraci ruzné 'chars'.
Obrázek

- Je-li potreba, dokladam i pouzity kod:

Kód: Vybrat vše

//Mr.Egot https://pc-help.cnews.cz
#include <SPI.h>
#include <RFID.h>
//D10: deklarace pin SDA. D9: pin RST
RFID rfid(10,9);   
//4-bytové sériové cislo karty -- paty  bajt je kontrolni bajt
unsigned char serNum[5];
unsigned char status;
unsigned char str[MAX_LEN];
unsigned char blockAddr; //Vybrat  adresu provozniho bloku: od 0 do 63     
 
unsigned char writeDate[16] = "Vytvorit promenou ktera ulozi predchozi nacteni karty cislo 1"
//16 sektoru - délka  v kazdém sektoru je 6 bajtu
unsigned char sectorKeyA[16][16] = {
  {  0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF  } ,
  {  0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF  } ,
  {  0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF  } ,
  {  0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF  } ,
  {  0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF  } ,
  {  0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF  } ,
  {  0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF  } ,
  {  0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF  } ,
  {  0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF  } ,
  {  0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF  } ,
  {  0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF  } ,
  {  0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF  } ,
  {  0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF  } ,
  {  0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF  } ,
  {  0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF  } ,
  {  0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF  } ,
  };
void setup()
{
  Serial.begin(9600);
  SPI.begin();
  rfid.init();
}
void loop()
{
  rfid.findCard(PICC_REQIDL, str);
    if (rfid.anticoll(str) == MI_OK){     
      Serial.print("ID pouzité karty je:  ");
      for(int i = 0; i < 4; i++){
        Serial.print(0x0F & (str[i] >> 4),HEX);
        Serial.print(0x0F & str[i],HEX);
      }
      Serial.println("");
      memcpy(rfid.serNum,str,5);
    }
  rfid.selectTag(rfid.serNum);
  /*
  Zvolit zapis nebo cteni
  writeCard(4); //Zapis na ctecku karet
  */
  readCard(4); //Nacteni z ctectky karet
  rfid.halt(); //Prechod do stavu spanku
}
//Zapis na kartu
void writeCard(int blockAddr){ 
  if (rfid.auth(PICC_AUTHENT1A, blockAddr, sectorKeyA[blockAddr/4], rfid.serNum) == MI_OK) 
  {
    //status = rfid.write((blockAddr/4 + 3*(blockAddr/4+1)), sectorKeyA[0]);
    Serial.print("Nastavit novy obsah karty / upravit data sektoru: ");
    Serial.println(blockAddr/4,DEC);
    if(rfid.write(blockAddr, writeDate) == MI_OK){
      Serial.println("Zapis na kartu OK!");
    }
  }
}
//Cteni z karty
void readCard(int blockAddr){
  if ( rfid.auth(PICC_AUTHENT1A, blockAddr, sectorKeyA[blockAddr/4], rfid.serNum) == MI_OK) 
  {
    Serial.print("Nacteni block Addr chipu sektor cislo: ");
    Serial.println(blockAddr,DEC);
    if( rfid.read(blockAddr, str) == MI_OK){
      Serial.print("Zobrazeni ulozenych dat: ");
      Serial.println((char *)str);
    }
  }
}


Predem dekuji za mozné navrhy ci pomoc.

Mr.Egot

Reklama
Uživatelský avatar
faraon
Master Level 8.5
Master Level 8.5
Příspěvky: 7359
Registrován: prosinec 10
Pohlaví: Muž
Stav:
Offline

Re: Problém zobrazeni znaku v obsahu FRID (arduino, C)

Příspěvekod faraon » 26 zář 2019 20:18

A jaké mají být ty "správné" znaky? Nepatří do jiné znakové sady?

Zkus místo řetězce vypsat ASCII kódy jednotlivých znaků, ať je vidět co to vlastně obsahuje.
"Král Lávra má dlouhé oslí uši, král je ušatec!

(pravil K. H. Borovský o cenzuře internetu)

Uživatelský avatar
Mr_Egot
nováček
Příspěvky: 49
Registrován: září 19
Bydliště: Strasbourg
Pohlaví: Muž
Stav:
Offline

Re: Problém zobrazeni znaku v obsahu FRID (arduino, C)

Příspěvekod Mr_Egot » 26 zář 2019 21:15

faraon píše:Zkus místo řetězce vypsat ASCII kódy jednotlivých znaků, ať je vidět co to vlastně obsahuje.


Dekuji.
Mate nejaky navrh, jak bych to mohl provést ?
Mozna je to tim, ze uz to dlouho zkousim, ale nejak se mi nedari.
Nebranim se tomu , kdyby to mohlo byt s mensi ukazkou (upravou) kodu :-)

Uživatelský avatar
faraon
Master Level 8.5
Master Level 8.5
Příspěvky: 7359
Registrován: prosinec 10
Pohlaví: Muž
Stav:
Offline

Re: Problém zobrazeni znaku v obsahu FRID (arduino, C)  Vyřešeno

Příspěvekod faraon » 27 zář 2019 05:26

V normálním Céčku by to šlo takhle:

Kód: Vybrat vše

for (i=0; str[i]; ++i)
    printf("%d\t%c\n", str[i], str[i]);

Koukni do manuálu a najdi způsob, jak na tu sériovou linku vypsat číslo, hodnotu nějakého bajtu.
"Král Lávra má dlouhé oslí uši, král je ušatec!

(pravil K. H. Borovský o cenzuře internetu)

Uživatelský avatar
Mr_Egot
nováček
Příspěvky: 49
Registrován: září 19
Bydliště: Strasbourg
Pohlaví: Muž
Stav:
Offline

Re: Problém zobrazeni znaku v obsahu FRID (arduino, C)

Příspěvekod Mr_Egot » 27 zář 2019 17:20

Zabralo to !
Mockrat dekuji za pomoc s vyresenim mého problému.

Preji Vam pekny zbytek dne.


  • Mohlo by vás zajímat
    Odpovědi
    Zobrazení
    Poslední příspěvek
  • Nefunguje rozšířené zobrazení na projektor
    od Serg01 » 02 bře 2024 16:17 » v Windows 11, 10, 8...
    0
    557
    od Serg01 Zobrazit poslední příspěvek
    02 bře 2024 16:17
  • Lenovo T440 - extrémně slabé zobrazení na displeji
    od Karrex » 27 dub 2023 20:11 » v Problémy s hardwarem
    7
    949
    od Karrex Zobrazit poslední příspěvek
    01 kvě 2023 16:52
  • nové PC - divné "zrnité" zobrazení Příloha(y)
    od Gerill » 05 srp 2023 04:02 » v Problémy s hardwarem
    0
    722
    od Gerill Zobrazit poslední příspěvek
    05 srp 2023 04:02
  • Vir? - CMD problém Příloha(y)
    od glajdowicz » 09 lis 2023 15:49 » v Windows 11, 10, 8...
    6
    1590
    od mmmartin Zobrazit poslední příspěvek
    09 lis 2023 21:09
  • Problem s fps Příloha(y)
    od Shokata88 » 02 úno 2024 00:10 » v Rady s výběrem hw a sestavením PC
    15
    1146
    od petr22 Zobrazit poslední příspěvek
    03 úno 2024 12:32

Zpět na “Programování a tvorba webu”

Kdo je online

Uživatelé prohlížející si toto fórum: Žádní registrovaní uživatelé a 3 hosti