#include "Ispindel.h" #include #include "IspindelInterface.h" CIspindel::CIspindel(CIspindelGUI *IspindelGui) { mIspindelGui = IspindelGui; IspindelGui->mProgramHandle = this; mNetworkInterface = new CIspindelInterface(this); } CIspindel::~CIspindel() { delete mNetworkInterface; } void CIspindel::Start() { mNetworkInterface->ConnectToMasterCtrl(); } void CIspindel::IspindelFullBufferReceived(QByteArray *Data) { int NbItems; QDataStream Strm(Data,QIODevice::ReadOnly | QIODevice::Unbuffered); Strm >> NbItems; if(NbItems == 0) { qDebug("Received empty Ispindel buffer..."); return; } ClearIspindleDataList(); for(int i = 0; i < NbItems; i++) { CIspindelData *NewFrame = new CIspindelData; Strm >> *NewFrame; mIspindelDataList.append(NewFrame); } SetLasFrameTextInGUI(*mIspindelDataList.last()); mIspindelGui->UpdateIspindelPlot(&mIspindelDataList); } void CIspindel::IspindelLastFrameReceived(QByteArray Data) { int DataSize; QDataStream Strm(&Data,QIODevice::ReadOnly | QIODevice::Unbuffered); if(Data.size() == 0) return; CIspindelData *NewData = new CIspindelData(); Strm >> *NewData; mIspindelDataList.append(NewData); SetLasFrameTextInGUI(*NewData); mIspindelGui->NewIspindelFrameReceived(NewData); // qDebug("Latest Ispindel data received"); } void CIspindel::ClearIspindleDataList() { for(int i = 0; i < mIspindelDataList.size(); i++) { delete mIspindelDataList[i]; } mIspindelDataList.clear(); } void CIspindel::ConnectedToMaster(bool connected) { if(connected) { mNetworkInterface->SendMasterCtrlCommand(ISPINDEL_GET_FULL_DATA_BUFFER_REQUEST,QByteArray()); } } void CIspindel::SetLasFrameTextInGUI(CIspindelData Frame) { QString FrameText; FrameText = QString("\nLast Frame:\n------------------------------\nAngle: %1\nBattery Voltage: %2\nGravity: %3\nSample Interval: %4\nIspindel ID: %5\nIspindel Name: %6\nRSSI: %7\nTemperature: %8%9\nSample date time: %10\n------------------------------")\ .arg(Frame.mAngle)\ .arg(Frame.mBattery)\ .arg(Frame.mGravity)\ .arg(Frame.mInterval)\ .arg(Frame.mIspindelID)\ .arg(Frame.mIspindelName)\ .arg(Frame.mRSSI)\ .arg(Frame.mTemperature).arg(Frame.mTemperatureUnits)\ .arg(Frame.mSampleDateTime.toString("yyyy-MM-dd - hh:mm:ss")); // FrameText = QString("\nLast Frame\n\ // Angle: %1\n\ // Battery Voltage: %2\n\ // Gravity: %3\n\ // Sample Interval: %4\n\ // Ispindel ID: %5\n\ // Ispindel Name: %6\n\ // RSSI: %7\n\ // Temperature: %8%9\n\ // Sample date time: %10")\ // .arg(Frame.mAngle)\ // .arg(Frame.mBattery)\ // .arg(Frame.mGravity)\ // .arg(Frame.mInterval)\ // .arg(Frame.mIspindelID)\ // .arg(Frame.mIspindelName)\ // .arg(Frame.mRSSI)\ // .arg(Frame.mTemperature).arg(Frame.mTemperatureUnits)\ // .arg(Frame.mSampleDateTime.toString("yyyy-MM-dd - hh:mm:ss")); mIspindelGui->SetLastIspindelFrameData(FrameText); }