mirror of
https://github.com/n5ac/mmtty.git
synced 2025-12-06 04:12:03 +01:00
249 lines
6.3 KiB
C
249 lines
6.3 KiB
C
|
|
//Copyright+LGPL
|
|||
|
|
|
|||
|
|
//-----------------------------------------------------------------------------------------------------------------------------------------------
|
|||
|
|
// Copyright 2000-2013 Makoto Mori, Nobuyuki Oba
|
|||
|
|
//-----------------------------------------------------------------------------------------------------------------------------------------------
|
|||
|
|
// This file is part of MMTTY.
|
|||
|
|
|
|||
|
|
// MMTTY is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License
|
|||
|
|
// as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
|
|||
|
|
|
|||
|
|
// MMTTY is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|||
|
|
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
|
|||
|
|
|
|||
|
|
// You should have received a copy of the GNU Lesser General Public License along with MMTTY. If not, see
|
|||
|
|
// <http://www.gnu.org/licenses/>.
|
|||
|
|
//-----------------------------------------------------------------------------------------------------------------------------------------------
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
//---------------------------------------------------------------------------
|
|||
|
|
#ifndef LogConvH
|
|||
|
|
#define LogConvH
|
|||
|
|
#include "LogFile.h"
|
|||
|
|
|
|||
|
|
extern const char *MONT1[];
|
|||
|
|
extern const char *MONT2[];
|
|||
|
|
//*************************************************************
|
|||
|
|
// <20><><EFBFBD>O<EFBFBD>ϊ<EFBFBD><CF8A>̊<EFBFBD><CC8A>{<7B>N<EFBFBD><4E><EFBFBD>X
|
|||
|
|
//
|
|||
|
|
class CLogConv
|
|||
|
|
{
|
|||
|
|
protected:
|
|||
|
|
int m_Type; // 0-TEXT, 1-LOG200, 2-HAMLOG, 3-DBASE
|
|||
|
|
int m_Mode; // 0-Read, 1-Write
|
|||
|
|
FILE *m_fp;
|
|||
|
|
|
|||
|
|
AnsiString m_FileName; // <20>ϊ<EFBFBD><CF8A><EFBFBD><EFBFBD>̃t<CC83>@<40>C<EFBFBD><43><EFBFBD><EFBFBD>
|
|||
|
|
public:
|
|||
|
|
CLogConv();
|
|||
|
|
virtual ~CLogConv();
|
|||
|
|
virtual int IsOpen(void){return m_fp != NULL ? 1 : 0;};
|
|||
|
|
virtual int Open(LPCSTR pName)=0;
|
|||
|
|
virtual int Create(LPCSTR pName)=0;
|
|||
|
|
virtual int Close(void)=0;
|
|||
|
|
virtual int Read(SDMMLOG *sp)=0;
|
|||
|
|
virtual int Write(SDMMLOG *sp)=0;
|
|||
|
|
};
|
|||
|
|
|
|||
|
|
#define TEXTCONVMAX 64
|
|||
|
|
typedef struct {
|
|||
|
|
int w;
|
|||
|
|
AnsiString Key;
|
|||
|
|
}TCONV;
|
|||
|
|
|
|||
|
|
//*************************************************************
|
|||
|
|
// <20>e<EFBFBD>L<EFBFBD>X<EFBFBD>g<EFBFBD>t<EFBFBD>@<40>C<EFBFBD><43><EFBFBD>A<EFBFBD>N<EFBFBD>Z<EFBFBD>X<EFBFBD>̃N<CC83><4E><EFBFBD>X
|
|||
|
|
//
|
|||
|
|
class CLogText : public CLogConv
|
|||
|
|
{
|
|||
|
|
public:
|
|||
|
|
int m_Double;
|
|||
|
|
int m_Delm;
|
|||
|
|
TCONV m_rConv[TEXTCONVMAX];
|
|||
|
|
TCONV m_tConv[TEXTCONVMAX];
|
|||
|
|
int m_UTC;
|
|||
|
|
int m_err;
|
|||
|
|
protected:
|
|||
|
|
char m_bf[2048]; // <20>t<EFBFBD>@<40>C<EFBFBD><43><EFBFBD>o<EFBFBD>b<EFBFBD>t<EFBFBD>@
|
|||
|
|
|
|||
|
|
private:
|
|||
|
|
int Text2MMLOG(SDMMLOG *sp, LPSTR p, int &err);
|
|||
|
|
void MMLOG2Text(LPSTR t, SDMMLOG *sp);
|
|||
|
|
|
|||
|
|
public:
|
|||
|
|
CLogText();
|
|||
|
|
virtual int Open(LPCSTR pName);
|
|||
|
|
virtual int Create(LPCSTR pName);
|
|||
|
|
virtual int Close(void);
|
|||
|
|
virtual int Read(SDMMLOG *sp);
|
|||
|
|
virtual int Write(SDMMLOG *sp);
|
|||
|
|
|
|||
|
|
};
|
|||
|
|
|
|||
|
|
void MMLOG2Text(LPSTR t, SDMMLOG *sp, AnsiString &Key);
|
|||
|
|
int Text2MMLOG(SDMMLOG *sp, LPCSTR s, AnsiString &Key);
|
|||
|
|
extern const LPCSTR ConvTbl[];
|
|||
|
|
extern CLogText LogText;
|
|||
|
|
|
|||
|
|
//*************************************************************
|
|||
|
|
// <20>k<EFBFBD>n<EFBFBD>f<EFBFBD>Q<EFBFBD>O<EFBFBD>O<EFBFBD>t<EFBFBD>@<40>C<EFBFBD><43><EFBFBD>A<EFBFBD>N<EFBFBD>Z<EFBFBD>X<EFBFBD>̃N<CC83><4E><EFBFBD>X
|
|||
|
|
//
|
|||
|
|
#define LOG200WIDTH 200
|
|||
|
|
class CLog200 : public CLogConv
|
|||
|
|
{
|
|||
|
|
public:
|
|||
|
|
int m_Index;
|
|||
|
|
int m_err;
|
|||
|
|
protected:
|
|||
|
|
char m_bf[200]; // <20>t<EFBFBD>@<40>C<EFBFBD><43><EFBFBD>o<EFBFBD>b<EFBFBD>t<EFBFBD>@
|
|||
|
|
private:
|
|||
|
|
public:
|
|||
|
|
CLog200();
|
|||
|
|
virtual int Open(LPCSTR pName);
|
|||
|
|
virtual int Create(LPCSTR pName);
|
|||
|
|
virtual int Close(void);
|
|||
|
|
virtual int Read(SDMMLOG *sp);
|
|||
|
|
virtual int Write(SDMMLOG *sp);
|
|||
|
|
};
|
|||
|
|
|
|||
|
|
//*************************************************************
|
|||
|
|
// <20>g<EFBFBD>`<60>l<EFBFBD>k<EFBFBD>n<EFBFBD>f<EFBFBD>t<EFBFBD>@<40>C<EFBFBD><43><EFBFBD>A<EFBFBD>N<EFBFBD>Z<EFBFBD>X<EFBFBD>̃N<CC83><4E><EFBFBD>X
|
|||
|
|
//
|
|||
|
|
#pragma option -a- // <20>p<EFBFBD>b<EFBFBD>N<EFBFBD>̎w<CC8E><77>
|
|||
|
|
typedef struct {
|
|||
|
|
char Memo; // 03h=<3D><>̨<EFBFBD><CCA8><EFBFBD>ޖ<EFBFBD><DE96><EFBFBD> 83h=<3D><>̨<EFBFBD><CCA8><EFBFBD>ޗL<DE97><4C><EFBFBD>iHAMLOG<4F>ł<EFBFBD> 1Ah<41>j
|
|||
|
|
char YY, MM, DD; // <20>ŏI<C58F>X<EFBFBD>V<EFBFBD>N<EFBFBD><4E><EFBFBD><EFBFBD>
|
|||
|
|
long Max; // ں<><DABA>ތ<EFBFBD><DE8C><EFBFBD>
|
|||
|
|
WORD HeadLen; // ͯ<>ނ̒<DE82><CC92><EFBFBD><EFBFBD>iHAMLOG.DBS<42><53> 449<34>j
|
|||
|
|
WORD DataLen; // ں<><DABA>ނ̒<DE82><CC92><EFBFBD><EFBFBD>iHAMLOG.DBS<42><53> 58<35>j
|
|||
|
|
char dummy[20]; // 00h
|
|||
|
|
}DBSHD;
|
|||
|
|
|
|||
|
|
typedef struct {
|
|||
|
|
char Memo; // 03h=<3D><>̨<EFBFBD><CCA8><EFBFBD>ޖ<EFBFBD><DE96><EFBFBD> 83h=<3D><>̨<EFBFBD><CCA8><EFBFBD>ޗL<DE97><4C><EFBFBD>iHAMLOG<4F>ł<EFBFBD> 1Ah<41>j
|
|||
|
|
char YY, MM, DD; // <20>ŏI<C58F>X<EFBFBD>V<EFBFBD>N<EFBFBD><4E><EFBFBD><EFBFBD>
|
|||
|
|
long Max; // ں<><DABA>ތ<EFBFBD><DE8C><EFBFBD>
|
|||
|
|
char dm1;
|
|||
|
|
char m1; // 01h
|
|||
|
|
char dm2;
|
|||
|
|
char dummy[21]; // 00h
|
|||
|
|
char dummy2[255-32]; // 00h
|
|||
|
|
char term; // 1ah
|
|||
|
|
}DBRHD;
|
|||
|
|
|
|||
|
|
typedef struct {
|
|||
|
|
char Name[11];
|
|||
|
|
BYTE Type;
|
|||
|
|
BYTE dm1[4];
|
|||
|
|
BYTE Len;
|
|||
|
|
BYTE dm2[15];
|
|||
|
|
}DBSLOT;
|
|||
|
|
|
|||
|
|
typedef struct {
|
|||
|
|
char del[1]; /* <09>폜<EFBFBD>}<7D>[<5B>N */
|
|||
|
|
char calls[7]; /* <09><>ٻ<EFBFBD><D9BB> */
|
|||
|
|
char potbl[3]; /* <09>ړ<EFBFBD><DA93>ر */
|
|||
|
|
char code[6]; /* JCC<43><43><EFBFBD><EFBFBD> */
|
|||
|
|
char glid[6]; /* <09><>د<EFBFBD><D8AF>۹<EFBFBD><DBB9><EFBFBD> */
|
|||
|
|
char freq[4]; /* <09><><EFBFBD>g<EFBFBD><67> */
|
|||
|
|
char mode[3]; /* Ӱ<><D3B0> */
|
|||
|
|
char name[12]; /* <09><><EFBFBD><EFBFBD> */
|
|||
|
|
char qsl [1]; /* QSL via */
|
|||
|
|
char send[1]; /* QSL SEND */
|
|||
|
|
char rcv[1]; /* QSL RCV */
|
|||
|
|
char date[3]; /* <09><><EFBFBD>t */
|
|||
|
|
char time[2]; /* <09><><EFBFBD><EFBFBD> */
|
|||
|
|
char hiss[2]; /* HIS RST */
|
|||
|
|
char myrs[2]; /* MY RST */
|
|||
|
|
long ofs; /* HAMLOG.DBR <20>̾<EFBFBD>ı<EFBFBD><C4B1>ڽ */
|
|||
|
|
}SDHAMLOG;
|
|||
|
|
|
|||
|
|
typedef struct { /* DBR<42>̃t<CC83>B<EFBFBD>[<5B><><EFBFBD>h<EFBFBD>ʒu<CA92>f<EFBFBD>[<5B>^ */
|
|||
|
|
BYTE LenQTH;
|
|||
|
|
BYTE LenREM1;
|
|||
|
|
BYTE LenREM2;
|
|||
|
|
}FHDDBR;
|
|||
|
|
#pragma option -a. // <20>p<EFBFBD>b<EFBFBD>N<EFBFBD><4E><EFBFBD><EFBFBD><EFBFBD>̎w<CC8E><77>
|
|||
|
|
|
|||
|
|
class CHamLog : public CLogConv
|
|||
|
|
{
|
|||
|
|
public:
|
|||
|
|
int m_Index;
|
|||
|
|
int m_err;
|
|||
|
|
protected:
|
|||
|
|
DBSHD m_hd; // DBS<42>w<EFBFBD>b<EFBFBD>_
|
|||
|
|
SDHAMLOG m_RecBuf; // <20><><EFBFBD>R<EFBFBD>[<5B>h<EFBFBD>o<EFBFBD>b<EFBFBD>t<EFBFBD>@
|
|||
|
|
|
|||
|
|
AnsiString m_DBRName; // DBR<42>t<EFBFBD>@<40>C<EFBFBD><43><EFBFBD>̖<EFBFBD><CC96>O
|
|||
|
|
FILE *m_dbrfp; // DBR<42>t<EFBFBD>@<40>C<EFBFBD><43><EFBFBD>̃t<CC83>@<40>C<EFBFBD><43><EFBFBD>|<7C>C<EFBFBD><43><EFBFBD>^
|
|||
|
|
DBRHD m_dbrhd; // DBR<42>w<EFBFBD>b<EFBFBD>_
|
|||
|
|
private:
|
|||
|
|
int Seek(DWORD Index);
|
|||
|
|
BOOL MakeHD(void);
|
|||
|
|
|
|||
|
|
public:
|
|||
|
|
CHamLog();
|
|||
|
|
virtual int Open(LPCSTR pName);
|
|||
|
|
virtual int Create(LPCSTR pName);
|
|||
|
|
virtual int Close(void);
|
|||
|
|
virtual int Read(SDMMLOG *sp);
|
|||
|
|
virtual int Write(SDMMLOG *sp);
|
|||
|
|
};
|
|||
|
|
|
|||
|
|
void HAMLOGtoMMLOG(SDMMLOG *sp, SDHAMLOG *hp, FILE *dbrfp);
|
|||
|
|
int MMLOGtoHAMLOG(SDHAMLOG *hp, SDMMLOG *sp, FILE *dbrfp);
|
|||
|
|
void AddMMLOGKey(AnsiString &REM1, AnsiString &REM2, LPCSTR s, LPCSTR pKey);
|
|||
|
|
void SetMMLOGKey(SDMMLOG *sp, LPSTR bf);
|
|||
|
|
|
|||
|
|
//*************************************************************
|
|||
|
|
// ADIF<49>A<EFBFBD>N<EFBFBD>Z<EFBFBD>X<EFBFBD>̃N<CC83><4E><EFBFBD>X
|
|||
|
|
//
|
|||
|
|
class CLogADIF : public CLogConv
|
|||
|
|
{
|
|||
|
|
public:
|
|||
|
|
protected:
|
|||
|
|
char m_bf[1024]; // <20>t<EFBFBD>@<40>C<EFBFBD><43><EFBFBD>o<EFBFBD>b<EFBFBD>t<EFBFBD>@
|
|||
|
|
LPSTR m_p;
|
|||
|
|
int m_conv;
|
|||
|
|
private:
|
|||
|
|
void MMLOG2ADIF(LPSTR t, SDMMLOG *sp);
|
|||
|
|
void SetData(SDMMLOG *sp, LPCSTR pKey, LPSTR pData);
|
|||
|
|
void AdjustData(SDMMLOG *sp);
|
|||
|
|
void OutF(int &col, FILE *fp, LPCSTR fmt, ...);
|
|||
|
|
|
|||
|
|
public:
|
|||
|
|
CLogADIF();
|
|||
|
|
virtual int Open(LPCSTR pName);
|
|||
|
|
virtual int Create(LPCSTR pName);
|
|||
|
|
virtual int Close(void);
|
|||
|
|
virtual int Read(SDMMLOG *sp);
|
|||
|
|
virtual int Write(SDMMLOG *sp);
|
|||
|
|
|
|||
|
|
};
|
|||
|
|
|
|||
|
|
//*************************************************************
|
|||
|
|
// Cabrillo <20>A<EFBFBD>N<EFBFBD>Z<EFBFBD>X<EFBFBD>̃N<CC83><4E><EFBFBD>X
|
|||
|
|
//
|
|||
|
|
class CLogCabrillo : public CLogConv
|
|||
|
|
{
|
|||
|
|
public:
|
|||
|
|
protected:
|
|||
|
|
char m_bf[1024]; // <20>t<EFBFBD>@<40>C<EFBFBD><43><EFBFBD>o<EFBFBD>b<EFBFBD>t<EFBFBD>@
|
|||
|
|
LPSTR m_p;
|
|||
|
|
AnsiString m_SNR;
|
|||
|
|
private:
|
|||
|
|
void MMLOG2Cabrillo(LPSTR t, SDMMLOG *sp);
|
|||
|
|
void AdjustData(SDMMLOG *sp);
|
|||
|
|
|
|||
|
|
public:
|
|||
|
|
CLogCabrillo();
|
|||
|
|
virtual int Open(LPCSTR pName);
|
|||
|
|
virtual int Create(LPCSTR pName);
|
|||
|
|
virtual int Close(void);
|
|||
|
|
virtual int Read(SDMMLOG *sp);
|
|||
|
|
virtual int Write(SDMMLOG *sp);
|
|||
|
|
};
|
|||
|
|
|
|||
|
|
#endif
|