Arianna autonomous DAQ firmware

Dependencies:   mbed SDFileSystemFilinfo AriSnProtocol NetServicesMin AriSnComm MODSERIAL PowerControlClkPatch DS1820OW

SnCommWin.cpp

Committer:
uci1
Date:
2012-06-30
Revision:
0:664899e0b988
Child:
1:e392595b4b76

File content as of revision 0:664899e0b988:

#include "SnCommWin.h"

#include "SnConfigFrame.h"
#include "SnSDUtils.h"

/*
bool SnCommWin::fgCommEst   = false;
bool SnCommWin::fgWinOpen   = false;
*/

SnCommWin::ECommWinResult SnCommWin::SendData(SnConfigFrame& conf,
                                              SnEventFrame& evt,
                                              char* const evtBuf,
                                              char* const confBuf) {
    ECommWinResult res = kUndefFail;
    if (conf.IsSendingAllFiles()) {
        res = SnSDUtils::SendAllFiles(this, conf.IsDeletingFiles());
    } else {
        if (conf.GetCommSendData()==0) {
            res = kOkNoMsg;
        } else {
            res = SendData(SnSDUtils::GetCurFileName(), conf, evt,
                           evtBuf, confBuf, conf.GetCommSendData());
        }
    }
    return res;
}

SnCommWin::ECommWinResult SnCommWin::SendData(const char* infn,
                                              const SnConfigFrame& curConf,
                                              SnEventFrame& evt,
                                              char* const evtBuf,
                                              char* const confBuf,
                                              const uint32_t nevts,
                                              const uint32_t firstEvt) {
    // nevts==0 ==> send all events
    // evtBuf should be 0 only if nevts==0
    
    ECommWinResult res = kUndefFail;
    FILE* inf = fopen(infn, "rb");
    if (inf!=0) {
        if (nevts==0) {
            res = SendData(inf);
            if (curConf.IsDeletingFiles() && res>=kOkMsgSent) {
                SnSDUtilsWhisperer::DeleteFile(inf, infn);
            }
        } else {
            if (evtBuf!=0) {
                res = SendConfAndEvents(inf, curConf, evt, evtBuf, confBuf, nevts, firstEvt);
            }
        }
        if (inf!=0) {
            fclose(inf);
        }
    }
    return res;
}