123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100 |
- #include <QCoreApplication>
- #include <thread>
- #include <chrono>
- #include <iostream>
- #include "modulecomm.h"
- void * gpa;
- std::chrono::time_point<std::chrono::steady_clock, std::chrono::duration<double,std::nano>> t1,t2;
- void testcall(const char * strdata,const unsigned int nSize,const unsigned int index,const QDateTime * dt,const char * strmemname)
- {
- qint64 sendtime;
- t2 = std::chrono::steady_clock::now();
- double dr_ns = std::chrono::duration<double,std::nano>(t2-t1).count();
- memcpy(&sendtime,strdata,8);
- qDebug("lat is %d ns is %f ",QDateTime::currentMSecsSinceEpoch() - sendtime,dr_ns);
- }
- void threadsend()
- {
- char * strdata = new char[3000000];
- while(1)
- {
- std::this_thread::sleep_for(std::chrono::milliseconds(1000));
- qint64 ntime = QDateTime::currentMSecsSinceEpoch();
- memcpy(strdata,&ntime,8);
- iv::modulecomm::ModuleSendMsg(gpa,strdata,2000000);
- t1 = std::chrono::steady_clock::now();
- qDebug("send msg.");
- }
- }
- void testcall2(const char * strdata,const unsigned int nSize,const unsigned int index,const QDateTime * dt,const char * strmemname)
- {
- qint64 sendtime;
- t2 = std::chrono::steady_clock::now();
- double dr_ns = std::chrono::duration<double,std::nano>(t2-t1).count();
- memcpy(&sendtime,strdata,8);
- qDebug("lat is %d ns is %f ",QDateTime::currentMSecsSinceEpoch() - sendtime,dr_ns);
- }
- void threadsend2()
- {
- char * strdata = new char[3000000];
- int nsendlen = 10000;
- while(1)
- {
- std::this_thread::sleep_for(std::chrono::milliseconds(1));
- qint64 ntime = QDateTime::currentMSecsSinceEpoch();
- memcpy(strdata,&ntime,8);
- if(nsendlen<2000000)nsendlen = nsendlen*1001/1000;
- iv::modulecomm::ModuleSendMsg(gpa,strdata,nsendlen);
- t1 = std::chrono::steady_clock::now();
- }
- }
- #include <future>
- int main(int argc, char *argv[])
- {
- QCoreApplication a(argc, argv);
- gpa = iv::modulecomm::RegisterSend("test1",1000,1,iv::modulecomm::ModuleComm_INTERIOR);
- iv::modulecomm::RegisterRecv("test1",testcall2,iv::modulecomm::ModuleComm_INTERIOR);
- std::thread * xthread = new std::thread(threadsend2);
- return a.exec();
- }
|