小编Lon*_*rer的帖子

GDB的C ++调试/打印自定义类型:nlohmann json库的情况

我正在使用nlohmann的json C ++实现进行项目开发

如何在GDB中轻松浏览nlohmann的JSON键/值?

我尝试使用此STL gdb包装,因为它提供了帮助者探索nlohmann的JSON库正在使用的标准C ++库结构。但是我觉得不方便。

这是一个简单的用例:

json foo;
foo["flex"] = 0.2;
foo["awesome_str"] = "bleh";
foo["nested"] = {{"bar", "barz"}}; 
Run Code Online (Sandbox Code Playgroud)

我想在GDB中拥有什么:

(gdb) p foo
{
    "flex" : 0.2,
    "awesome_str": "bleh",
    "nested": etc.
}
Run Code Online (Sandbox Code Playgroud)

当前行为

(gdb) p foo
$1 = {
  m_type = nlohmann::detail::value_t::object, 
  m_value = {
    object = 0x129ccdd0, 
    array = 0x129ccdd0, 
    string = 0x129ccdd0, 
    boolean = 208, 
    number_integer = 312266192, 
    number_unsigned = 312266192, 
    number_float = 1.5427999782486669e-315
  }
}
(gdb) p foo.at("flex")
Cannot evaluate …
Run Code Online (Sandbox Code Playgroud)

c++ json gdb pretty-print nlohmann-json

17
推荐指数
1
解决办法
922
查看次数

如何正确地将标准输出、日志记录和 tqdm 重定向到 PyQt 小部件中

长话短说

\n

答案请参见:

\n
    \n
  1. 我的 2019 年最初使用文本编辑和 stdout/stderr 流重定向接受了答案,请参阅/sf/answers/3855776501/
  2. \n
  3. 我的第二个答案,现在标记为已接受的答案:使用真正的 QProgressBar 的派生和改进方法!/sf/answers/5186428061/
  4. \n
\n

问题

\n

首先,我知道很多问题都与这个问题类似。\n但是在花了这么多时间之后,我现在向社区寻求帮助。

\n

我开发并使用了一堆依赖于 的 python 模块tqdm。\n我希望它们可以在 Jupyter、控制台或 GUI 中使用。\n在 Jupyter 或控制台中一切正常:日志记录/打印和 tqdm 进度之间没有冲突酒吧。以下是显示控制台/Jupyter 行为的示例代码:

\n
# coding=utf-8\nfrom tqdm.auto import tqdm\nimport time\nimport logging\nimport sys\nimport datetime\n__is_setup_done = False\n\n\ndef setup_logging(log_prefix):\n    global __is_setup_done\n\n    if __is_setup_done:\n        pass\n    else:\n        __log_file_name = "{}-{}_log_file.txt".format(log_prefix,\n                                                      datetime.datetime.utcnow().isoformat().replace(":", "-"))\n\n        __log_format = \'%(asctime)s - %(name)-30s - %(levelname)s - %(message)s\'\n        __console_date_format = \'%Y-%m-%d %H:%M:%S\'\n        __file_date_format = \'%Y-%m-%d %H-%M-%S\'\n\n        root …
Run Code Online (Sandbox Code Playgroud)

python logging stdout pyqt tqdm

10
推荐指数
2
解决办法
9598
查看次数

是否可以为 Protocol Buffer 中的字段定义数值范围?

我生活在一个非常安全/关键的 Ada-ic 环境中,并且养成了定义良好且有界的类型定义的习惯。我还遇到过很多 ASN1 使用/传播者。

我周围的一些人将 ASN1 定义为优于协议缓冲区的关键功能之一是能够定义并因此检查数据范围

所以,

  • Protocol buffers 真的没有任何范围定义系统吗?
  • 协议缓冲区之上是否有任何方法可以提供这样的功能?

常见的数字类型定义(例如 int32、int64)超出了此处的范围。


我读过谷歌概述,发现没有提及任何数据范围定义。除了有关枚举管理/表示的功能以及一些排序功能之外。

为了提供一些其他参考,我听说/阅读了下面的链接,并了解了 Ada 实施项目。

有谁知道协议缓冲区的 Ada 插件吗?

这导致

http://www.diva-portal.org/smash/get/diva2:690878/FULLTEXT02.pdf

https://github.com/persan/protobuf-ada

types ada protocol-buffers

9
推荐指数
1
解决办法
3233
查看次数

Raspberry Pi:使用VLC流媒体网络摄像头:罗技C920 [没有转码的H264视频+音频+ LED控制] - SpyCam/BabyCam

我有一个RaspberryPi和一个Logitech C920网络摄像头.我想使用这些设备作为监视/ babycam,即:通过HTTP(或任何其他协议)流式传输音频+视频,无需CPU密集视频转码

C920网络摄像头能够本地传输H264,因此理论上我不需要让RaspberyPi + VLC对视频流进行转码.

内置的C920麦克风流似乎不包含在网络摄像头流中.凸轮和麦克风是2个独立的设备.

C920还有一个内置LED指示灯.我想控制它以避免LED在录制时发光.

我怎样才能做到这一点?

webcam http vlc raspbian raspberry-pi3

7
推荐指数
1
解决办法
1万
查看次数

gdb python api:是否可以调用类/ struct方法

在Python中,我有一个类型为gdb.Value的变量"var",它对应于C++结构.该struct有一个方法"void foo()".我可以评估这个表达式"var ['foo']".但是"var ['foo']()"会抱怨说RuntimeError:Value不可调用(不是TYPE_CODE_FUNC).我相信值类型将是gdb.TYPE_CODE_METHOD(不确定,但var ['foo'].type.code在我的情况下返回16).所以我想问题是python API是否支持对类方法的调用,如果没有,是否有解决方法?谢谢!

python gdb pretty-print

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

如何使用Seaborn修改Violinplot的边缘颜色

我正在尝试更改Seaborn中小提琴的边缘颜色。下面的代码为我工作。

ax=sns.violinplot(data=df, x="#", y="SleepAmount", hue="Thr", palette=my_pal, split=True,linewidth = 1, inner=None)
ax2 = sns.pointplot(x="#", y="SleepAmount", hue="Thr", data=df, dodge=0.3, join=False, palette=['black'], ax=ax,errwidth=1, ci="sd", markers="_") plt.setp(ax.collections, edgecolor="k") 
plt.setp(ax2.collections, edgecolor="k")
Run Code Online (Sandbox Code Playgroud)

但是当我使用facetgrid时,我不知道如何采用plt.setp(ax.collections, edgecolor="k")下面的facetgrid地图。

g = sns.FacetGrid(df, col="temperature",sharey=True)
g=g.map(sns.violinplot,"#", "latency", "Thr", palette=my_pal, split=True, linewidth = 1, inner=None,data=df)
g=g.map(sns.pointplot, "#", "latency", "Thr", data=df, dodge=0.3, join=False, palette=['black'],errwidth=1, ci="sd", markers="_")
Run Code Online (Sandbox Code Playgroud)

我已经尝试了很多东西。喜欢,

sns.set_edgecolor('k')   
sns.set_style( {"lines.color": "k"})
sns.set_collections({'edgecolor':'k'})
g.fig.get_edgecolor()[0].set_edge("k")
g.setp.get_collections()[0].set_edgecolor("k")
Run Code Online (Sandbox Code Playgroud)

谁能帮我吗?

另一个快速的问题是,除了whitegrid或darkgrid之外,是否可以更改网格颜色?Facecolor对我不起作用,因为它会为所有背景(包括刻度和标签区域)上色。我只想更改网格区域。谢谢!

python seaborn

5
推荐指数
2
解决办法
480
查看次数

使用 JNA 和 Ada 的 Interface.C 包将 Ada 动态库与 Java 接口

我必须写一个 DLL 应该提供一个简单的服务,它需要:

  • IN 字符串或字节数组(相当于 char*)
  • IN 整数显式 in char* 的大小
  • IN 相当于库用于写入数据的 char* 缓冲区
  • 用于写入的可用 char* 缓冲区的 IN 大小
  • OUT 有效写入到 out char* 缓冲区的大小

从 C 的角度来看,签名应该是这样的:

void myService (char* inBuffer,  // as in string
                int   anInteger, // as in param
                char* outBuffer, // used as out buffer, but initalized by calling code
                int   outBufferSize, // the initaliaed size
                int   usedBufferSize // used as out param, the actually used size
);
Run Code Online (Sandbox Code Playgroud)

该库被选择在 Ada 中编码有几个原因(几个 Ada 包重用,我们不想再次编码,也不想重新设计(遗留))。该库应该用于 Java 项目(我们不想从 Java …

c java dll ada jna

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

使用Ada的My_Class'Class(This)强制模仿模板方法设计模式

语境

我最近遇到了一个基本的OOP / Ada 2012设计问题。

基本上,我有一个实现接口协定的父类。这是在实现提供程序(ConcreteX)中分几个步骤完成的。子类通过仅覆盖其中一个步骤(DerivedY,Step_2)来扩展此实现。(试图获得一些SOLID属性)

我天真地认为会发生调度。没有。我重新发现调度与Java或其他OOP中的调度不同,并提供了解决方案。

在阿达调度经常问/回答/记录了几个问题:动态调度Ada中动态调度Ada中,访问类型阿达T'Class基础

而不是使用:

This.Step_1; This.Step_2;
Run Code Online (Sandbox Code Playgroud)

我最终使用:

T_Concrete_X'Class (This).Step_1; T_Concrete_X'Class (This).Step_2;
Run Code Online (Sandbox Code Playgroud)

在Ada OOP类设计中,我在两种选择之间挣扎:

  1. 在父类中,定义行为+原语并提供默认实现,即Current_Class'Class(This).method()(=下面提供的工作示例)

  2. 使用模板设计模式,以便将执行步骤的实现委派给另一个类

即在给定的示例中:

-- T_Concrete_X does not have a child class (current example)
overriding procedure If_A_Proc_1 (This : in out T_Concrete_X) is
begin
   -- This.template_executor being set with different classes realizing the Step_1/Step_2 contracts(current example)
   This.template_executor.Step_1;
   This.template_executor.Step_2;
end If_A_Proc_1;
Run Code Online (Sandbox Code Playgroud)

1是应避免达到预期行为的语法“技巧”吗?

我总是觉得当我写一个显式的演员表时,那是设计不力的标志。


工作示例:

src / interfacea.ads

package InterfaceA is

   type T_InterfaceA is interface;
   type T_InterfaceA_Class_Access …
Run Code Online (Sandbox Code Playgroud)

oop inheritance ada template-method-pattern ada2012

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