问题标签 [multiplexing]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
4 回答
4155 浏览

python - queue.Queue 上的多路复用?

我怎样才能queue.Queue同时在多个上“选择”?

Golang 的频道具有所需的功能

其中第一个解除阻塞的通道执行相应的阻塞。我将如何在 Python 中实现这一点?

更新0

根据tux21b's answer中给出的链接,所需的队列类型具有以下属性:

  • 多生产者/多消费者队列 (MPMC)
  • 提供每个生产者的 FIFO/LIFO
  • 当队列为空/满时,消费者/生产者被阻塞

此外,渠道可能是阻塞的,生产者将阻塞,直到消费者检索到该项目。我不确定 Python 的 Queue 可以做到这一点。

0 投票
1 回答
1429 浏览

gps - 嵌入式 Linux 上的 GPRS 和 GPS

我有一个嵌入式 linux 和一个 Telit gprs/gps 模块(USB 端口上的“GM862-GPS”)。我当前的项目要求它通过 gprs 连接以发送数据,同时不断向模块询问 gps 位置。我通过 ppp-daemon 和 chatsripts 连接到 gprs,但是当建立连接时,模块似乎被锁定(通过 minicom 对 AT 命令没有反应)。

我读到,“AT+CMUX”可能是该设备提供的一种解决方案,但我不知道如何使用它,因为 Telit 的“CMUX 用户指南”并没有真正的帮助(和一个程序自动设置仅适用于 Windows)。

有谁知道,如何处理这个命令,甚至知道一个更好的选择来处理这个问题?

0 投票
1 回答
585 浏览

serial-port - Charlieplexing 与 Arduino

我正在尝试在我的 Arduino 上实现Charlieplexing 。目前我使用 3 个输出来控制 6 个 LED,并且工作正常。问题是我有这个重新出现的错误,当我在我的一个功能中放置延迟时,它似乎来来去去。如果我在一个或多或少不相关的功能中放置一些延迟,该错误会导致我的串行输入(通过 Arduino USB 电缆)混乱。我通过串行端口发送 1 到 6 之间的数字来控制 Charlieplexing 阵列。

然后将其转换为整数,然后由函数解释并转换为三个输入/输出端口中的每一个的正确端口状态。

以上工作非常好,但一次只会打开一个LED。要打开更多,我将不得不在 LED 之间切换 Arduino,以使其看起来一次打开更多。为此,我创建了一个新函数:

这就是问题出现的地方。如果我在调用 Charlie() 函数后不包含 delay(),则串行输入中断。现在真正奇怪的是延迟不一定是任何东西,也就是延迟(0)会解决我的问题。

当我通过串行接口发送一些输入时,Arduino 会再次将其吐出。因此,如果我发送数字 1 到 6,它在串行控制台中将如下所示:

1 2 3 4 5 6

这是预期的。现在,如果我在没有正确延迟的情况下引入 Range() 函数,输出将如下所示:

15 25 35 45 55 65

这会破坏程序。

我知道这有点模糊,但我觉得很难解释。希望它对你有意义。

完整的代码可以在这里找到:http: //pastebin.com/t7tdtfid

更新

我尝试通过 AVR Studio 5 运行我的程序,但它没有受到问题的影响。

0 投票
1 回答
86 浏览

operating-system - 为什么 select 系统调用只有文件描述符的上限而没有下限?

在里面

syscall,nfds是位图中设置的所有文件描述符中我们感兴趣的最大文件描述符。我认为这是为了提高效率,这样实现就不必扫描系统中的所有文件描述符。如果是这样的话,那么为什么这个系统调用不允许我们传递一个参数来指定感兴趣的最小文件描述符呢?

0 投票
2 回答
645 浏览

c - I/O多路复用中的写块如何?

我正在学习使用 epoll、poll 等编写非阻塞服务器和客户端应用程序,并遇到了这个事件标志:

POLLOUT:现在写不会阻塞。

我理解阻塞读取的概念。但是什么是阻塞写?

0 投票
2 回答
1145 浏览

python - 在python中为并行端口多路复用数字字符串

我正在尝试做这样的事情。问题是我无法建立这样做的循环。 电路:

这是我的代码:

如果有人可以帮助我,那将是令人欣慰的

numBin 中的最高有效位定义要打开的显示。而不太重要的定义数字。例如:

字符串是 {'7', '1', '5', '4', '8'}。所以最后一个显示中显示的第一个数字是“7”。因此,我们采用二进制 7 即“0111”并将该二进制字符串与第一个显示位置“0001”连接起来。所以我们创建一个二进制数:'00010111'。我们将该数字转换为十进制并将其发送到并行端口。并口打开las显示并显示数字7。第二次,它必须在第二个和第一个位置显示一个'7'和一个'1'等等。

“X”代表显示屏关闭,数字代表其自身处于显示位置,如您在电路中所见。

0 投票
1 回答
864 浏览

c++ - 给定一个 x264 流和一个 ogg vorbis 流,我如何制作一个 mplayer/VLC 可以读取的混合流?

我很困惑,有点坚持这个问题。我在谷歌上只能找到转码软件的基本用法,与问题无关。

我正在制作一个游戏,我想包括原生捕获能力来流式传输视频。我很想将此流式传输到标准客户端,例如 VLC。它需要采用它可以识别的格式,并且需要多路复用才能使其正常工作。

因此,我的问题是,我知道如何将原始视频帧中的内容编码为 x264(另请参阅如何使用 x264 C API 将一系列图像编码为 H264?)。我知道如何将原始音频样本编码为 ogg/vorbis。现在,我如何将一个和一个放在一起用于 VLC?

0 投票
1 回答
322 浏览

python - 复用地址和数据以通过并行端口显示字符串

一个月前,我问这个关于将一串数字与 4 个 7 段显示器复用的问题。但是现在,我正在尝试更新代码以在 python 中使用 7 个 7 段显示器来复用一串字母。

这是新电路。当我使用并行端口发送数据时,Latch Enable 接收最高有效位(引脚 9)。在第二个锁存器中,Latch Enable 也接收它但被否定,这就是 7404 的原因。

即设置地址 (/LE==False) 或设置数据 (/LE=True)。

这就是我想要做的。“X”表示 7 段显示已关闭。但是不能存档。

这将是字符串“STACK 0V3RFL0W”的输出。

还有过去的代码:

0 投票
3 回答
5537 浏览

private - PubNub 最佳实践:如何管理私人房间?

我正在学习 pubnub,我阅读了他们的文档,但我只是找不到如何管理多房间聊天框。

默认情况下,任何人都可以收听频道。订阅它并在上面发布很容易。

我想要的是有一个主要的公共房间(到目前为止一切都很好),但任何人也应该能够与其他人私下交谈,而不会有被其他用户阅读的风险。

这些动态房间将被标记,用户应该能够从一个到另一个。

另一个要求是与某人私下交谈不会将您踢出您订阅的其他房间(您仍然可以在聊天时收到新消息已发布到另一个房间的通知)

实现这一目标的最佳实践是什么?

  • 我会使用不同的频道(动态创建)吗?
  • 我会使用一个频道并根据他们的状态、伪房间 ID 或主角过滤消息吗?
  • 我会使用多路复用(仅一个套接字)吗?

我需要知道实现这一目标的最佳方法,因为文档只描述了一个房间的基本场景,互联网上对此一无所知。

谢谢你。

PS:我知道 PubNub 一次不推荐超过 2 个频道(尽管我很难找到对此的解释)。

PPS:我正在使用带有 socket.io 的 punbub

0 投票
1 回答
13544 浏览

http - HTTP 管道和使用 SPDY 的 HTTP 多路复用之间的区别

感谢 Google 和 Stack Overflow,我想我理解了常规 HTTP 流水线和 HTTP 多路复用(例如,使用 SPDY)之间的区别,所以我制作了下图来展示基于三个常规 HTTP 请求的流水线和多路复用之间的区别。

在此处输入图像描述

我的两个问题是:

  1. 图像是否正确?
  2. 如果流水线没有线头阻塞问题,它是否会像 HTTP 多路复用一样快?还是我错过了额外的差异?