// // Created by Stepan on 16.10.2020. // #include "../../can/can_data.h" #include REGISTER_BUS_TYPE(CAN_Raw) PICout operator <<(PICout s, const CAN_Raw & v) { s.saveControl(); s.setControl(0); s << "{id=0x" << PIString::fromNumber(v.Id, 16) << ", size=" << v.Size << ", data=" << PIByteArray(v.Data, v.Size); s.restoreControl(); return s; } int main() { CAN_Raw msg = { .Id = 0x22, .Size = 8, .Data = { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07 } }; piCout << "src: " << msg << "\n"; CAN_Raw newMsg; PIByteArray ar; ar << msg; ar >> newMsg; piCout << "after ByteArray: " << newMsg << "\n"; SMBusData busData; busData = SMBusData::create(msg); PIByteArray serializedBusData = busData.save(); SMBusData loadedBusData = SMBusData::fromByteArray(serializedBusData, busData.busType()); newMsg = loadedBusData.value(); piCout << "after bus data:" << newMsg; }