// %flair:license{ // This file is part of the Flair framework distributed under the // CECILL-C License, Version 1.0. // %flair:license} // created: 2021/03/03 // filename: IpcdAhrs.cpp // // author: Sébastien Ambroziak // Copyright Heudiasyc UMR UTC/CNRS 7253 // // version: $Id: $ // // purpose: Class for an ipc ahrs // // /*********************************************************************/ #include "IpcAhrs.h" #include "IpcImu.h" #include using std::string; using namespace flair::core; using namespace flair::sensor; namespace flair { namespace filter { IpcAhrs::IpcAhrs(string name, uint8_t priority, const char* ipc_name, int ipc_channel) : Ahrs(new IpcImu("imu", priority, ipc_name, ipc_channel, false), name) { SetIsReady(true); } IpcAhrs::~IpcAhrs() {} // datas from IpcImu are AhrsData! void IpcAhrs::UpdateFrom(const io_data *data) { AhrsData *input = (AhrsData *)data; AhrsData *output; GetDatas(&output); Quaternion quaternion; Vector3Df filteredAngRates; input->GetQuaternionAndAngularRates(quaternion, filteredAngRates); output->SetQuaternionAndAngularRates(quaternion, filteredAngRates); output->SetDataTime(input->DataTime()); ProcessUpdate(output); } } // end namespace filter } // end namespace flair