标签: real-time

堆栈分配是 RT 吗?

如果我在堆栈上分配某些内容,分配是否具有确定性(即 RT)?分配示例:

std::vector<double> desiredMobileState(13, 0.0);

我的意思是在堆上分配需要一个系统调用(在一般情况下),这是不确定的,因此应该禁止 RT 行为。

但就 RT 行为而言,堆栈分配会发生什么情况呢?

c++ allocation real-time

3
推荐指数
1
解决办法
191
查看次数

CODESYS 中众多功能块的实例化 (IEC61131)

我使用 CODESYS 制作了一个功能块来执行电能计量。该功能块的输入是电流和电压,输出是能量。现在,我们需要有 1000 个该功能块的实例来运行我们拥有的 1000 米的代码。编写(可能还有复制和粘贴)这些实例似乎并不是最有趣的工作。想知道是否有人有更聪明的方法来进行如此众多的实例化。

例如,以下是 2 个实例的代码(在 CODESYS 中)的样子:

meter_instance1(CURRENT:=I1, VOTAGE:=V2);
Energy1:= meter_instance1.ENERGY;

meter_instance2(CURRENT:=I2, VOTAGE:=V2);
Energy2:= meter_instance2.ENERGY;
Run Code Online (Sandbox Code Playgroud)

我们希望有 1000 个实例。任何想法都会受到高度赞赏。

plc real-time instantiation codesys iec61131-3

3
推荐指数
1
解决办法
1765
查看次数

docker-compose yaml - 传递“ulimit”参数“rtprio”和“memlock”的选项

我在 docker-compose.yaml 中找不到将参数传递给以下“docker”参数的选项:

--ulimit rtprio=95 --ulimit memlock=-1

换句话说,我希望用 docker-compose 包装以下命令:

docker run --rm -it --network host --ulimit rtprio=95 --ulimit memlock=-1 --name my_proj image/my_image bash

real-time ulimit docker dockerfile docker-compose

3
推荐指数
1
解决办法
9057
查看次数

Flink 中的水印和触发器有什么区别?

我读到,“..排序运算符必须缓冲它接收到的所有元素。然后,当它接收到水印时,它可以对时间戳低于水印的所有元素进行排序,并按排序顺序发出它们。这是正确,因为水印表明不能有更多元素到达并与已排序元素混合......” - https://cwiki.apache.org/confluence/display/FLINK/Time+and+Order+in+Streams

因此,水印似乎充当后续操作员开始处理的信号。我想,这也是触发器的作用。两者有什么区别?

real-time stream bigdata apache-flink flink-streaming

3
推荐指数
1
解决办法
1402
查看次数

如何在 Spyder 4 中打开/关闭代码分析功能

将 Spyder 更新到 4.0.0 后,我看不到任何用于打开或关闭“实时代码分析”的复选框

在这里我们可以看到再也找不到的菜单步骤: 如何在Spyder编辑器中抑制某个警告? 其中包含:您需要转到[工具>首选项>编辑器>代码自省/分析并停用名为实时代码分析的 选项 ]

对于 4.1.3 及之前的版本,存在以下问题,可能仅在 Windows 上:

  • 我无法打开警告,例如显示哪些变量未知。通常,如果我将代码移至单独的函数,只需滚动代码中的红线即可找到该函数所需的所有参数。

  • 即使正常的代码完成也不起作用。首先,在点后输入 3 个字母后,没有任何内容弹出。然后,当 Spyder 似乎开始搜索时,它就不再做出反应了。

editor real-time underline spyder anaconda

3
推荐指数
1
解决办法
9435
查看次数

如何使 watch() 函数在 mongoDB 中工作?

我正在尝试在 MongoDB 的帮助下使用 Pusher 构建一个聊天应用程序来进行实时通信。这些是我的文件。

dbMessages.js

    import mongoose from 'mongoose'
    
    const pinguSchema = mongoose.Schema({
        message: String,
        name: String,
        timestamp: String,
        received: Boolean
    })
    
    export default mongoose.model('messagecontents', pinguSchema)
Run Code Online (Sandbox Code Playgroud)

服务器.js

import express from "express"
import mongoose from 'mongoose'
import Messages from './dbMessages.js'
import Pusher from 'pusher'

//config
const app = express()
const port = process.env.PORT || 9000

const pusher = new Pusher({
    appId: "###",
    key: "###",
    secret: "###",
    cluster: "###",
    useTLS: ###
  });


//middleware
app.use(express.json())

//DB config
const connection_url = "###";

mongoose.connect(connection_url,{ …
Run Code Online (Sandbox Code Playgroud)

real-time mongoose mongodb node.js pusher

3
推荐指数
1
解决办法
1566
查看次数

使用“粗鲁的大锤”方法并行化 MacOS/CoreAudio 实时音频回调是否可行?

首先,一些相关的背景信息:我有一个基于 CoreAudio 的低延迟音频处理应用程序,它对来自专用 Mac(运行最新版本的 MacOS)上的输入设备的音频进行各种混合和特殊效果) 并将结果传送回 Mac 的其中一台本地音频设备。

为了获得最佳/最可靠的低延迟性能,此应用程序旨在挂钩 CoreAudio 的低级音频渲染回调(通过AudioDeviceCreateIOProcID()、 AudioDeviceStart() 等),并且每次回调函数为调用(来自 CoreAudio 的实时上下文),它读取传入的音频帧(例如 128 帧,每帧 64 个样本),进行必要的数学运算,并写出传出的样本。

这一切都运行良好,但从我读过的所有内容来看,Apple 的 CoreAudio 实现有一个不成文的事实上的要求,即所有实时音频操作都发生在单个线程中。我承认有充分的理由(主要是在我已经使用的 SIMD/SSE/AVX 指令之外,几乎所有您可能用来协调并行化行为的机制都不是实时安全的,因此尝试使用它们会导致间歇性故障音频)。

然而,我和我的同事很贪心,尽管如此,我们还是希望每个样本缓冲区执行更多的数学运算,即使速度最快的单核也能在避免音频的必要时间窗口内可靠地执行更多的数学运算-欠载和故障。

我的同事(在嵌入式/专用 Linux 硬件上的实时音频处理方面颇有经验)告诉我,在 Linux 下,程序可能会要求一个或多个 CPU 内核的独占访问权限,例如操作系统永远不会尝试将它们用于其他任何事情。一旦他这样做了,他就可以在那个 CPU 上运行“裸机”风格的代码,简单地忙着等待/轮询原子变量,直到“真正的”音频线程更新它,让专用核心知道是时候做它的事情了; 届时,专用内核将对输入样本运行其数学例程并在(希望如此)有限时间内生成其输出,此时“真实”音频线程可以收集结果(此处更忙等待/轮询) ) 并将它们合并回传出的音频缓冲区。

我的问题是,这种方法是否值得在 MacOS/X 下尝试?(即,MacOS/X 程序,即使是具有 root 访问权限的程序,是否可以说服 MacOS 授予它对某些内核的独占访问权限,如果是这样,则会在这些内核上出现丑陋的忙等待/轮询循环(包括必要的轮询循环)同步 CoreAudio 回调线程相对于它们的输入/输出要求)产生足够可靠的实时结果,您可能有一天想在付费观众面前使用它们?)

这似乎是原则上可能的事情,但在我花太多时间将头撞到那里可能存在的任何墙壁之前,我想了解一些关于这是否值得在这个平台上追求的途径的意见。

audio multithreading multicore real-time core-audio

3
推荐指数
1
解决办法
56
查看次数

最新版本的socket io nodejs无法连接到flutter应用程序

目前,我正在尝试将套接字与 flutter 应用程序一起使用,当我使用版本 ^2.3.0 时,该应用程序工作正常。但是当我尝试在nodejs ie 4.1.2 中使用最新版本的socket io 时,它仍然在浏览器中工作,但没有成功。我无法弄清楚发生了什么事。

我正在分享 flutter socket io 连接以及 nodejs 应用程序的代码。

import 'package:getparked/Utils/DomainUtils.dart';
import 'package:socket_io_client/socket_io_client.dart' as IO;

class SocketUtils {
  IO.Socket socketIO;

  IO.Socket init(onSocketConnected, onSocketDisconnected) {
    socketIO = IO.io(domainName, <String, dynamic>{
      'transports': ['websocket'],
      'upgrade': false
    });

    socketIO.connect();
    socketIO.on("connect", (data) {
      print("Connection Successfully Established...");
      onSocketConnected(socketIO);
    });

    socketIO.on("reconnect", (data) {
      print("Socket Connected Again.. Reconnection");
    });

    socketIO.on("disconnect", (data) {
      print("Socket Disconnected Unexpectedly..");
      onSocketDisconnected(socketIO);
    });

    return socketIO;
  }
}
Run Code Online (Sandbox Code Playgroud)

节点js代码

const express = require('express');
const app = express(); …
Run Code Online (Sandbox Code Playgroud)

real-time node.js socket.io flutter

3
推荐指数
1
解决办法
6856
查看次数

Ruby on rails -elasticsearch轮胎投入现有数据库

我有一个Ruby on rails 3.2应用程序.我想在已经填充了大量数据的模型上启用基于文本的搜索.假设模型类的名称是Post.我正在计划使用elasticsearch,因为我听说它是​​最好的实时搜索引擎之一,我正在使用轮胎gem,以便我的应用程序可以与elasticsearch进行交互.

由于我是elasticsearch的新手,因此无法为模型的现有数据创建索引.我使用mongodb作为后端数据库.谁能告诉我如何导入索引.

我已经尝试过了

Tire.index "posts" do
  import Post.all
end
Run Code Online (Sandbox Code Playgroud)

我得到的错误是:

  BSON::InvalidObjectId: illegal ObjectId format: Career Guidance 
  from /Users/anirvan/.rvm/gems/ruby-1.9.3-p125/gems/bson-1.5.1/lib/bson/types/object_id.rb:126:in `from_string'
Run Code Online (Sandbox Code Playgroud)

有人可以帮我从这里出去吗 ?

search ruby-on-rails real-time elasticsearch tire

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

IOS同步音乐流光

我试图通过GKSession将音乐从一个设备流式传输到另一个设备,以便音乐完全同步.到目前为止,我知道如何使用来获取音频,但我不确定一些事情.我很确定我必须使用AudioFileReadPackets来传输数据.

  1. 我应该如何打包并从内存缓冲区中将数据包作为流发送?
  2. 另一方面,如何将接收的数据包转换回音频流?
  3. 确保数据包同步播放的最佳方法是什么?

sync real-time stream core-audio ios

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