libdrmconf 0.14.1
A library to program DMR radios.
Loading...
Searching...
No Matches
dm32uv_callsigndb.hh
1#ifndef DM32UV_CALLSIGNDB_HH
2#define DM32UV_CALLSIGNDB_HH
3
4#include "callsigndb.hh"
5#include "codeplug.hh"
6#include "userdatabase.hh"
7
8
11class DM32UVCallsignDB : public CallsignDB
12{
13 Q_OBJECT
14
15public:
17 {
18 public:
20 explicit HeaderElement(uint8_t *ptr);
21
23 static constexpr unsigned int size() { return 0x0010; }
24
25 void clear() override;
26
28 virtual unsigned int count() const;
30 virtual void setCount(unsigned int count);
31
32 protected:
36 static constexpr unsigned int count() { return 0x0000; }
38 };
39 };
40
41
43 {
44 public:
46 explicit EntryElement(uint8_t *ptr);
47
49 static unsigned int size() { return 0x005c; }
50
51 void clear() override;
52 bool isValid() const override;
53
55 virtual QString name() const;
57 virtual void setName(const QString &name);
58
60 virtual unsigned int id() const;
62 virtual void setId(unsigned int id);
63
65 virtual QString callsign() const;
67 virtual void setCallsign(const QString &cal);
68
70 virtual QString city() const;
72 virtual void setCity(const QString &city);
73
75 virtual QString province() const;
77 virtual void setProvince(const QString &provice);
78
80 virtual QString country() const;
82 virtual void setCountry(const QString &country);
83
85 virtual QString remark() const;
87 virtual void setRemark(const QString &remark);
88
90 virtual bool encode(const UserDatabase::User &user, const ErrorStack &err=ErrorStack());
91
92 public:
96 static constexpr unsigned int name() { return 16; }
97 static constexpr unsigned int callsign() { return 8; }
98 static constexpr unsigned int city() { return 16; }
99 static constexpr unsigned int province() { return 16; }
100 static constexpr unsigned int country() { return 16; }
101 static constexpr unsigned int remark() { return 16; }
102 };
103
104 protected:
108 static constexpr unsigned int name() { return 0x0000; }
109 static constexpr unsigned int id() { return 0x0010; }
110 static constexpr unsigned int callsign() { return 0x0014; }
111 static constexpr unsigned int city() { return 0x001c; }
112 static constexpr unsigned int province() { return 0x002c; }
113 static constexpr unsigned int country() { return 0x003c; }
114 static constexpr unsigned int remark() { return 0x004c; }
116 };
117 };
118
119
120public:
121 explicit DM32UVCallsignDB(QObject *parent = nullptr);
122
123 bool encode(UserDatabase *db, const Flags &selection,const ErrorStack &err=ErrorStack());
124
125public:
129 static constexpr unsigned int entries() { return 50000; }
130 // Number of entires per block.
131 static constexpr unsigned int entriesPerBlock() { return 44; }
132 };
133
134protected:
138 static constexpr unsigned int count() { return 0x278000; }
139 static constexpr unsigned int block0() { return 0x278010; }
140 static constexpr unsigned int block1() { return 0x279000; }
141 static constexpr unsigned int betweenBlocks() { return 0x1000; }
143 };
144};
145
146#endif // DM32UV_CALLSIGNDB_HH
Controls the selection of callsigns from the UserDatabase to be encoded into the callsign db.
Definition callsigndb.hh:22
CallsignDB(QObject *parent=nullptr)
Hidden constructor.
Definition callsigndb.cc:45
Represents the abstract base class of all codeplug elements.
Definition codeplug.hh:65
bool isValid() const override
Returns true if the pointer is not null.
Definition dm32uv_callsigndb.cc:48
virtual QString city() const
Retruns the city field.
Definition dm32uv_callsigndb.cc:87
EntryElement(uint8_t *ptr)
Constructor.
Definition dm32uv_callsigndb.cc:35
virtual bool encode(const UserDatabase::User &user, const ErrorStack &err=ErrorStack())
Encode entry.
Definition dm32uv_callsigndb.cc:131
virtual void setCallsign(const QString &cal)
Sets the callsign field.
Definition dm32uv_callsigndb.cc:81
static unsigned int size()
Size of the element.
Definition dm32uv_callsigndb.hh:49
void clear() override
Abstract method to reset the element within the codeplug.
Definition dm32uv_callsigndb.cc:42
virtual void setRemark(const QString &remark)
Sets the remark field.
Definition dm32uv_callsigndb.cc:125
virtual QString remark() const
Retruns the remark field.
Definition dm32uv_callsigndb.cc:120
virtual QString name() const
Returns the name of the entry.
Definition dm32uv_callsigndb.cc:54
virtual QString province() const
Retruns the province field.
Definition dm32uv_callsigndb.cc:98
virtual void setCity(const QString &city)
Sets the city field.
Definition dm32uv_callsigndb.cc:92
virtual void setProvince(const QString &provice)
Sets the province field.
Definition dm32uv_callsigndb.cc:103
virtual void setId(unsigned int id)
Sets the DMR id of the entry.
Definition dm32uv_callsigndb.cc:70
virtual void setCountry(const QString &country)
Sets the country field.
Definition dm32uv_callsigndb.cc:114
virtual unsigned int id() const
Returns the DMR id of the entry.
Definition dm32uv_callsigndb.cc:65
virtual void setName(const QString &name)
Sets the name of the entry.
Definition dm32uv_callsigndb.cc:59
virtual QString callsign() const
Retruns the callsign field.
Definition dm32uv_callsigndb.cc:76
virtual QString country() const
Retruns the country field.
Definition dm32uv_callsigndb.cc:109
void clear() override
Abstract method to reset the element within the codeplug.
Definition dm32uv_callsigndb.cc:15
static constexpr unsigned int size()
Returns the size of the element.
Definition dm32uv_callsigndb.hh:23
virtual unsigned int count() const
Returns the number of entries.
Definition dm32uv_callsigndb.cc:20
virtual void setCount(unsigned int count)
Sets the number of entries.
Definition dm32uv_callsigndb.cc:25
HeaderElement(uint8_t *ptr)
Constructor.
Definition dm32uv_callsigndb.cc:8
bool encode(UserDatabase *db, const Flags &selection, const ErrorStack &err=ErrorStack())
Encodes the given user db into the device specific callsign db.
Definition dm32uv_callsigndb.cc:156
Implements a stack of error messages to provide a pretty formatted error traceback.
Definition errorstack.hh:43
Represents the user information within the UserDatabase.
Definition userdatabase.hh:32
Auto-updating DMR user database.
Definition userdatabase.hh:24
Base class for Limits.
Definition codeplug.hh:92
Base class for Offsets.
Definition codeplug.hh:68
Some limits for the entry.
Definition dm32uv_callsigndb.hh:94
static constexpr unsigned int name()
Maximum name length.
Definition dm32uv_callsigndb.hh:96
Some internal offsets.
Definition dm32uv_callsigndb.hh:106
Some internal offsets.
Definition dm32uv_callsigndb.hh:34
Some limits for the DB.
Definition dm32uv_callsigndb.hh:127
static constexpr unsigned int entries()
Maximum number of db entries.
Definition dm32uv_callsigndb.hh:129
Some internal offsets.
Definition dm32uv_callsigndb.hh:136