71 lines
2.2 KiB
C++
71 lines
2.2 KiB
C++
#ifndef SDCARD_H_
|
|
#define SDCARD_H_
|
|
|
|
#define CID_LENGTH 32
|
|
#define CSD_LENGTH 32
|
|
|
|
using namespace std;
|
|
|
|
typedef uint32_t DWORD;
|
|
typedef uint16_t WORD;
|
|
typedef uint8_t BYTE;
|
|
typedef uint32_t UDINT;
|
|
typedef uint32_t DATE;
|
|
typedef uint8_t USINT;
|
|
typedef int32_t DINT;
|
|
typedef uint16_t UINT;
|
|
typedef int16_t INT;
|
|
|
|
const BYTE cnibblescount = 32;
|
|
|
|
const string cidFilePath = "";
|
|
|
|
class SDCard
|
|
{
|
|
|
|
|
|
|
|
struct SDCardData
|
|
{
|
|
uint8_t isCorrectLoad = 0; // SD karta je korektne nactena //bool vs byte ?
|
|
uint8_t CID_nibble[32] = {0}; // surova data CID ze souboru
|
|
uint8_t CID[16] = {0}; // prekodovane CID informace
|
|
uint8_t manufacturerID = 0; // ID vyrobce 1B -> Byte 15
|
|
char oemID[2] = {}; // ID aplikace/oem 2B -> Byte 13-14 // oemID: !!STRING(3);
|
|
char name[5] = {}; // jmeno produktu 5B -> Byte 8-12 !!STRING(6);
|
|
uint8_t productRevision_hw = 0;
|
|
uint8_t productRevision_sw = 0;
|
|
float productRevision = 0; // revize produktu 1B [bcd sh] -> Byte 7, bity 0-3 = revize HW, bity 4-7 = revize SW
|
|
uint32_t serialNumber = 0; // seriove cislo karty 4B -> Byte 3-6
|
|
uint16_t manufacturerDate_year = 0;
|
|
uint8_t manufacturerDate_month = 0;
|
|
char manufacturerDate[10] = {}; //: STRING(10); // datum vyroby 2B [bcd -yym] -> Byte 1-2, bity 0-3 = mesic, bity 4-11 = posledni cislice roku or roku 2000, bity 12-15 nepouzito
|
|
uint8_t CRCOK = 0; // CRC 1B -> Byte 0, bity 1-7, bit 0 je vzdy = 1
|
|
uint8_t CSD_nibble[32] = {}; //: ARRAY [0..31] OF BYTE; // surova data CSD ze souboru
|
|
uint8_t CSD[16] = {}; //: ARRAY [0..15] OF BYTE; // prekodovane CSD informace
|
|
uint32_t cardSize = 0; //: UDINT; // velikost SD karty
|
|
uint8_t cardGSize = 0; // prepocitana velikost na GB
|
|
};
|
|
|
|
bool readSDCard();
|
|
bool getCIDFromFile();
|
|
bool getCSDFromFile();
|
|
|
|
public:
|
|
|
|
SDCardData cardData;
|
|
bool isLoaded = false;
|
|
char cid[32] = {};
|
|
char csd[32] = {};
|
|
string filePath = "";
|
|
string cidString = ""; //pro předání pro starý generátor
|
|
string csdString = ""; //pro předání pro starý generátor
|
|
|
|
SDCard();
|
|
SDCard(string cid, string csd);
|
|
SDCard(const string filesPath);
|
|
|
|
|
|
};
|
|
|
|
#endif |