所以我在macbook pro上运行python 2.6并尝试在python中编写代码,以显示tkinter gui上标签中文件的图像.该图像称为image.png.使用此代码时,程序运行没有错误
i = Image.open("image.png")
Run Code Online (Sandbox Code Playgroud)
但是当我执行此代码时(我添加一行):
i = Image.open("image.png")
photo = ImageTk.PhotoImage(i)
Run Code Online (Sandbox Code Playgroud)
程序将崩溃,并在命令行中说"总线错误".我甚至都不知道这意味着什么.我认为PIL安装正确,因为Image工作,但ImageTk不起作用的事实让我困惑.任何人都可以告诉我可能导致此总线错误的原因是什么?
编辑:我做了一个新的程序来进一步测试错误.这是我运行的确切脚本:
import Image
import ImageTk
i = Image.open("image.png")
photo = ImageTk.PhotoImage(i)
Run Code Online (Sandbox Code Playgroud)
现在不是得到"总线错误",而是我的回溯.
Traceback (most recent call last):
File "imageTest.py", line 5, in <module>
photo = ImageTk.PhotoImage(i)
File "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/PIL/ImageTk.py", line 113, in __init__
self.__photo = apply(Tkinter.PhotoImage, (), kw)
File "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/lib-tk/Tkinter.py", line 3285, in __init__
Image.__init__(self, 'photo', name, cnf, master, **kw)
File "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/lib-tk/Tkinter.py", line 3226, in __init__
raise RuntimeError, 'Too early to create image'
RuntimeError: Too early …Run Code Online (Sandbox Code Playgroud) 如何在HDL中使用数组(表示总线)?
例如,我有以下代码:
/**
* 16-bit bitwise And:
* for i = 0..15: out[i] = (a[i] and b[i])
*/
CHIP And16 {
IN a[16], b[16];
OUT out[16];
PARTS:
// Put your code here:
}
Run Code Online (Sandbox Code Playgroud)
假设我And已经实现了,我该如何实现呢?
我宁愿没有以下内容:
And(a=a[0],b=b[0],out=out[0]);
And(a=a[1],b=b[1],out=out[1]);
...
And(a=a[14],b=b[14],out=out[14]);
And(a=a[15],b=b[15],out=out[15]);
Run Code Online (Sandbox Code Playgroud) 使用Google Map API,如何设置可点击的公交车站图标并在信息窗口显示公交车号码服务?我可以在谷歌地图网站上看到,它已启用.但是当我使用Map API创建自己的代码时,默认情况下这似乎是禁用的?
如果我不清楚,请参阅图片链接.
https://dl.dropbox.com/u/46360728/diff.maps.png
左侧是maps.google.com网站中的地图,而右侧是我的Google地图实施.正如您所看到的,与其他屏幕截图不同,我无法单击我的实现的公交车站.
任何帮助将非常感激.
这是我测试复制struct的代码.
1 #include <stdio.h>
2 #include <string.h>
3
4 typedef struct emp_struct {
5 char *name;
6 int employee_no;
7 float salary,
8 tax_to_date;
9 } Employee;
10
11 typedef Employee Database[10];
12
13 Database people = {
14 {"Fred", 10, 10000, 3000},
15 {"Jim", 9, 12000, 3100.5},
16 {"Fred", 13, 1000000, 30},
17 {"Mary", 11, 170000, 4000},
18 {"Judith", 45, 130000, 50000},
19 {"Nigel", 10, 5000, 1200},
20 {"Trevor", 10, 20000, 6000},
21 {"Karen", 10, 120000, 34000},
22 {"Marianne", …Run Code Online (Sandbox Code Playgroud) 好吧,我一直在努力解决这个问题.完成以下任务的最佳方法是什么:

其中Reaction Wheel 1-4是指向库中同一块的链接.当Speed Counter,Speed Direction和Current信号被加入到最终的总线输出如图所示,MATLAB(理所当然)抱怨:
警告:进入Bus Creator'myAwesomeModel'的信号9,10,11,12具有重复的名称'Current'.通过将"(signal#)"附加到结果总线内的信号,使这些变得独特.请更新信号的标签,使它们都是唯一的.
到现在为止,我一直在使用这样的"解决方案":

也就是说,在中间放置一个1-mux/1的增益/其他虚拟块,这样信号就可以重命名为独特的东西.但是,我真的很想相信The MathWorks已经想到了一个更好的方法来做到这一点......
构建这样的总线信号的"正确"方法是什么?感觉就像我被迫采用一种特定的设计/建筑,但正是这样,我暂时逃避了......
我试图让OpenHardwareMonitor从我的Supermicro X7DWA主板上的Winbond W83793芯片中读取温度数据.问题是我没有任何低级编程经验,并且在线可用文档似乎不足以解释如何访问温度.
但是,在我一直在研究这个问题的那个月里,我发现了一些可能是解决问题的关键值和低级方法.我只需要弄清楚如何使用它们来获得我想要的东西.这就是我转向你的地方,因为你可能会理解这些信息的含义,以及如何应用它,与我不同.我已经完成了我的公平分享,导致许多蓝屏和计算机重启.足够的猜测,我需要将这些线索拼凑在一起.这是我目前所知道的:
要从芯片读取,我将以某种方式需要访问SMBus,因为这是监视程序(如CPUID HWMonitor)获取信息的方式.据我所知,OpenHardwareMonitor没有任何代码可以访问SMBus,这就是它可能无法从芯片读取的原因.但是,OpenHardwareMonitor在其Ring0类中包含以下方法,用于访问其他芯片的信息.我可以使用这些方法对我有利:
void Ring0.WriteIOPort(uint port, byte value);
byte Ring0.ReadIOPort(uint port);
Run Code Online (Sandbox Code Playgroud)在其他信息中,HWMonitor在保存报告时向我报告有关Winbond W83793芯片的以下信息:
寄存器空间:SMBus,基址= 0x01100
SMBus请求:通道0x0,地址0x2F
看起来这些是重要的值,但我不确切地知道它们的含义,以及如何将它们与上面的Ring0方法结合使用.嗯...这么多线索.HWMonitor显示的其他值是实际电压,温度和风扇速度,以及表示芯片某处数据的十六进制值数组,如果您想查看它,我将在此处重现.
最后,在W83793数据表中,在第53页(如果您打开文档),这里是我希望阅读的温度十六进制的地址(我相信):
TD1读数 - Bank 0地址1C
TD2读数 - Bank 0地址1D
TD3读数 - Bank 0地址1E
TD4读数 - Bank 0地址1F
低位读数 - Bank 0地址22
TR1读数 - Bank 0地址20
TR2读数 - Bank 0地址21
到目前为止,这就是我所知道的.OpenHardwareMonitor,W83793芯片和Ring0代码可通过上面提供的链接获得.正如我之前所说的那样,我已经有一个月了,我还没有能够解决这个谜团.我希望你能帮助我.所有这些信息可能看起来有点令人生畏,但我确信这对具有一些低级编程经验的人来说是有意义的.
总结一下我的问题,使用上面提供的线索来弄清楚如何让OpenHardwareMonitor读取W83793芯片的温度.我不需要在OpenHardwareMonitor中创建芯片的细节.我已准备好上课了.我只需要序列和格式来编写Ring0命令,如果这是我需要做的.
编辑:我发现了一些更多的信息.我从HWMonitor打印了一个SMBus设备报告,除此之外,我得到了这一行,包括在这里因为它说0x2F:
SMB设备:I/O = 0x1100,地址0x2F,通道= 0
这必然意味着我需要以某种方式将I/O的地址与芯片的地址组合在一起,这似乎是0x2F.我尝试将它们加在一起然后我得到所有温度读数为255,所以这不是正确的猜测.
我使用 C++ 很长时间了,现在我开始学习汇编并学习处理器的工作原理(不仅仅是为了好玩,而且我必须作为测试程序的一部分)。在学习汇编时,我开始听到一些我在讨论多线程时在这里和那里听到的一些术语,因为我在科学计算中做过很多多线程。我正在努力获得完整的图片,我很感激帮助我扩大我的图片。
我了解到,最简单的总线就像一个多路复用器,然后是一个多路分解器。每端都以一个地址作为输入,以便将两端与一些外部组件连接起来。两端可以根据地址指向内存、显卡、RAM、CPU寄存器或其他任何东西。
现在开始我的问题:我一直听到人们争论是使用互斥锁还是原子来确保线程安全(我知道没有最终答案,这不是我的问题,但我的问题是关于比较)。例如,这里声称原子是如此糟糕,以至于它们会因为总线锁定而阻止处理器做体面的工作。
有人可以详细解释一下总线锁定是什么,以及为什么它不像互斥锁,而 AFAIK,互斥锁需要至少两个原子操作来锁定和解锁。
是否有一般的I2C命令来查看设备在初始化一次后是否仍然存在?例如OLED显示器.我之所以这样做的原因是为了避免主程序冻结(当设备断开连接时),因为库代码中存在无限循环,例如Wire库.
在启动MCU时,我想检查设备是否可用,并在设备可用时进行初始化.我用这个功能这样做,工作得很好.....
bool MyClass::isPnpDeviceAvailable( uint8_t iAddress, bool bIsInitOnce = false )
{
// Try to start connection
Wire.beginTransmission( iAddress );
// End connection without STOP command if already is initialized
return ( Wire.endTransmission( !bIsInitOnce ) == 0x00 ); // No Error?, return true
}
Run Code Online (Sandbox Code Playgroud)
....但是,当我想检查设备是否仍然存在时,在执行更新之前,当我这样做时:
// 1.
if( isPnpDeviceAvailable( 0x3C, true ))
{ /* Cause program hang */ }
// 2.
if( isPnpDeviceAvailable( 0x3C ))
{ /* Cause display to turn off */ }
Run Code Online (Sandbox Code Playgroud)
是否有通用命令,说/只发送一个"Hello,你在那里"并等待回复而不发送START和STOP命令而不中断设备/总线状态?
这是我用附件(可选的PNP I2C)显示器制作的原型设备.
阅读硬件总线规范时,我经常遇到诸如:“当控制器看到已发出总线请求时,它会断言总线授予线到第一个设备。”
“断言”一词在这里究竟是什么意思?它像“激活”一样简单,还是还有更多?
我有 2 个进程正在运行
webapi :将消息发布到azure服务总线队列
控制台应用程序:订阅队列中的消息
我正在使用带有 yaeger、.net core 6、c# 的开放式遥测收集器
我能够看到发布到 yaeger 队列的 .net core webapi 的痕迹
我还可以在 yaeger 中看到来自 .net core 控制台应用程序订阅者的痕迹。
但是,我在 webapi 跟踪中没有看到订阅者的跨度。不知道我错过了什么。尝试将订阅者跟踪/跨度链接到父 webapi 跟踪,以便我可以看到完整的跟踪。
我关注了这些链接 https://devblogs.microsoft.com/azure-sdk/introducing-experimental-opentelemetry-support-in-the-azure-sdk-for-net/和 https://learn.microsoft.com/en -us/azure/service-bus-messaging/service-bus-end-to-end-tracing?tabs=net-standard-sdk-2
我确实看到订阅者遇到了 Diagnostic-Id,无法将其链接到来自发布者 webapi 的跟踪
任何建议表示赞赏。
======== 用户控制台应用程序上的酒店设置代码 =======
static async Task Main()
{
AppContext.SetSwitch("System.Net.Http.SocketsHttpHandler.Http2UnencryptedSupport", true);
AppContext.SetSwitch("Azure.Experimental.EnableActivitySource", true);
//-------------- Tracing --------------------
var env = "Development";
var applicationName = "ConsoleAppQueueProcessor";
var assemblyVersion = Assembly
.GetExecutingAssembly()
.GetCustomAttribute<AssemblyFileVersionAttribute>()!
.Version;
meter = Measures.GetMeter(Measures.InstrumentationName);
ConsoleAppQueueProcessorCounter = meter.CreateCounter<int>("ConsoleAppQueueProcessor");
using var openTelemetry = Sdk.CreateTracerProviderBuilder() …Run Code Online (Sandbox Code Playgroud)