資源簡介
完整的Modbus資料,看過從初學到應用。

代碼片段和文件信息
/*
?*?Copyright???2010-2011?Stéphane?Raimbault?
?*
?*?This?library?is?free?software;?you?can?redistribute?it?and/or
?*?modify?it?under?the?terms?of?the?GNU?Lesser?General?Public
?*?License?as?published?by?the?Free?Software?Foundation;?either
?*?version?2.1?of?the?License?or?(at?your?option)?any?later?version.
?*
?*?This?library?is?distributed?in?the?hope?that?it?will?be?useful
?*?but?WITHOUT?ANY?WARRANTY;?without?even?the?implied?warranty?of
?*?MERCHANTABILITY?or?FITNESS?FOR?A?PARTICULAR?PURPOSE.??See?the?GNU
?*?Lesser?General?Public?License?for?more?details.
?*
?*?You?should?have?received?a?copy?of?the?GNU?Lesser?General?Public
?*?License?along?with?this?library;?if?not?write?to?the?Free?Software
?*?Foundation?Inc.?51?Franklin?Street?Fifth?Floor?Boston?MA?02110-1301?USA
?*/
#include?
#ifndef?_MSC_VER
#include?
#else
#include?“stdint.h“
#endif
#include?
#include?
/*?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?index?const?uint8_t?value)
{
????int?i;
????for?(i=0;?i<8;?i++)?{
????????dest[index+i]?=?(value?&?(1?<????}
}
/*?Sets?many?bits?from?a?table?of?bytes?(only?the?bits?between?index?and
???index?+?nb_bits?are?set)?*/
void?modbus_set_bits_from_bytes(uint8_t?*dest?int?index?unsigned?int?nb_bits
????????????????????????????????const?uint8_t?*tab_byte)
{
????int?i;
????int?shift?=?0;
????for?(i?=?index;?i?????????dest[i]?=?tab_byte[(i?-?index)?/?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?index
??????????????????????????????????unsigned?int?nb_bits)
{
????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[index+i]?<????}
????return?value;
}
/*?Get?a?float?from?4?bytes?in?Modbus?format?*/
float?modbus_get_float(const?uint16_t?*src)
{
????float?f?=?0.0f;
????uint32_t?i;
????i?=?(((uint32_t)src[1])?<16)?+?src[0];
????memcpy(&f?&i?sizeof(float));
????return?f;
}
/*?Set?a?float?to?4?bytes?in?Modbus?format?*/
void?modbus_set_float(float?f?uint16_t?*dest)
{
????uint32_t?i?=?0;
????memcpy(&i?&f?sizeof(uint32_t));
????dest[0]?=?(uint16_t)i;
????dest[1]?=?(uint16_t)(i?>>?16);
}
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件?????168319??2005-11-29?11:19??Modbus詳解\第一章:控制設備通信慨況.pdf
?????文件?????764121??2005-11-29?11:22??Modbus詳解\第三章:以C++Builder設計?Modbus通信程序.pdf
?????文件?????381293??2005-11-29?11:21??Modbus詳解\第二章:Modbus?通信協議說明.pdf
?????文件?????399974??2005-11-29?11:22??Modbus詳解\第五章:Modbus通信最新發展.pdf
?????文件?????222073??2005-11-29?11:20??Modbus詳解\第六章:使用Modbus注意要項.pdf
?????文件????1195222??2005-11-29?11:37??Modbus詳解\第四章:以PC?ba
?????文件???????2181??2012-01-17?05:39??libmodbus-3.0.3源碼庫\acinclude.m4
?????文件??????35712??2012-05-26?07:14??libmodbus-3.0.3源碼庫\aclocal.m4
?????文件????????124??2011-09-10?04:29??libmodbus-3.0.3源碼庫\AUTHORS
?????文件??????44941??2012-05-26?07:14??libmodbus-3.0.3源碼庫\config.guess
?????文件???????4374??2012-05-26?07:14??libmodbus-3.0.3源碼庫\config.h.in
?????文件??????34423??2012-05-26?07:14??libmodbus-3.0.3源碼庫\config.sub
?????文件?????577475??2012-05-26?07:14??libmodbus-3.0.3源碼庫\configure
?????文件???????3903??2012-05-26?07:06??libmodbus-3.0.3源碼庫\configure.ac
?????文件??????35147??2010-10-15?21:37??libmodbus-3.0.3源碼庫\COPYING
?????文件??????26530??2011-09-10?04:29??libmodbus-3.0.3源碼庫\COPYING.LESSER
?????文件??????18615??2012-05-26?07:14??libmodbus-3.0.3源碼庫\depcomp
?????文件???????1232??2011-09-10?04:29??libmodbus-3.0.3源碼庫\doc\asciidoc.conf
?????文件???????9593??2012-05-26?07:19??libmodbus-3.0.3源碼庫\doc\libmodbus.7
?????文件??????19795??2012-05-26?07:19??libmodbus-3.0.3源碼庫\doc\libmodbus.html
?????文件???????7743??2012-05-20?05:54??libmodbus-3.0.3源碼庫\doc\libmodbus.txt
?????文件???????2213??2012-05-20?05:54??libmodbus-3.0.3源碼庫\doc\Makefile.am
?????文件??????18251??2012-05-26?07:14??libmodbus-3.0.3源碼庫\doc\Makefile.in
?????文件???????2158??2012-05-26?07:18??libmodbus-3.0.3源碼庫\doc\modbus_close.3
?????文件??????10842??2012-05-26?07:18??libmodbus-3.0.3源碼庫\doc\modbus_close.html
?????文件????????792??2011-09-10?04:29??libmodbus-3.0.3源碼庫\doc\modbus_close.txt
?????文件???????2349??2012-05-26?07:18??libmodbus-3.0.3源碼庫\doc\modbus_connect.3
?????文件??????10734??2012-05-26?07:18??libmodbus-3.0.3源碼庫\doc\modbus_connect.html
?????文件????????981??2011-09-10?04:29??libmodbus-3.0.3源碼庫\doc\modbus_connect.txt
?????文件???????1956??2012-05-26?07:19??libmodbus-3.0.3源碼庫\doc\modbus_flush.3
............此處省略190個文件信息
- 上一篇:emWin5中文手冊
- 下一篇:中華圖書人操作手冊3.0.doc
評論
共有 條評論