资源简介
libmodbus的安装包,以及破解版本的Modbus Poll和Modbus Slave安装包,具体参考博文https://blog.csdn.net/qq_23670601/article/details/82112875
代码片段和文件信息
/*
* Copyright © 2010-2014 Stéphane Raimbault
*
* SPDX-License-Identifier: LGPL-2.1+
*/
#include
#ifndef _MSC_VER
# include
#else
# include “stdint.h“
#endif
#include
#include
#if defined(_WIN32)
# include
#else
# include
#endif
#include
#include “modbus.h“
#if defined(HAVE_BYTESWAP_H)
# include
#endif
#if defined(__APPLE__)
# include
# define bswap_16 OSSwapInt16
# define bswap_32 OSSwapInt32
# define bswap_64 OSSwapInt64
#endif
#if defined(__GNUC__)
# define GCC_VERSION (__GNUC__ * 100 + __GNUC_MINOR__ * 10)
# if GCC_VERSION >= 430
// Since GCC >= 4.30 GCC provides __builtin_bswapXX() alternatives so we switch to them
# undef bswap_32
# define bswap_32 __builtin_bswap32
# endif
# if GCC_VERSION >= 480
# undef bswap_16
# define bswap_16 __builtin_bswap16
# endif
#endif
#if defined(_MSC_VER) && (_MSC_VER >= 1400)
# define bswap_32 _byteswap_ulong
# define bswap_16 _byteswap_ushort
#endif
#if !defined(bswap_16)
# warning “Fallback on C functions for bswap_16“
static inline uint16_t bswap_16(uint16_t x)
{
return (x >> 8) | (x << 8);
}
#endif
#if !defined(bswap_32)
# warning “Fallback on C functions for bswap_32“
static inline uint32_t bswap_32(uint32_t x)
{
return (bswap_16(x & 0xffff) << 16) | (bswap_16(x >> 16));
}
#endif
/* Sets many bits from a single byte value (all 8 bits of the byte value are
set) */
void modbus_set_bits_from_byte(uint8_t *dest int idx const uint8_t value)
{
int i;
for (i=0; i < 8; i++) {
dest[idx+i] = (value & (1 << i)) ? 1 : 0;
}
}
/* Sets many bits from a table of bytes (only the bits between idx and
idx + nb_bits are set) */
void modbus_set_bits_from_bytes(uint8_t *dest int idx unsigned int nb_bits
const uint8_t *tab_byte)
{
unsigned int i;
int shift = 0;
for (i = idx; i < idx + nb_bits; i++) {
dest[i] = tab_byte[(i - idx) / 8] & (1 << shift) ? 1 : 0;
/* gcc doesn‘t like: shift = (++shift) % 8; */
shift++;
shift %= 8;
}
}
/* Gets the byte value from many bits.
To obtain a full byte set nb_bits to 8. */
uint8_t modbus_get_byte_from_bits(const uint8_t *src int idx
unsigned int nb_bits)
{
unsigned int i;
uint8_t value = 0;
if (nb_bits > 8) {
/* Assert is ignored if NDEBUG is set */
assert(nb_bits < 8);
nb_bits = 8;
}
for (i=0; i < nb_bits; i++) {
value |= (src[idx+i] << i);
}
return value;
}
/* Get a float from 4 bytes (Modbus) without any conversion (ABCD) */
float modbus_get_float_abcd(const uint16_t *src)
{
float f;
uint32_t i;
i = ntohl(((uint32_t)src[0] << 16) + src[1]);
memcpy(&f &i sizeof(float));
return f;
}
/* Get a float from 4 bytes (Modbus) in inversed format (DCBA) */
f
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2018-08-27 13:59 libmodbus-master\
文件 96 2018-06-07 16:40 libmodbus-master\.dir-locals.el
文件 575 2018-06-07 16:40 libmodbus-master\.gitignore
文件 100 2018-06-07 16:40 libmodbus-master\.travis.yml
文件 336 2018-06-07 16:40 libmodbus-master\AUTHORS
文件 1256 2018-06-07 16:40 libmodbus-master\CONTRIBUTING.md
文件 26530 2018-06-07 16:40 libmodbus-master\COPYING.LESSER
文件 2731 2018-06-07 16:40 libmodbus-master\ISSUE_TEMPLATE.md
文件 1780 2018-06-07 16:40 libmodbus-master\MIGRATION
文件 307 2018-06-07 16:40 libmodbus-master\Makefile.am
文件 21213 2018-06-07 16:40 libmodbus-master\NEWS
文件 3347 2018-06-07 16:40 libmodbus-master\README.md
文件 1489 2018-06-07 16:40 libmodbus-master\acinclude.m4
文件 385 2018-06-07 16:40 libmodbus-master\autogen.sh
文件 4912 2018-06-07 16:40 libmodbus-master\configure.ac
目录 0 2018-08-27 13:59 libmodbus-master\doc\
文件 2665 2018-06-07 16:40 libmodbus-master\doc\Makefile.am
文件 1233 2018-06-07 16:40 libmodbus-master\doc\asciidoc.conf
文件 9451 2018-06-07 16:40 libmodbus-master\doc\libmodbus.txt
文件 792 2018-06-07 16:40 libmodbus-master\doc\modbus_close.txt
文件 965 2018-06-07 16:40 libmodbus-master\doc\modbus_connect.txt
文件 564 2018-06-07 16:40 libmodbus-master\doc\modbus_flush.txt
文件 444 2018-06-07 16:40 libmodbus-master\doc\modbus_free.txt
文件 764 2018-06-07 16:40 libmodbus-master\doc\modbus_get_byte_from_bits.txt
文件 957 2018-06-07 16:40 libmodbus-master\doc\modbus_get_byte_timeout.txt
文件 868 2018-06-07 16:40 libmodbus-master\doc\modbus_get_float.txt
文件 830 2018-06-07 16:40 libmodbus-master\doc\modbus_get_float_abcd.txt
文件 849 2018-06-07 16:40 libmodbus-master\doc\modbus_get_float_badc.txt
文件 853 2018-06-07 16:40 libmodbus-master\doc\modbus_get_float_cdab.txt
文件 862 2018-06-07 16:40 libmodbus-master\doc\modbus_get_float_dcba.txt
文件 638 2018-06-07 16:40 libmodbus-master\doc\modbus_get_header_length.txt
............此处省略136个文件信息
- 上一篇:车牌识别系统源码
- 下一篇:麦克风阵列的波束形成
相关资源
- STM32F103移植FreeModbus同时实现ModbusRTU和
- modbus通用读取电表数据源码,使用的
- Intouch modbus驱动
- Modbus TCP 通信程序 源代码
- Modbus调试工具(20180810前最新)汉化版
- ModbusRTU与松下PLC完整
- Modbus Rtu Slave从机demo实现串口通信
- modbus串口通讯程序,源程序
- DSP modbus rtu
- MODBUS从站模拟器支持Modbus tcp及Rtu.ra
- Modbus TCP和TCP通信测试工具
- stc89c51通过modbus协议与上位机通信
- Modbus_RTU.rar
- 三菱、西门子、欧姆龙、松下PLC、单
- 西门子MAG8000电池流量计MODBUS RTU 通讯
- 自己做的modbus的调试工具
- delphi7实现的MODBUS RTU 标准协议 485 源码
- Modbus TCP协议
- MBAXP(ModbusActiveXPro)破解版.rar
- 基于Qt4RTU模式modbus使用包括slave和ma
- stm32移植modbus,亲测可用
- STM32 串口 Modbus RTU 协议 代码
- Modbus TCP/IP协议说明书
- labview modbus
- modbus 从站调试软件
- Modbus Poll
- STM32F407 485 MODBUS
- labview的modbus通讯方式
- 最好用的modbus工具
- STM32使用HAL库移植freemodbus-v1.6
评论
共有 条评论