#include #include #include "QTextCodec" #include "SensorMannager.h" #include"SensorOptoSky.h" #include"SensorQExPRO.h" #include #include #include QTextStream cout1(stdout, QIODevice::WriteOnly); void logout(QString str){ std::cout<"; std::fflush(stdout); } vector FindFeng(vector point1ist, vector valuelist); vector DengJianJu(int position, int distanc, int times = 10); vector PingHua(vector value, int step = 2); int main(int argc, char* argv[]) { QCoreApplication aaaaa(argc, argv); cout1<<"Welcom to use the Auto Locate Application"<<"
"<initSensor(); cout1<<"Get Tempratrue:"<GettingTempratrue()<<"
"<Settingshuttertime(20); aa->GetOnePlot(oneplot); cout1<<"Position"<< oneplot.Plot[1000]; CVSMD12XControl Motercontrol; Motercontrol.ILMES_InitializeComm("COM16"); //Motercontrol.ILMES_InitializeComm("/dev/ttyUSB1"); ControllerParams cpTest; bool res = Motercontrol.ILMES_InitializeParams(cpTest); Motercontrol.StartBackZero(); Motercontrol.SetRunSpeed(10000); Motercontrol.MoveTo_NoSyn(550000); aa->GetOnePlot(oneplot); MSInfo temp; Motercontrol.GetStatus(temp); vector point1ist; vector valuelist; int i = 0; Motercontrol.GetStatus(temp); //outfile <GetOnePlot(oneplot); //qDebug() << oneplot.BandNum; //std::cout << temp.iPosition << std::endl; Motercontrol.GetStatus(temp); i++; //outfile << i << "," << oneplot.Plot[1024] << "," << temp.iPosition << std::endl; point1ist.push_back(temp.iPosition); valuelist.push_back(oneplot.Plot[1024]); } Motercontrol.StartBackZero(); vector valuepinghua1 = PingHua(valuelist, 3); vectorloction1=FindFeng(point1ist, valuepinghua1); int lenth = loction1.size(); for (size_t i = 0; i < lenth; i++) { vector location1point = DengJianJu(loction1[i], 5000, 25); vector valuepoint; int lennow = location1point.size(); for (size_t ii = 0; ii < lennow; ii++) { Motercontrol.MoveTo(location1point[ii]); aa->GetOnePlot(oneplot); valuepoint.push_back(oneplot.Plot[1024]); //outfile << ii << "," << oneplot.Plot[1024] << "," << location1point[ii] << std::endl; } vector valuepinghua = PingHua(valuepoint,3); vectorloction2 = FindFeng(location1point, valuepinghua); if (loction2.size() == 1) { outfile < FindFeng(vector point1ist, vector valuelist) { vector ret; int lenth = point1ist.size(); if (lenth<10) { ret.push_back(0); return ret; } for (size_t i = 5; i < lenth-5; i++) { if (valuelist[i] > 5000&&valuelist[i]>valuelist[i-1]&& valuelist[i] > valuelist[i - 4]&& valuelist[i] >valuelist[i + 1]&& valuelist[i] > valuelist[i + 4] && valuelist[i-1] > 5000 && valuelist[i-4]&& valuelist[i +1] > 5000 && valuelist[i + 4]) { if (ret.size()!=0) { if (point1ist[i]-ret[ret.size()-1]<5000) { continue; } } ret.push_back(point1ist[i]); } } return ret; } vector DengJianJu(int position, int distanc, int times ) { int begin = position - distanc; vector ret; int eachstep = distanc / times; for (size_t i = 0; i < 2*times; i++) { ret.push_back(begin + i * eachstep); } return ret; } vector PingHua(vector value,int step) { vector ret; if (value.size()<2*step) { return value; } int len = value.size(); for (size_t i = 0; i < step; i++) { ret.push_back(value[i]); } for (size_t i = step; i