資源簡(jiǎn)介
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?<????}
}
/*?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?????????dest[i]?=?tab_byte[(i?-?idx)?/?8]?&?(1?<????????/*?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?????????value?|=?(src[idx+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
?屬性????????????大小?????日期????時(shí)間???名稱
-----------?---------??----------?-----??----
?????目錄???????????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個(gè)文件信息
- 上一篇:車牌識(shí)別系統(tǒng)源碼
- 下一篇:麥克風(fēng)陣列的波束形成
評(píng)論
共有 條評(píng)論