fix & add
1、在界面上实现选择相机类型的功能; 2、创建了一个光谱仪操作的纯虚基类(ImagerOperationBase)并实现了大部分的操作,具体类型的光谱仪应继承此类并实现纯虚函数; 3、添加了 resonon 的 nir 320 相机,修改 resonon 的 pica l 相机的实现:继承 ImagerOperationBase; 4、重构类 QMotorDoubleSlider,提高其通用性,所有马达相关的 slider 都使用此类; 5、适配 resonon nir 320 显微镜使用的 2 轴线性平台,有些特殊的马达参数设置(setMotorParamMicroscope 函数)绑定了 nir 的相机类型参数; 6、修改:将线性平台的量程信息保存在cfg配置文件中,并修改配置文件读写类来读写此量程信息;
This commit is contained in:
123
HPPA/utility_tc.cpp
Normal file
123
HPPA/utility_tc.cpp
Normal file
@ -0,0 +1,123 @@
|
||||
#include "utility_tc.h"
|
||||
#include <QDir>
|
||||
|
||||
QString formatTimeStr(char * format)
|
||||
{
|
||||
//获取系统时间
|
||||
time_t timer;//time_t就是long int 类型
|
||||
struct tm *tblock;
|
||||
timer = time(NULL);//返回秒数(精度为秒),从1970-1-1,00:00:00 可以当成整型输出或用于其它函数
|
||||
tblock = localtime(&timer);
|
||||
//printf("Local time is: %s\n", asctime(tblock));
|
||||
|
||||
//格式化时间为需要的格式
|
||||
char timeStr_tmp[256] = { 0 };
|
||||
strftime(timeStr_tmp, sizeof(timeStr_tmp), format, tblock);//
|
||||
|
||||
QString timeStr2(timeStr_tmp);
|
||||
// qDebug() << "time is:" << timeStr2;
|
||||
|
||||
return timeStr2;
|
||||
}
|
||||
|
||||
QString getFileNameBaseOnTime()
|
||||
{
|
||||
using namespace std;
|
||||
|
||||
//获取系统时间
|
||||
time_t timer;//time_t就是long int 类型
|
||||
struct tm *tblock;
|
||||
timer = time(NULL);//返回秒数(精度为秒),从1970-1-1,00:00:00 可以当成整型输出或用于其它函数
|
||||
tblock = localtime(&timer);
|
||||
//printf("Local time is: %s\n", asctime(tblock));
|
||||
|
||||
//格式化时间为需要的格式
|
||||
char fileNameTmp[256] = { 0 };
|
||||
char dirNameTmp[256] = { 0 };
|
||||
strftime(fileNameTmp, sizeof(fileNameTmp), "%Y%m%d_%H%M%S", tblock);
|
||||
strftime(dirNameTmp, sizeof(dirNameTmp), "%Y%m%d", tblock);
|
||||
QString fileName(fileNameTmp);
|
||||
QString dirName(dirNameTmp);
|
||||
|
||||
// QString fileName=QString::number(tblock->tm_year+1900)+QString::number(tblock->tm_mon+1)+QString::number(tblock->tm_mday)+"_"+QString::number(tblock->tm_hour)+QString::number(tblock->tm_min);//
|
||||
|
||||
//设置文件绝对路径
|
||||
QDir path("/media/nvme");
|
||||
if(!path.exists(dirName))
|
||||
{
|
||||
path.mkdir(dirName);
|
||||
}
|
||||
path.cd(dirName);
|
||||
QString absoluteFilePath=path.path()+"/"+fileName;
|
||||
// printf("absoluteFilePath is: %s\n", absoluteFilePath.c_str());
|
||||
// qDebug() << "absoluteFilePath is:" << absoluteFilePath;
|
||||
|
||||
return absoluteFilePath;
|
||||
}
|
||||
|
||||
void bubbleSort(unsigned short * a, int n)
|
||||
{
|
||||
// //排序实现1
|
||||
// for(int i=0;i<numberOfPixel;i++)
|
||||
// for(int j=1;j<numberOfPixel-i;j++)
|
||||
// if(a[j-1]>a[j])
|
||||
// swap(a+j-1,a+j);
|
||||
|
||||
//排序实现2
|
||||
int j,k,flag;
|
||||
|
||||
flag = n;
|
||||
while(flag>0)
|
||||
{
|
||||
k=flag;
|
||||
flag=0;
|
||||
for(j=1;j<k;j++)
|
||||
if(a[j-1]>a[j])
|
||||
{
|
||||
swap(a+j-1,a+j);
|
||||
flag=j;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void swap(unsigned short * a, unsigned short * b)
|
||||
{
|
||||
int tmp;
|
||||
|
||||
tmp=*a;
|
||||
*a=*b;
|
||||
*b=tmp;
|
||||
}
|
||||
|
||||
|
||||
bool createDir(QString fullPath)
|
||||
{
|
||||
QDir dir(fullPath);
|
||||
if (dir.exists()) {
|
||||
return true;
|
||||
} else {
|
||||
bool ok = dir.mkpath(fullPath);//创建多级目录
|
||||
return ok;
|
||||
}
|
||||
}
|
||||
|
||||
QList<QString> getFileInfo(QString file)
|
||||
{
|
||||
QFileInfo fileInfo = QFileInfo(file);
|
||||
|
||||
QString fileName, fileSuffix, filePath;
|
||||
filePath = fileInfo.absolutePath();//绝对路径
|
||||
fileName = fileInfo.fileName();//文件名
|
||||
fileSuffix = fileInfo.suffix();//文件后缀
|
||||
|
||||
// qDebug() << fileName <<endl
|
||||
// << fileSuffix<< endl
|
||||
// << filePath<< endl;
|
||||
|
||||
QList<QString> result;
|
||||
result.append(filePath);
|
||||
result.append(fileName);
|
||||
result.append(fileSuffix);
|
||||
|
||||
return result;
|
||||
}
|
||||
Reference in New Issue
Block a user