Message.cpp
author František Kučera <franta-hg@frantovo.cz>
Sun, 01 Jun 2025 13:18:29 +0200
branchv_0
changeset 21 476a295bfcc9
parent 19 4ed672cecc25
permissions -rw-r--r--
Added tag v0.2 for changeset a08e30243b95
     1 /**
     2  * djm-fix
     3  * Copyright © 2025 František Kučera (Frantovo.cz, GlobalCode.info)
     4  *
     5  * This program is free software: you can redistribute it and/or modify
     6  * it under the terms of the GNU General Public License as published by
     7  * the Free Software Foundation, version 3 of the License.
     8  *
     9  * This program is distributed in the hope that it will be useful,
    10  * but WITHOUT ANY WARRANTY; without even the implied warranty of
    11  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
    12  * GNU General Public License for more details.
    13  *
    14  * You should have received a copy of the GNU General Public License
    15  * along with this program. If not, see <http://www.gnu.org/licenses/>.
    16  */
    17 
    18 #include <sstream>
    19 #include <iomanip>
    20 
    21 #include "Message.h"
    22 
    23 std::string Message::toString() const {
    24 	std::stringstream s;
    25 	s << "<message";
    26 	s << " type='"  << std::hex << ((int) type)  << "'";
    27 	s << " model='" << std::hex << ((int) model) << "'";
    28 	s << ">";
    29 	for (const auto& field : fields) {
    30 		s << "<field type='" << std::hex << ((int) field.type) << "'>";
    31 		for (uint8_t b : field.data) {
    32 			s << std::hex << std::setw(2) << std::setfill('0') << (int) b;
    33 		}
    34 		s << "</field>";
    35 	}
    36 	s << "</message>";
    37 	return s.str();
    38 }
    39 
    40 std::vector<Field> Message::findFields(FieldType type) {
    41 	std::vector<Field> found;
    42 	for (Field f : fields) if (f.type == type) found.push_back(f);
    43 	return found;
    44 }