1.linux C++ 获取当前系统时间(毫秒级)
#include <stdio.h>
#include <sys/time.h>
using namespace std;
void sysTime(string ¤tTime)
{
struct timeval tv;
struct timezone tz;
struct tm *t;
char * curTime;
gettimeofday(&tv, &tz);
t = localtime(&tv.tv_sec);
sprintf(curTime, "%d-%d-%d_%d%d%d%ld", 1900+t->tm_year, 1+t->tm_mon, t->tm_mday, t->tm_hour, t->tm_min, t->tm_sec, tv.tv_usec);
currentTime = curTime;
}
int main()
{
string currentTime;
sysTime(currentTime);
cout<<"current time :"<<currentTime<<endl;
return 0;
2.滑动窗口滤波函数
/*********************** 滑动窗口滤波函数 ****************************/
float LatticePlannerNode::slidingAverageFilter(float value, const int window_size, float *buffer)
{
static int data_num = 0;
float output = 0;
if (data_num < window_size) //不满窗口,先填充
{
buffer[data_num++] = value;
output = value; //返回相同的值
}
else
{
int i = 0;
float sum = 0;
memcpy(&buffer[0], &buffer[1], (window_size - 1) * 4); //将1之后的数据移到0之后,即移除头部
buffer[window_size - 1] = value; //即添加尾部
for (i = 0; i < window_size; i++) //每一次都计算,可以避免累计浮点计算误差
sum += buffer[i];
output = sum / window_size;
}
return output;
}