小编Sna*_*ers的帖子

Arduino支持线程吗?

我有几个与arduino有关的任务,但其中一个需要很长时间,所以我想用线程同时运行它们.我有一个Arduino Mega

[更新]最后四年后,我可以在我的arduino mega中安装FreeRTOS.这是一个链接

multithreading arduino

20
推荐指数
3
解决办法
4万
查看次数

图像未使用AngularJs以prawn pdf呈现

我有一个ReportPdf继承自Prawn::Document.
当我从Rails控制台测试时,pdf中嵌入的png图像正确呈现.

ReportPdf.new(param1,param2).render_file('/Users/ZZ/Desktop/test.pdf')
Run Code Online (Sandbox Code Playgroud)

但是,当控制器请求时:

def generate_pdf
  pdf = ReportPdf.new(param1, param2)
  send_data pdf.render, filename: 'report.pdf', type: 'application/pdf'
end
Run Code Online (Sandbox Code Playgroud)

图像未呈现,其他内容呈现没有任何问题.

我尝试过使用Amazon S3的本地图像和图像.两者在控制台中都可以正常工作,但不能从控

generate_pdf控制器中的方法也给出了正确的pdf.如果我直接请求PDF,则会正确呈现PDF.我用Postman测试了它.

但是,仅当从Angular中的导出按钮请求时,才会呈现PDF中的图像.以下是实现:

后端:

class ReportPdf < Prawn::Document
  def initialize(param1, param2)
    super()
    @param1 = param1
    @date = Time.zone.parse(param2) || Time.zone.now
    header
  end

  def header
    img = open('https://s3-ap-southeast2.amazonaws.com/bucket/folder/logo.png')
    # use local image
    # img = "#{Rails.root}/app/assets/images/logo.png"
    data = [[{ image: img, image_width: 150, vposition: :center },
           "#{@param1.name} - #{@param2.suburb}"]]
    table(data, cell_style: { borders: {}, 
                            valign: :center, …
Run Code Online (Sandbox Code Playgroud)

javascript ruby-on-rails prawn angularjs

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

识别在rails中创建的冲突日期

预订应用程序.如何检查或验证日期,例如date_start,date_end具有值

date_start  date_end 
26-11-2017  27-11-2017 
Run Code Online (Sandbox Code Playgroud)

我将创建另一个具有这些起始和结束日期值的保留,但它与其他值冲突.如何查看有冲突的日期?

date_start  date_end 
25-11-2017  28-11-2017 
Run Code Online (Sandbox Code Playgroud)

用它来验证两者之间的日期

模型

validate :no_reservation_overlap

scope :overlapping, ->(period_start, period_end) do
  where "((date_start <= ?) and (date_end >= ?))", period_end, period_start
end

private

def no_reservation_overlap
  if (Reservation.overlapping(date_start, date_end).any?)
     errors.add(:date_end, 'it overlaps another reservation')
  end
end
Run Code Online (Sandbox Code Playgroud)

查看 - 选择日期

<%= f.label :'date_start:' %>
<%= f.date_field :date_start %>

<%= f.label :'date_end:' %>
<%= f.date_field :date_end %>
Run Code Online (Sandbox Code Playgroud)

样本日期26到27已经预订/保留,据说它必须防止插入25到28,因为已经预订了26到27.

ruby-on-rails date

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

如何将已编写的库包含在Arduino中的自定义库中

我正在创建一个新的库来控制键盘和LCD.大多数代码似乎都在编译,但当它到达我定义LiquidCristal变量的行时,它会说:

创建自定义库时,"LiquidCrystal"未指定类型

这是我的LCDKeypad.h的内容摘录

// Include types & constants of Wiring core API
#if defined(ARDUINO) && ARDUINO >= 100
#include "Arduino.h"
#else
#include "WProgram.h"
#include "WConstants.h"
#endif

// Include LCD library
#include <LiquidCrystal.h>
Run Code Online (Sandbox Code Playgroud)

错误在这一行:

private:
LiquidCrystal lcd( 8, 9, 4, 5, 6, 7 ); // <<-- Error
Run Code Online (Sandbox Code Playgroud)

arduino

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

如何更改Atmel Studio 6中C++的avr32-gcc C编译器而无需创建新项目?

我一直在将IAR项目迁移到Atmel Studio 6.我花了一些时间来创建所有文件夹并获得正确的结构,就像它在IAR项目中一样.然后我意识到我创建了一个C项目,实际上我也有C++代码.所以问题是:如何在不创建新项目的情况下将GCC编译器从C更改为C++?

我找不到任何关于Atmel Studio 6的正确文档.此外,我没有看到从GUI更改此参数的方法.

我发现我不必为C++编译器更改C语言.我必须使用两者.每个编译器都可以完成它 avr32-gcc编译C代码,avr32-gcccpp编译C++代码.现在的问题是:如何向项目添加第二个编译器?

我已经有了c的avr32-gcc

c c++ avr-gcc atmel

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

调整Nokogiri连接的超时

为什么nokogiri在服务器繁忙时等待几秒钟(3-5)并且我逐个请求页面,但是当这些请求处于循环中时,nokogiri不会等待并抛出超时消息.我正在使用超时阻止包裹请求,但nokogiri根本不等待那个时间.有关此的任何建议程序?

# this is a method from the eng class
def get_page(url,page_type)
 begin
  timeout(10) do
    # Get a Nokogiri::HTML::Document for the page we’re interested in...
    @@doc = Nokogiri::HTML(open(url))
  end
 rescue Timeout::Error
  puts "Time out connection request"
  raise
  end
end

 # this is a snippet from the main app calling eng class
 # receives a hash with urls and goes throgh asking one by one
 def retrieve_in_loop(links)
  (0..links.length).each do |idx|
    url = links[idx]
    puts "Visiting link #{idx} of #{links.length}"
    puts "link: …
Run Code Online (Sandbox Code Playgroud)

ruby timeout open-uri nokogiri net-http

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

如何在Windows上的rails中执行“bin/setup”?

据我所知,bin/setupRails 中的每个项目都可以轻松设置,例如安装所需的 gem、准备数据库等。但是如何在 Windows 环境中执行此操作?

ruby-on-rails

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

Crystal lang不应该从OptionParser获取选项参数

我开始使用Crystal lang 付费,我想使用OptionParser来显示帮助文本,但是-h将由Crystal而不是OptionParser进行interpred

我使用的是https://crystal-lang.org/api/0.18.7/OptionParser.html中的示例

并调用应用程序myAppl:

crystal src/myAppl.cr --help
Run Code Online (Sandbox Code Playgroud)

这显示了Crystal的帮助.现在,如果我编译应用程序,那么它会显示我编写OptionParser的帮助文本

我做错了什么?

optionparser crystal-lang

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

在rails中保存多个记录,如果某些记录失败则撤消

我想在rails中一次添加多个记录.

tax_rates.map {|tax_rate| TaxRate.new(tax_rate).save }
Run Code Online (Sandbox Code Playgroud)

但是在这种情况下,有些记录可能会被保存,而有些记录会被拒绝.

如果有些记录失败,谁能解释我如何拒绝所有记录?

提前致谢.

ruby-on-rails

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