小编Nat*_*ton的帖子

如何对绘制PDF图形的Python函数进行单元测试?

我正在编写一个使用Cairo图形库输出PDF文件的CAD应用程序.许多单元测试不需要实际生成PDF文件,例如计算对象的预期边界框.但是,我想确保在更改代码后生成的PDF文件"看起来"正确.有没有自动化的方法来做到这一点?我怎样才能尽可能自动化?我是否需要目视检查每个生成的PDF?如何在不拔头发的情况下解决这个问题?

python pdf-generation unit-testing imagemagick cairo

19
推荐指数
2
解决办法
3779
查看次数

使用JavaScript和AJAX,我是否还需要HTML <form>标签,是否仍需要使用"提交"按钮向服务器提交表单?

当我学习HTML时,CGI是王道,与服务器交互的正确方法是将<input>标签放在标签内<form>.当用户按下"提交"按钮时,将HTTP GET或HTTP POST消息发送到服务器,并使用从服务器上的CGI程序返回的HTML代码刷新浏览器.

现在我又开始做网页了,我一直在学习JavaScript和jQuery.由于jQuery可以截取诸如click,keypress和之类的事件focusout,并且可以用$.ajax()和读取数据$.getJSON(),是否仍然需要一个<form>标记?

如果我想支持关闭JavaScript的用户,可能还需要"真实表单"吗?

html javascript forms ajax jquery

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

如何通过globbing子目录自动生成make目标列表?

我想使用单个Makefile在数百个子目录中生成目标.每个子目录都是一个日期/时间戳,如下所示:20120119_153957匹配以下模式????????_??????.没有其他子目录与此模式匹配.

我想要生成一个目标????????_??????/graph.pdf.我有一个调用的脚本make_graph,它将使图形被赋予子目录名称.但我不确定如何编写一个Makefile,它将自动为所有子目录添加并以编程方式生成这些目标.

例如,代码SUBDIRS:=????????_??????似乎正确地遍历所有子目录.我可以查看这个规则:

.PHONY: print
print:
        echo $(SUBDIRS)
Run Code Online (Sandbox Code Playgroud)

但是这个变量赋值

TARGETS:=$(SUBDIRS:%=%/graph.pdf)
Run Code Online (Sandbox Code Playgroud)

似乎没有做我期望的事情并分配了很多很多目标.相反,以下规则只打印一个目标.

.PHONY: print
print:
        echo $(TARGETS)
Run Code Online (Sandbox Code Playgroud)

SUBDIRS应该拥有正确的子目录但TARGET只有一个文件是非常令人困惑的.

makefile gnu-make

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

是否有必要注册每个硬件核心的输入和输出?

我知道在使用这些输入之前需要将所有输入同步到FPGA以避免亚稳态.我也意识到需要在单个FPGA内同步跨时钟域的信号.这个问题不是跨越时钟域.

我的问题是,在FPGA设计中定期注册每个内部硬件模块的所有输入和输出是否是一个好主意.理由是我们想要打破长链组合逻辑以提高时钟速率,以便我们能够满足所选时钟速率的时序约束.这将增加与信号必须跨越的模块数量成比例的额外延迟周期.这是一个好主意还是一个坏主意?是否只注册输入而不是输出?

答案摘要

经验法则:注册内部FPGA内核的所有输出; 无需注册输入.如果输出已经来自寄存器,例如状态机的状态寄存器,则无需再次注册.

fpga

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

gnuplot可以透明地打开压缩数据文件来节省存储空间吗?

我有数GB的数据,用gzip压缩存储会很好.gnuplot可以打开压缩文件吗?如果它不能,有没有办法将数据传递给gnuplot,以便不需要将未压缩的文件写入磁盘?

gzip gnuplot zlib pipe

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

Python如何与两个不同的线程共享串行端口(A类,B类)

我有一个使用串口(唯一资源)的Python进程,它使用类A的实例进行管理.使用类B和C的实例初始化了两个不同的线程,它们不断使用串口资源反对已经创造了.

import threading

Class A(threading.Thread):
    #Zigbee serial port handler
    def __init__(self,dev):
        #something here that initialize serial port
    def run():
        while True:
            #listening serial interface
    def pack(self):
        #something
    def checksum(self):
        #something
    def write(self):
        #something

Class B(threading.Thread):
    def __init__(self,SerialPortHandler):
        self.serialporthandler=SerialPortHandler
    def run(self)
        while True:
            #something that uses self.serialporthandler

Class C(threading.Thread):
    def __init__(self,SerialPortHandler):
        self.serialporthandler=SerialPortHandler
    def run(self)
        while True:
            #something that uses self.serialporthandler

def main():
    a=A('/dev/ttyUSB1')
    b=B(a)
    b.start()
    c=C(a)
    c.start()

if __name__=='main':
    while True:
        main()
Run Code Online (Sandbox Code Playgroud)

问题是两个线程都试图同时访问串行资源.我可以使用同一个类A的几个实例,在敏感部分附加Lock.acquire()和Lock.release().

你们有些人能指出我的正确方法吗?

先感谢您.

python multithreading semaphore

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