📄 sloghex.h
字号:
// SlogHEX.h: interface for the CSlogHEX class.
//
//////////////////////////////////////////////////////////////////////
#if !defined(AFX_SLOGHEX_H__629435BC_26D4_4E01_9BBB_D897B4E40CEA__INCLUDED_)
#define AFX_SLOGHEX_H__629435BC_26D4_4E01_9BBB_D897B4E40CEA__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
#include "../PL3000/PrgDef.h"
const int MAX_BYTES_SLOG = 600; // maksimalna duzina sloga u bajtovima bi trebala da bude
// 255 * 2 (za data) + 13 (za sve ostalo) = 523
class CSlogHEX
{
public:
enum ETip {
UNDEFINED = 9999,
DATA = 0,
END_OF_FILE = 1,
EXTENDED_SEGMENT = 2,
EXTENDED_LINEAR = 4
};
public:
CSlogHEX();
virtual ~CSlogHEX();
// Funkcija za inicijalizaciju sloga podacima ocitanim iz datoteke
bool Inicijalizuj
(
PRG::tBajt duzina,
PRG::tAdresa adresa,
ETip tip,
PRG::tBajt* pPodaci,
UINT duzinaPodatka,
PRG::tBajt suma
);
bool Inicijalizuj
(
PRG::tBajt duzina,
PRG::tAdresa adresa,
PRG::tBajt tip,
PRG::tBajt* pPodaci,
UINT duzinaPodatka,
PRG::tBajt suma
);
// Funkcija za resetovanje sadrzaja sloga
void Isprazni(void);
// Funkcija proverava da li je kontrolna suma u redu
bool ProveriKontrolnuSumu(void);
// Funkcija vraca dati bajt podatka i njegovu adresu.
// Zadaje se redni broj bajta (pocev od 0), a podaci se dobijaju preko OUT parametara.
// Ukoliko dati bajt ne postoji vraca false.
bool DajBajt(int redBr, PRG::tBajt& bajt, PRG::tAdresa& adresa);
// Funkcija vraca true ako se radi o DATA slogu
bool DataSlog(void);
// Funkcija vraca duzinu sloga
PRG::tBajt Duzina(void);
// Funkcija vraca true ako se radi o 'END OF FILE' slogu
bool EOFSlog(void);
private:
//////////////////////////////////////////////////////////////////////
// Pomocne funkcije
//////////////////////////////////////////////////////////////////////
// Funkcija konvertuje dati bajtu u ID tipa
ETip BajtUTip(PRG::tBajt bajt);
// Funkcija sracunava kontrolnu sumu sloga
PRG::tBajt SracunajSumu(void);
// Funkcija izdvaja visi i nizi bajt date adrese
void RasclaniAdresuNaBajtove(PRG::tBajt& adresaHI, PRG::tBajt& adresaLO);
private:
// podaci koji cine slog HEX fajla
PRG::tBajt duzina_m;
PRG::tAdresa adresa_m;
ETip tip_m;
PRG::tNizBajtova podaci_m;
PRG::tBajt kontrolnaSuma_m;
};
#endif // !defined(AFX_SLOGHEX_H__629435BC_26D4_4E01_9BBB_D897B4E40CEA__INCLUDED_)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -