radio_tool 0.2.1
Loading...
Searching...
No Matches
rdt_general.hpp
1
18#pragma once
19
20#include <fstream>
21#include <string>
22#include <sstream>
23
24#include <stdint.h>
25
27{
29 {
30 public:
31 std::u16string intro_line1; //10
32 std::u16string intro_line2; //10
33 //skip 24
34 uint8_t flags_1;
35 uint8_t flags_2;
36 uint8_t flags_3;
37 //skip 1
38 uint8_t radio_id[3];
39 //skip 1
40 uint8_t tx_preamble;
41 uint8_t group_call_hang;
42 uint8_t private_call_hang;
43 uint8_t vox_level;
44 //skip 2
45 uint8_t rx_low_bat_interval;
46 uint8_t call_alert_tone_duration;
47 uint8_t lone_worker_response_time;
48 uint8_t lone_worker_reminder_time;
49 //skip 1
50 uint8_t scan_digital_hang_time;
51 uint8_t scan_analog_hang_time;
52 uint8_t flags_4;
53 uint8_t set_keypad_lock_time;
54 uint8_t mode;
55 uint32_t power_on_password;
56 uint32_t radio_prog_password;
57 uint8_t pc_prog_password[8];
58 //skip 8
59 std::u16string radio_name; //16
60
61 auto Read(std::ifstream &i) -> void
62 {
63 intro_line1.reserve(10);
64 intro_line2.reserve(10);
65 i.read((char*)intro_line1.data(), sizeof(char16_t) * 10);
66 i.read((char*)intro_line2.data(), sizeof(char16_t) * 10);
67 intro_line1.shrink_to_fit();
68 intro_line2.shrink_to_fit();
69 }
70
71 auto ToString() const -> const std::wstring
72 {
73 std::basic_stringstream<wchar_t> out;
74
75 out
76 << "Intro 1: " << std::wstring(intro_line1.begin(), intro_line1.end()) << std::endl
77 << "Intro 2: " << std::wstring(intro_line2.begin(), intro_line2.end()); //<< std::endl;
78
79 return out.str();
80 }
81 };
82}