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: 7397
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: 7397
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
  • Problém s FPS
    od mcrakvar » 26 lis 2024 16:22 » v Vše ostatní (sw)
    4
    3976
    od petr22 Zobrazit poslední příspěvek
    28 lis 2024 10:06
  • Problém s RAM
    od lukas222 » 04 lis 2024 13:52 » v Problémy s hardwarem
    4
    3364
    od lukas222 Zobrazit poslední příspěvek
    05 lis 2024 13:36
  • Problém s internetem Příloha(y)
    od valama » 06 dub 2025 16:13 » v Internet a internetové prohlížeče
    11
    4760
    od RIKI22 Zobrazit poslední příspěvek
    06 dub 2025 20:42
  • Problém s emailem Příloha(y)
    od Těsňa » 18 srp 2024 21:15 » v Komunikace na internetu
    5
    8272
    od Těsňa Zobrazit poslední příspěvek
    23 srp 2024 09:23
  • Problém s grafikou?
    od ivanstolička » 19 srp 2024 23:42 » v Problémy s hardwarem
    1
    1523
    od petr22 Zobrazit poslední příspěvek
    20 srp 2024 07:13

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