小编xin*_*ose的帖子

Pymodbus 读/写浮点数(实数)

我的 AB Micro820 PLC 中有 modbus 映射设置。我有一个 40001 的数组用于写入,一个 42001 的数组用于读取。两者都是 200 个元素和 REAL 类型(32 位浮点数)。我目前可以读写,所以我知道代码可以工作,只是不正确。这些值被读/写为非常小的值(即4.58577478E-19)。有人能指出我正确的方向吗?

#!/usr/bin/env python

from pymodbus.constants import Endian
from pymodbus.payload import BinaryPayloadDecoder
from pymodbus.payload import BinaryPayloadBuilder
from pymodbus.client.sync import ModbusTcpClient

import logging
logging.basicConfig()
log = logging.getLogger()
log.setLevel(logging.INFO)

ip_address = "192.168.2.101"

client = ModbusTcpClient(ip_address)
if client.connect():    # connection is OK
    # write float
    builder = BinaryPayloadBuilder(endian=Endian.Little)
    builder.add_32bit_float(77.77)
    payload = builder.build()
    result  = client.write_registers(1, payload, skip_encode=True)
    # read floats
    result  = client.read_holding_registers(2001, 4)
    decoder = BinaryPayloadDecoder.fromRegisters(result.registers, endian=Endian.Little)
    print …
Run Code Online (Sandbox Code Playgroud)

python ethernet plc modbus

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

AWS Amplify - 它运行 PHP 脚本吗?

我的网站有一个带有 HTML 表单的联系我们页面,该表单将 POST 提交到用于PHPMailer发送电子邮件的本地 PHP 脚本。我的问题是,如果我将网站迁移到 AWS Amplify,它仍然可以工作吗?他们使用什么版本的 PHP?我在他们的论坛上发布了一个问题,但没有得到回复。

在此输入图像描述

php email phpmailer amazon-web-services aws-amplify

5
推荐指数
0
解决办法
4767
查看次数

从/ dev / input / event0读取的boost :: asio

我正在寻找使用boost :: asio来读取12位数字小键盘的方法。我目前可以通过以下方式完成此任务:

fd = open ("/dev/input/event0", 0_NONBLOCK);
read (fd, &ev, sizeof ev);
Run Code Online (Sandbox Code Playgroud)

你知道我怎么用boost :: asio做到吗?我正在使用Linux和C ++。这篇文章和这篇文章很有用。我不会使用串行端口(io,“ / dev / usb / hiddev0”),因为它不是串行端口,对吗?

谢谢。

c++ debian boost boost-asio keypad

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

如何实现全局Python记录器?

如何为所有python文件实现全局记录器?一些相关的SE问题是一个两个,但它们都不是我想要的,简单地说.我也希望在控制台中看到日志文件输出.

python logging global

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

在Linux中基于USB VID:PID获取设备路径

如果我插入设备,然后说,/dev/ttyUSB0并且我想0根据其VID:PID(使用找到lsusb)获取该号码,那么在C ++ Linux中该怎么做?我有这段代码可以找到一个打印机设备,如果有帮助的话:

int printer_open (void)
{    
    char printer_location[] = "/dev/usb/lpX";
    struct stat buf;

    // continuously try all numbers until stat returns true for the connected printer
    for (int i = 0; i < 10; i++)
    {
        printer_location[11] = '0' + i;
        if (!stat (printer_location, &buf))
            break;
    }

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

c++ linux usb

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

ng update 从不更新@angular/core 版本

我运行命令 ng update

We analyzed your package.json, there are some packages to update:

  Name                                  Version                  Command to update
 -----------------------------------------------------------------------------------
  @angular/core                         9.0.7 -> 9.1.0           ng update @angular/core
Run Code Online (Sandbox Code Playgroud)

所以我跑了ng update @angular/core,它说Package '@angular/core' is already up to date. 我该如何解决这个问题?

ng v

Angular CLI: 9.1.0
Node: 13.9.0
OS: win32 x64

Angular: 9.1.0
... cli, core, forms, localize
Ivy Workspace: Yes

Package                             Version
-------------------------------------------------------------
@angular-devkit/architect           0.900.7
@angular-devkit/build-angular       0.900.7
@angular-devkit/build-optimizer     0.900.7
@angular-devkit/build-webpack       0.900.7
@angular-devkit/core                9.1.0
@angular-devkit/schematics          9.1.0
@angular/animations                 9.0.7
@angular/common                     9.0.7
@angular/compiler                   9.0.7 …
Run Code Online (Sandbox Code Playgroud)

angular-cli angular

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

UDP Connect始终成功

我使用Boost ASIO通过以太网连接到带有以太网屏蔽的Arduino Nano.这是Arduino设置:

#include <EtherCard.h>
ether.staticSetup("10.0.0.4", "10.0.0.1");
ether.udpServerListenOnPort(&callback_function, 1337);
Run Code Online (Sandbox Code Playgroud)

这是我连接到它的C++代码:

#include <boost/asio.hpp>
#include <boost/shared_ptr.hpp>
#include <boost/make_shared.hpp>
#include <boost/bind.hpp>
#include <boost/thread.hpp>
#include <boost/system/error_code.hpp>
#include <boost/system/system_error.hpp>

boost::system::error_code error_1;
boost::shared_ptr <boost::asio::io_service> io_service_1;
boost::shared_ptr <boost::asio::ip::udp::socket> socket_1;
Run Code Online (Sandbox Code Playgroud)

初始化

// 1. reset io service      
io_service_1.reset();
io_service_1 = boost::make_shared <boost::asio::io_service> ();

// 2. create endpoint
boost::asio::ip::udp::endpoint remote_endpoint(
    boost::asio::ip::address::from_string("10.0.0.4"), 
    1337
);

// 3. reset socket
socket_1.reset(new boost::asio::ip::udp::socket(*io_service_1));                

// 4. connect socket
socket_1->async_connect(remote_endpoint, socket_1_connect_callback);

// 5. start io_service_1 run thread after giving it work
boost::thread t(boost::bind(&boost::asio::io_service::run, *&io_service_1));    
Run Code Online (Sandbox Code Playgroud)

打回来 …

c++ boost udp arduino boost-asio

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