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

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

Zamčeno
Uživatelský avatar
Mr_Egot
nováček
Příspěvky: 49
Registrován: 14 zář 2019 11:21
Bydliště: Strasbourg

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

Příspěvek od Mr_Egot »

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
Uživatelský avatar
faraon
Master Level 8.5
Master Level 8.5
Příspěvky: 7404
Registrován: 23 pro 2010 09:23

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

Příspěvek od faraon »

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: 14 zář 2019 11:21
Bydliště: Strasbourg

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

Příspěvek od Mr_Egot »

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: 7404
Registrován: 23 pro 2010 09:23

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

Příspěvek od faraon »

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: 14 zář 2019 11:21
Bydliště: Strasbourg

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

Příspěvek od Mr_Egot »

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

Preji Vam pekny zbytek dne.
Zamčeno
  • Podobná témata
    Odpovědi
    Zobrazení
    Poslední příspěvek
  • Problém s FPS
    od mcrakvar » » v Vše ostatní (sw)
    4 Odpovědi
    7833 Zobrazení
    Poslední příspěvek od petr22
  • Problém s internetem
    od yakubb23 » » v Sítě - hardware
    1 Odpovědi
    7324 Zobrazení
    Poslední příspěvek od meda2016
  • Problém s mikrofonem
    od Shokata88 » » v Problémy s hardwarem
    4 Odpovědi
    4844 Zobrazení
    Poslední příspěvek od Shokata88
  • Problém s internetem
    od valama » » v Internet a internetové prohlížeče
    11 Odpovědi
    8597 Zobrazení
    Poslední příspěvek od RIKI22
  • Problém s fps spojený s gpu
    od Matyas.S » » v Hry
    0 Odpovědi
    4168 Zobrazení
    Poslední příspěvek od Matyas.S

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