小编p0f*_*0fi的帖子

我可以为Influxdb中的不同测量创建不同的保留策略吗?

是否可以使用不同的保留策略处理Influxdb中的不同度量?

influxdb

6
推荐指数
1
解决办法
4074
查看次数

是否可以只保留 influxdb 中的值更改?

是否可以使用 influxdb 以仅保持值变化的方式对旧数据进行下采样?

我的例子如下:
我有一个二进制传感器每 10 分钟发送一次数据,所以自然连续值看起来像这样:0,0,0,0,0,1,1,0,0,0,0.. .

我的目标是使用保留策略在一段时间内保留这种原始数据,并对数据进行下采样以进行更长时间的存储。我想删除所有具有相同数字的连续值,以便在值实际更改时只有带有时间戳的数据点。下采样数据应如下所示:0,1,0,1,0,1,0.... 但在事件实际发生时具有正确的时间戳。

influxdb

5
推荐指数
1
解决办法
760
查看次数

aws s3 cli 如何确定要同步哪些文件?

当使用 aws s3 cli 将 Web 应用程序的文件同步到我的 s3 存储桶时,我注意到该sync命令始终上传每个文件,即使它们实际上没有更改。但改变的是文件的时间戳。所以我想知道该sync命令如何确定需要上传哪些文件?

sync只比较文件名和时间戳吗?

amazon-s3 amazon-web-services aws-cli

5
推荐指数
1
解决办法
595
查看次数

boost::asio::write 阻塞是什么意思?

我正在使用boost::asio::write()将数据从缓冲区写入 com-Port。这是一个波特率为 115200 的串行端口,这意味着(据我所知)我可以有效地将 11520 字节/秒或 11,52 KB/秒的数据写入套接字。

现在我有一大块数据(10015 字节)要写入。我认为这应该需要不到一秒钟的时间才能真正在端口上写入。但是boost::asio::write()在使用传输的字节 10015 调用后已经返回 300 微秒。我认为在那个波特率下这是不可能的?

所以我的问题是它实际上在做什么?真正将其写入端口,或者只是其他类型的缓冲区,稍后将其写入端口。

我希望write()只有在所有字节真正写入端口后才返回。

编辑代码示例:

问题是我总是遇到未来/承诺的超时,因为发送消息需要超过 100 毫秒,但我认为计时器应该只在发送最后一个字节后启动。因为write()应该阻塞?

void serial::write(std::vector<uint8_t> message) {
  //create new promise for the request
  promise = new boost::promise<deque<uint8_t>>;
  boost::unique_future<deque<uint8_t>> future = promise->get_future();
  // --- Write message to serial port --- //
  boost::asio::write(serial_,boost::asio::buffer(message));
  //wait for data or timeout
  if (future.wait_for(boost::chrono::milliseconds(100))==boost::future_status::timeout) {
    cout << "ACK timeout!" << endl;
    //delete pointer and set it to 0
    delete …
Run Code Online (Sandbox Code Playgroud)

c++ boost boost-asio

4
推荐指数
1
解决办法
1576
查看次数

使用 unistd.h 和 C 写入 mac OSX 10.9.3 上的串行端口

我正在尝试使用标准 C 中的 unistd.h 将一些字节写入 mac OSX 10.9.3 上的串行端口。我知道有一个类似的主题,但它已经 4 岁了,并且存在不同的问题,所以请原谅我开始一个新线程。

我的问题是 write(); 函数,它总是以 -1 的值返回。打开我的端口的代码如下:

curByte = 0;
numBytes = 0;
bool blocking = false;
//Settings structure old and new
struct termios newtio;

fd = open(port, O_RDWR | O_NOCTTY | (blocking ? 0 : O_NDELAY));
if (fd < 0)
{
    return PORT_ERROR;
}
bzero(&newtio, sizeof(newtio));

if (cfsetispeed(&newtio, BDR_ESP3) != 0)
    return PORT_ERROR;
if (cfsetospeed(&newtio, BDR_ESP3) != 0)
    return PORT_ERROR;

newtio.c_cflag &= ~PARENB;
newtio.c_cflag &= ~CSTOPB;
newtio.c_cflag &= ~CSIZE;
newtio.c_cflag …
Run Code Online (Sandbox Code Playgroud)

c macos serial-port

2
推荐指数
1
解决办法
1640
查看次数