示例#1
0
文件: Boss.cpp 项目: MarcusEFC/nbites
void Boss::DCMPostProcessCallback()
{
    if (!manRunning) return;
    
    DCM_TIMING_DEBUG_POST1();
    SensorValues values = sensor.getSensors();

    std::vector<SerializableBase*> objects = {
        // serializer deletes these
        new ProtoSer(&values.joints),
        new ProtoSer(&values.currents),
        new ProtoSer(&values.temperature),
        new ProtoSer(&values.chestButton),
        new ProtoSer(&values.footBumper),
        new ProtoSer(&values.inertials),
        new ProtoSer(&values.sonars),
        new ProtoSer(&values.fsr),
        new ProtoSer(&values.battery),
        new ProtoSer(&values.stiffStatus),
    };
    
    int64_t nextSensorIndex = (shared->latestSensorWritten + 1);
    // Serialize the protobufs to shared mem
    if (!serializeTo(objects, nextSensorIndex, sensorStaging, SENSOR_SIZE, NULL)) {
        std::cout << "O HUCK! Couldn't serialize!\n";
        DCM_TIMING_DEBUG_POST2();
        return;
    }
    
    if (!bossSyncWrite(shared, sensorStaging, nextSensorIndex)) {
        ++sensorLockMiss;
    }

    DCM_TIMING_DEBUG_POST2();
}
bool OsmAnd::MapStylesPresetsCollection_P::saveTo(QIODevice& ioDevice) const
{
    QXmlStreamWriter xmlWriter(&ioDevice);
    return serializeTo(xmlWriter);
}
bool OsmAnd::OnlineTileSources_P::saveTo(QIODevice& ioDevice) const
{
    QXmlStreamWriter xmlWriter(&ioDevice);
    return serializeTo(xmlWriter);
}