Чет работает
This commit is contained in:
42
AllLibs/Modbus/Doc/latex/Makefile
Normal file
42
AllLibs/Modbus/Doc/latex/Makefile
Normal file
@@ -0,0 +1,42 @@
|
||||
LATEX_CMD?=pdflatex
|
||||
MKIDX_CMD?=makeindex
|
||||
BIBTEX_CMD?=bibtex
|
||||
LATEX_COUNT?=8
|
||||
MANUAL_FILE?=refman
|
||||
|
||||
all: $(MANUAL_FILE).pdf
|
||||
|
||||
pdf: $(MANUAL_FILE).pdf
|
||||
|
||||
$(MANUAL_FILE).pdf: clean $(MANUAL_FILE).tex
|
||||
$(LATEX_CMD) $(MANUAL_FILE) || \
|
||||
if [ $$? != 0 ] ; then \
|
||||
\echo "Please consult $(MANUAL_FILE).log to see the error messages" ; \
|
||||
false; \
|
||||
fi
|
||||
$(MKIDX_CMD) $(MANUAL_FILE).idx
|
||||
$(LATEX_CMD) $(MANUAL_FILE) || \
|
||||
if [ $$? != 0 ] ; then \
|
||||
\echo "Please consult $(MANUAL_FILE).log to see the error messages" ; \
|
||||
false; \
|
||||
fi
|
||||
latex_count=$(LATEX_COUNT) ; \
|
||||
while grep -E -s 'Rerun (LaTeX|to get cross-references right|to get bibliographical references right)' $(MANUAL_FILE).log && [ $$latex_count -gt 0 ] ;\
|
||||
do \
|
||||
echo "Rerunning latex...." ;\
|
||||
$(LATEX_CMD) $(MANUAL_FILE) || \
|
||||
if [ $$? != 0 ] ; then \
|
||||
\echo "Please consult $(MANUAL_FILE).log to see the error messages" ; \
|
||||
false; \
|
||||
fi; \
|
||||
latex_count=`expr $$latex_count - 1` ;\
|
||||
done
|
||||
$(MKIDX_CMD) $(MANUAL_FILE).idx
|
||||
$(LATEX_CMD) $(MANUAL_FILE) || \
|
||||
if [ $$? != 0 ] ; then \
|
||||
\echo "Please consult $(MANUAL_FILE).log to see the error messages" ; \
|
||||
false; \
|
||||
fi
|
||||
|
||||
clean:
|
||||
rm -f *.ps *.dvi *.aux *.toc *.idx *.ind *.ilg *.log *.out *.brf *.blg *.bbl $(MANUAL_FILE).pdf
|
||||
122
AllLibs/Modbus/Doc/latex/____crc__algs_8c_source.tex
Normal file
122
AllLibs/Modbus/Doc/latex/____crc__algs_8c_source.tex
Normal file
@@ -0,0 +1,122 @@
|
||||
\doxysection{\+\_\+\+\_\+crc\+\_\+algs.\+c}
|
||||
\hypertarget{____crc__algs_8c_source}{}\label{____crc__algs_8c_source}\index{E:/.WORK/STM32/Diod\_Test/diode\_tester/Core/Modbus/Src/\_\_crc\_algs.c@{E:/.WORK/STM32/Diod\_Test/diode\_tester/Core/Modbus/Src/\_\_crc\_algs.c}}
|
||||
|
||||
\begin{DoxyCode}{0}
|
||||
\DoxyCodeLine{\Hypertarget{____crc__algs_8c_source_l00001}00001\ \textcolor{preprocessor}{\#include\ "{}\_\_crc\_algs.h"{}}}
|
||||
\DoxyCodeLine{\Hypertarget{____crc__algs_8c_source_l00002}00002\ }
|
||||
\DoxyCodeLine{\Hypertarget{____crc__algs_8c_source_l00003}00003\ }
|
||||
\DoxyCodeLine{\Hypertarget{____crc__algs_8c_source_l00004}00004\ uint32\_t\ CRC\_calc;}
|
||||
\DoxyCodeLine{\Hypertarget{____crc__algs_8c_source_l00005}00005\ uint32\_t\ CRC\_ref;}
|
||||
\DoxyCodeLine{\Hypertarget{____crc__algs_8c_source_l00006}00006\ }
|
||||
\DoxyCodeLine{\Hypertarget{____crc__algs_8c_source_l00007}00007\ \textcolor{comment}{//uint16\_t\ CRC\_calc;}}
|
||||
\DoxyCodeLine{\Hypertarget{____crc__algs_8c_source_l00008}00008\ \textcolor{comment}{//uint16\_t\ CRC\_ref;}}
|
||||
\DoxyCodeLine{\Hypertarget{____crc__algs_8c_source_l00009}00009\ }
|
||||
\DoxyCodeLine{\Hypertarget{____crc__algs_8c_source_l00010}00010\ }
|
||||
\DoxyCodeLine{\Hypertarget{____crc__algs_8c_source_l00011}00011\ \textcolor{comment}{//\ left\ this\ global\ for\ debug}}
|
||||
\DoxyCodeLine{\Hypertarget{____crc__algs_8c_source_l00012}00012\ uint8\_t\ uchCRCHi\ =\ 0xFF;\ \ }
|
||||
\DoxyCodeLine{\Hypertarget{____crc__algs_8c_source_l00013}00013\ uint8\_t\ uchCRCLo\ =\ 0xFF;\ }
|
||||
\DoxyCodeLine{\Hypertarget{____crc__algs_8c_source_l00014}00014\ \textcolor{keywordtype}{unsigned}\ uIndex;\ \ \ \ }
|
||||
\DoxyCodeLine{\Hypertarget{____crc__algs_8c_source_l00015}00015\ }
|
||||
\DoxyCodeLine{\Hypertarget{____crc__algs_8c_source_l00016}00016\ }
|
||||
\DoxyCodeLine{\Hypertarget{____crc__algs_8c_source_l00017}00017\ uint32\_t\ crc32(uint8\_t\ *data,\ uint32\_t\ data\_size)}
|
||||
\DoxyCodeLine{\Hypertarget{____crc__algs_8c_source_l00018}00018\ \{}
|
||||
\DoxyCodeLine{\Hypertarget{____crc__algs_8c_source_l00019}00019\ \ \ \textcolor{keyword}{static}\ \textcolor{keyword}{const}\ \textcolor{keywordtype}{unsigned}\ \textcolor{keywordtype}{int}\ crc32\_table[]\ =}
|
||||
\DoxyCodeLine{\Hypertarget{____crc__algs_8c_source_l00020}00020\ \{}
|
||||
\DoxyCodeLine{\Hypertarget{____crc__algs_8c_source_l00021}00021\ \ \ 0x00000000,\ 0x77073096,\ 0xEE0E612C,\ 0x990951BA,\ 0x076DC419,\ 0x706AF48F,\ 0xE963A535,\ 0x9E6495A3,\ }
|
||||
\DoxyCodeLine{\Hypertarget{____crc__algs_8c_source_l00022}00022\ \ \ 0x0EDB8832,\ 0x79DCB8A4,\ 0xE0D5E91E,\ 0x97D2D988,\ 0x09B64C2B,\ 0x7EB17CBD,\ 0xE7B82D07,\ 0x90BF1D91,\ }
|
||||
\DoxyCodeLine{\Hypertarget{____crc__algs_8c_source_l00023}00023\ \ \ 0x1DB71064,\ 0x6AB020F2,\ 0xF3B97148,\ 0x84BE41DE,\ 0x1ADAD47D,\ 0x6DDDE4EB,\ 0xF4D4B551,\ 0x83D385C7,\ }
|
||||
\DoxyCodeLine{\Hypertarget{____crc__algs_8c_source_l00024}00024\ \ \ 0x136C9856,\ 0x646BA8C0,\ 0xFD62F97A,\ 0x8A65C9EC,\ 0x14015C4F,\ 0x63066CD9,\ 0xFA0F3D63,\ 0x8D080DF5,\ }
|
||||
\DoxyCodeLine{\Hypertarget{____crc__algs_8c_source_l00025}00025\ \ \ 0x3B6E20C8,\ 0x4C69105E,\ 0xD56041E4,\ 0xA2677172,\ 0x3C03E4D1,\ 0x4B04D447,\ 0xD20D85FD,\ 0xA50AB56B,\ }
|
||||
\DoxyCodeLine{\Hypertarget{____crc__algs_8c_source_l00026}00026\ \ \ 0x35B5A8FA,\ 0x42B2986C,\ 0xDBBBC9D6,\ 0xACBCF940,\ 0x32D86CE3,\ 0x45DF5C75,\ 0xDCD60DCF,\ 0xABD13D59,\ }
|
||||
\DoxyCodeLine{\Hypertarget{____crc__algs_8c_source_l00027}00027\ \ \ 0x26D930AC,\ 0x51DE003A,\ 0xC8D75180,\ 0xBFD06116,\ 0x21B4F4B5,\ 0x56B3C423,\ 0xCFBA9599,\ 0xB8BDA50F,\ }
|
||||
\DoxyCodeLine{\Hypertarget{____crc__algs_8c_source_l00028}00028\ \ \ 0x2802B89E,\ 0x5F058808,\ 0xC60CD9B2,\ 0xB10BE924,\ 0x2F6F7C87,\ 0x58684C11,\ 0xC1611DAB,\ 0xB6662D3D,\ }
|
||||
\DoxyCodeLine{\Hypertarget{____crc__algs_8c_source_l00029}00029\ \ \ 0x76DC4190,\ 0x01DB7106,\ 0x98D220BC,\ 0xEFD5102A,\ 0x71B18589,\ 0x06B6B51F,\ 0x9FBFE4A5,\ 0xE8B8D433,\ }
|
||||
\DoxyCodeLine{\Hypertarget{____crc__algs_8c_source_l00030}00030\ \ \ 0x7807C9A2,\ 0x0F00F934,\ 0x9609A88E,\ 0xE10E9818,\ 0x7F6A0DBB,\ 0x086D3D2D,\ 0x91646C97,\ 0xE6635C01,\ }
|
||||
\DoxyCodeLine{\Hypertarget{____crc__algs_8c_source_l00031}00031\ \ \ 0x6B6B51F4,\ 0x1C6C6162,\ 0x856530D8,\ 0xF262004E,\ 0x6C0695ED,\ 0x1B01A57B,\ 0x8208F4C1,\ 0xF50FC457,\ }
|
||||
\DoxyCodeLine{\Hypertarget{____crc__algs_8c_source_l00032}00032\ \ \ 0x65B0D9C6,\ 0x12B7E950,\ 0x8BBEB8EA,\ 0xFCB9887C,\ 0x62DD1DDF,\ 0x15DA2D49,\ 0x8CD37CF3,\ 0xFBD44C65,\ }
|
||||
\DoxyCodeLine{\Hypertarget{____crc__algs_8c_source_l00033}00033\ \ \ 0x4DB26158,\ 0x3AB551CE,\ 0xA3BC0074,\ 0xD4BB30E2,\ 0x4ADFA541,\ 0x3DD895D7,\ 0xA4D1C46D,\ 0xD3D6F4FB,\ }
|
||||
\DoxyCodeLine{\Hypertarget{____crc__algs_8c_source_l00034}00034\ \ \ 0x4369E96A,\ 0x346ED9FC,\ 0xAD678846,\ 0xDA60B8D0,\ 0x44042D73,\ 0x33031DE5,\ 0xAA0A4C5F,\ 0xDD0D7CC9,\ }
|
||||
\DoxyCodeLine{\Hypertarget{____crc__algs_8c_source_l00035}00035\ \ \ 0x5005713C,\ 0x270241AA,\ 0xBE0B1010,\ 0xC90C2086,\ 0x5768B525,\ 0x206F85B3,\ 0xB966D409,\ 0xCE61E49F,\ }
|
||||
\DoxyCodeLine{\Hypertarget{____crc__algs_8c_source_l00036}00036\ \ \ 0x5EDEF90E,\ 0x29D9C998,\ 0xB0D09822,\ 0xC7D7A8B4,\ 0x59B33D17,\ 0x2EB40D81,\ 0xB7BD5C3B,\ 0xC0BA6CAD,\ }
|
||||
\DoxyCodeLine{\Hypertarget{____crc__algs_8c_source_l00037}00037\ \ \ 0xEDB88320,\ 0x9ABFB3B6,\ 0x03B6E20C,\ 0x74B1D29A,\ 0xEAD54739,\ 0x9DD277AF,\ 0x04DB2615,\ 0x73DC1683,\ }
|
||||
\DoxyCodeLine{\Hypertarget{____crc__algs_8c_source_l00038}00038\ \ \ 0xE3630B12,\ 0x94643B84,\ 0x0D6D6A3E,\ 0x7A6A5AA8,\ 0xE40ECF0B,\ 0x9309FF9D,\ 0x0A00AE27,\ 0x7D079EB1,\ }
|
||||
\DoxyCodeLine{\Hypertarget{____crc__algs_8c_source_l00039}00039\ \ \ 0xF00F9344,\ 0x8708A3D2,\ 0x1E01F268,\ 0x6906C2FE,\ 0xF762575D,\ 0x806567CB,\ 0x196C3671,\ 0x6E6B06E7,\ }
|
||||
\DoxyCodeLine{\Hypertarget{____crc__algs_8c_source_l00040}00040\ \ \ 0xFED41B76,\ 0x89D32BE0,\ 0x10DA7A5A,\ 0x67DD4ACC,\ 0xF9B9DF6F,\ 0x8EBEEFF9,\ 0x17B7BE43,\ 0x60B08ED5,\ }
|
||||
\DoxyCodeLine{\Hypertarget{____crc__algs_8c_source_l00041}00041\ \ \ 0xD6D6A3E8,\ 0xA1D1937E,\ 0x38D8C2C4,\ 0x4FDFF252,\ 0xD1BB67F1,\ 0xA6BC5767,\ 0x3FB506DD,\ 0x48B2364B,\ }
|
||||
\DoxyCodeLine{\Hypertarget{____crc__algs_8c_source_l00042}00042\ \ \ 0xD80D2BDA,\ 0xAF0A1B4C,\ 0x36034AF6,\ 0x41047A60,\ 0xDF60EFC3,\ 0xA867DF55,\ 0x316E8EEF,\ 0x4669BE79,\ }
|
||||
\DoxyCodeLine{\Hypertarget{____crc__algs_8c_source_l00043}00043\ \ \ 0xCB61B38C,\ 0xBC66831A,\ 0x256FD2A0,\ 0x5268E236,\ 0xCC0C7795,\ 0xBB0B4703,\ 0x220216B9,\ 0x5505262F,\ }
|
||||
\DoxyCodeLine{\Hypertarget{____crc__algs_8c_source_l00044}00044\ \ \ 0xC5BA3BBE,\ 0xB2BD0B28,\ 0x2BB45A92,\ 0x5CB36A04,\ 0xC2D7FFA7,\ 0xB5D0CF31,\ 0x2CD99E8B,\ 0x5BDEAE1D,\ }
|
||||
\DoxyCodeLine{\Hypertarget{____crc__algs_8c_source_l00045}00045\ \ \ 0x9B64C2B0,\ 0xEC63F226,\ 0x756AA39C,\ 0x026D930A,\ 0x9C0906A9,\ 0xEB0E363F,\ 0x72076785,\ 0x05005713,\ }
|
||||
\DoxyCodeLine{\Hypertarget{____crc__algs_8c_source_l00046}00046\ \ \ 0x95BF4A82,\ 0xE2B87A14,\ 0x7BB12BAE,\ 0x0CB61B38,\ 0x92D28E9B,\ 0xE5D5BE0D,\ 0x7CDCEFB7,\ 0x0BDBDF21,\ }
|
||||
\DoxyCodeLine{\Hypertarget{____crc__algs_8c_source_l00047}00047\ \ \ 0x86D3D2D4,\ 0xF1D4E242,\ 0x68DDB3F8,\ 0x1FDA836E,\ 0x81BE16CD,\ 0xF6B9265B,\ 0x6FB077E1,\ 0x18B74777,\ }
|
||||
\DoxyCodeLine{\Hypertarget{____crc__algs_8c_source_l00048}00048\ \ \ 0x88085AE6,\ 0xFF0F6A70,\ 0x66063BCA,\ 0x11010B5C,\ 0x8F659EFF,\ 0xF862AE69,\ 0x616BFFD3,\ 0x166CCF45,\ }
|
||||
\DoxyCodeLine{\Hypertarget{____crc__algs_8c_source_l00049}00049\ \ \ 0xA00AE278,\ 0xD70DD2EE,\ 0x4E048354,\ 0x3903B3C2,\ 0xA7672661,\ 0xD06016F7,\ 0x4969474D,\ 0x3E6E77DB,\ }
|
||||
\DoxyCodeLine{\Hypertarget{____crc__algs_8c_source_l00050}00050\ \ \ 0xAED16A4A,\ 0xD9D65ADC,\ 0x40DF0B66,\ 0x37D83BF0,\ 0xA9BCAE53,\ 0xDEBB9EC5,\ 0x47B2CF7F,\ 0x30B5FFE9,\ }
|
||||
\DoxyCodeLine{\Hypertarget{____crc__algs_8c_source_l00051}00051\ \ \ 0xBDBDF21C,\ 0xCABAC28A,\ 0x53B39330,\ 0x24B4A3A6,\ 0xBAD03605,\ 0xCDD70693,\ 0x54DE5729,\ 0x23D967BF,\ }
|
||||
\DoxyCodeLine{\Hypertarget{____crc__algs_8c_source_l00052}00052\ \ \ 0xB3667A2E,\ 0xC4614AB8,\ 0x5D681B02,\ 0x2A6F2B94,\ 0xB40BBE37,\ 0xC30C8EA1,\ 0x5A05DF1B,\ 0x2D02EF8D}
|
||||
\DoxyCodeLine{\Hypertarget{____crc__algs_8c_source_l00053}00053\ \};\ \ }
|
||||
\DoxyCodeLine{\Hypertarget{____crc__algs_8c_source_l00054}00054\ \textcolor{keywordtype}{unsigned}\ \textcolor{keywordtype}{int}\ crc\ =\ 0xFFFFFFFF;}
|
||||
\DoxyCodeLine{\Hypertarget{____crc__algs_8c_source_l00055}00055\ \ \ \textcolor{keywordflow}{while}\ (data\_size-\/-\/)}
|
||||
\DoxyCodeLine{\Hypertarget{____crc__algs_8c_source_l00056}00056\ \ \ \ \ \{}
|
||||
\DoxyCodeLine{\Hypertarget{____crc__algs_8c_source_l00057}00057\ \ \ \ \ \ \ crc\ =\ (crc\ >>\ 8)\ \string^\ crc32\_table[(crc\ \string^\ *data)\ \&\ 255];}
|
||||
\DoxyCodeLine{\Hypertarget{____crc__algs_8c_source_l00058}00058\ \ \ \ \ \ \ data++;}
|
||||
\DoxyCodeLine{\Hypertarget{____crc__algs_8c_source_l00059}00059\ \ \ \ \ \}}
|
||||
\DoxyCodeLine{\Hypertarget{____crc__algs_8c_source_l00060}00060\ \ \ \textcolor{keywordflow}{return}\ crc\string^0xFFFFFFFF;}
|
||||
\DoxyCodeLine{\Hypertarget{____crc__algs_8c_source_l00061}00061\ \}}
|
||||
\DoxyCodeLine{\Hypertarget{____crc__algs_8c_source_l00062}00062\ }
|
||||
\DoxyCodeLine{\Hypertarget{____crc__algs_8c_source_l00063}00063\ }
|
||||
\DoxyCodeLine{\Hypertarget{____crc__algs_8c_source_l00064}00064\ uint16\_t\ crc16(uint8\_t\ *data,\ uint32\_t\ data\_size)}
|
||||
\DoxyCodeLine{\Hypertarget{____crc__algs_8c_source_l00065}00065\ \{\ }
|
||||
\DoxyCodeLine{\Hypertarget{____crc__algs_8c_source_l00066}00066\ \ \ \textcolor{comment}{/*Table\ of\ CRC\ values\ for\ high\ order\ byte*/}}
|
||||
\DoxyCodeLine{\Hypertarget{____crc__algs_8c_source_l00067}00067\ \ \ \textcolor{keyword}{static}\ \textcolor{keywordtype}{unsigned}\ \textcolor{keywordtype}{char}\ auchCRCHi[]=}
|
||||
\DoxyCodeLine{\Hypertarget{____crc__algs_8c_source_l00068}00068\ \ \ \{}
|
||||
\DoxyCodeLine{\Hypertarget{____crc__algs_8c_source_l00069}00069\ \ \ \ \ \ \ 0x00,0xC1,0x81,0x40,0x01,0xC0,0x80,0x41,0x01,0xC0,0x80,0x41,0x00,0xC1,0x81,0x40,}
|
||||
\DoxyCodeLine{\Hypertarget{____crc__algs_8c_source_l00070}00070\ \ \ \ \ \ \ 0x01,0xC0,0x80,0x41,0x00,0xC1,0x81,0x40,0x00,0xC1,0x81,0x40,0x01,0xC0,0x80,0x41,}
|
||||
\DoxyCodeLine{\Hypertarget{____crc__algs_8c_source_l00071}00071\ \ \ \ \ \ \ 0x01,0xC0,0x80,0x41,0x00,0xC1,0x81,0x40,0x00,0xC1,0x81,0x40,0x01,0xC0,0x80,0x41,}
|
||||
\DoxyCodeLine{\Hypertarget{____crc__algs_8c_source_l00072}00072\ \ \ \ \ \ \ 0x00,0xC1,0x81,0x40,0x01,0xC0,0x80,0x41,0x01,0xC0,0x80,0x41,0x00,0xC1,0x81,0x40,}
|
||||
\DoxyCodeLine{\Hypertarget{____crc__algs_8c_source_l00073}00073\ \ \ \ \ \ \ 0x01,0xC0,0x80,0x41,0x00,0xC1,0x81,0x40,0x00,0xC1,0x81,0x40,0x01,0xC0,0x80,0x41,}
|
||||
\DoxyCodeLine{\Hypertarget{____crc__algs_8c_source_l00074}00074\ \ \ \ \ \ \ 0x00,0xC1,0x81,0x40,0x01,0xC0,0x80,0x41,0x01,0xC0,0x80,0x41,0x00,0xC1,0x81,0x40,}
|
||||
\DoxyCodeLine{\Hypertarget{____crc__algs_8c_source_l00075}00075\ \ \ \ \ \ \ 0x00,0xC1,0x81,0x40,0x01,0xC0,0x80,0x41,0x01,0xC0,0x80,0x41,0x00,0xC1,0x81,0x40,}
|
||||
\DoxyCodeLine{\Hypertarget{____crc__algs_8c_source_l00076}00076\ \ \ \ \ \ \ 0x01,0xC0,0x80,0x41,0x00,0xC1,0x81,0x40,0x00,0xC1,0x81,0x40,0x01,0xC0,0x80,0x41,}
|
||||
\DoxyCodeLine{\Hypertarget{____crc__algs_8c_source_l00077}00077\ \ \ \ \ \ \ 0x01,0xC0,0x80,0x41,0x00,0xC1,0x81,0x40,0x00,0xC1,0x81,0x40,0x01,0xC0,0x80,0x41,}
|
||||
\DoxyCodeLine{\Hypertarget{____crc__algs_8c_source_l00078}00078\ \ \ \ \ \ \ 0x00,0xC1,0x81,0x40,0x01,0xC0,0x80,0x41,0x01,0xC0,0x80,0x41,0x00,0xC1,0x81,0x40,}
|
||||
\DoxyCodeLine{\Hypertarget{____crc__algs_8c_source_l00079}00079\ \ \ \ \ \ \ 0x00,0xC1,0x81,0x40,0x01,0xC0,0x80,0x41,0x01,0xC0,0x80,0x41,0x00,0xC1,0x81,0x40,}
|
||||
\DoxyCodeLine{\Hypertarget{____crc__algs_8c_source_l00080}00080\ \ \ \ \ \ \ 0x01,0xC0,0x80,0x41,0x00,0xC1,0x81,0x40,0x00,0xC1,0x81,0x40,0x01,0xC0,0x80,0x41,}
|
||||
\DoxyCodeLine{\Hypertarget{____crc__algs_8c_source_l00081}00081\ \ \ \ \ \ \ 0x00,0xC1,0x81,0x40,0x01,0xC0,0x80,0x41,0x01,0xC0,0x80,0x41,0x00,0xC1,0x81,0x40,}
|
||||
\DoxyCodeLine{\Hypertarget{____crc__algs_8c_source_l00082}00082\ \ \ \ \ \ \ 0x01,0xC0,0x80,0x41,0x00,0xC1,0x81,0x40,0x00,0xC1,0x81,0x40,0x01,0xC0,0x80,0x41,}
|
||||
\DoxyCodeLine{\Hypertarget{____crc__algs_8c_source_l00083}00083\ \ \ \ \ \ \ 0x01,0xC0,0x80,0x41,0x00,0xC1,0x81,0x40,0x00,0xC1,0x81,0x40,0x01,0xC0,0x80,0x41,}
|
||||
\DoxyCodeLine{\Hypertarget{____crc__algs_8c_source_l00084}00084\ \ \ \ \ \ \ 0x00,0xC1,0x81,0x40,0x01,0xC0,0x80,0x41,0x01,0xC0,0x80,0x41,0x00,0xC1,0x81,0x40,}
|
||||
\DoxyCodeLine{\Hypertarget{____crc__algs_8c_source_l00085}00085\ \ \ \};}
|
||||
\DoxyCodeLine{\Hypertarget{____crc__algs_8c_source_l00086}00086\ \ \ \textcolor{comment}{/*Table\ of\ CRC\ values\ for\ low\ order\ byte*/}}
|
||||
\DoxyCodeLine{\Hypertarget{____crc__algs_8c_source_l00087}00087\ \ \ \textcolor{keyword}{static}\ \textcolor{keywordtype}{char}\ auchCRCLo[]\ =}
|
||||
\DoxyCodeLine{\Hypertarget{____crc__algs_8c_source_l00088}00088\ \ \ \{}
|
||||
\DoxyCodeLine{\Hypertarget{____crc__algs_8c_source_l00089}00089\ \ \ \ \ \ \ \ \ \ \ 0x00,0xC0,0xC1,0x01,0xC3,0x03,0x02,0xC2,0xC6,0x06,0x07,0xC7,0x05,0xC5,0xC4,0x04,}
|
||||
\DoxyCodeLine{\Hypertarget{____crc__algs_8c_source_l00090}00090\ \ \ \ \ \ \ \ \ \ \ 0xCC,0x0C,0x0D,0xCD,0x0F,0xCF,0xCE,0x0E,0x0A,0xCA,0xCB,0x0B,0xC9,0x09,0x08,0xC8,}
|
||||
\DoxyCodeLine{\Hypertarget{____crc__algs_8c_source_l00091}00091\ \ \ \ \ \ \ \ \ \ \ 0xD8,0x18,0x19,0xD9,0x1B,0xDB,0xDA,0x1A,0x1E,0xDE,0xDF,0x1F,0xDD,0x1D,0x1C,0xDC,}
|
||||
\DoxyCodeLine{\Hypertarget{____crc__algs_8c_source_l00092}00092\ \ \ \ \ \ \ \ \ \ \ 0x14,0xD4,0xD5,0x15,0xD7,0x17,0x16,0xD6,0xD2,0x12,0x13,0xD3,0x11,0xD1,0xD0,0x10,}
|
||||
\DoxyCodeLine{\Hypertarget{____crc__algs_8c_source_l00093}00093\ \ \ \ \ \ \ \ \ \ \ 0xF0,0x30,0x31,0xF1,0x33,0xF3,0xF2,0x32,0x36,0xF6,0xF7,0x37,0xF5,0x35,0x34,0xF4,}
|
||||
\DoxyCodeLine{\Hypertarget{____crc__algs_8c_source_l00094}00094\ \ \ \ \ \ \ \ \ \ \ 0x3C,0xFC,0xFD,0x3D,0xFF,0x3F,0x3E,0xFE,0xFA,0x3A,0x3B,0xFB,0x39,0xF9,0xF8,0x38,}
|
||||
\DoxyCodeLine{\Hypertarget{____crc__algs_8c_source_l00095}00095\ \ \ \ \ \ \ \ \ \ \ 0x28,0xE8,0xE9,0x29,0xEB,0x2B,0x2A,0xEA,0xEE,0x2E,0x2F,0xEF,0x2D,0xED,0xEC,0x2C,}
|
||||
\DoxyCodeLine{\Hypertarget{____crc__algs_8c_source_l00096}00096\ \ \ \ \ \ \ \ \ \ \ 0xE4,0x24,0x25,0xE5,0x27,0xE7,0xE6,0x26,0x22,0xE2,0xE3,0x23,0xE1,0x21,0x20,0xE0,}
|
||||
\DoxyCodeLine{\Hypertarget{____crc__algs_8c_source_l00097}00097\ \ \ \ \ \ \ \ \ \ \ 0xA0,0x60,0x61,0xA1,0x63,0xA3,0xA2,0x62,0x66,0xA6,0xA7,0x67,0xA5,0x65,0x64,0xA4,}
|
||||
\DoxyCodeLine{\Hypertarget{____crc__algs_8c_source_l00098}00098\ \ \ \ \ \ \ \ \ \ \ 0x6C,0xAC,0xAD,0x6D,0xAF,0x6F,0x6E,0xAE,0xAA,0x6A,0x6B,0xAB,0x69,0xA9,0xA8,0x68,}
|
||||
\DoxyCodeLine{\Hypertarget{____crc__algs_8c_source_l00099}00099\ \ \ \ \ \ \ \ \ \ \ 0x78,0xB8,0xB9,0x79,0xBB,0x7B,0x7A,0xBA,0xBE,0x7E,0x7F,0xBF,0x7D,0xBD,0xBC,0x7C,}
|
||||
\DoxyCodeLine{\Hypertarget{____crc__algs_8c_source_l00100}00100\ \ \ \ \ \ \ \ \ \ \ 0xB4,0x74,0x75,0xB5,0x77,0xB7,0xB6,0x76,0x72,0xB2,0xB3,0x73,0xB1,0x71,0x70,0xB0,}
|
||||
\DoxyCodeLine{\Hypertarget{____crc__algs_8c_source_l00101}00101\ \ \ \ \ \ \ \ \ \ \ 0x50,0x90,0x91,0x51,0x93,0x53,0x52,0x92,0x96,0x56,0x57,0x97,0x55,0x95,0x94,0x54,}
|
||||
\DoxyCodeLine{\Hypertarget{____crc__algs_8c_source_l00102}00102\ \ \ \ \ \ \ \ \ \ \ 0x9C,0x5C,0x5D,0x9D,0x5F,0x9F,0x9E,0x5E,0x5A,0x9A,0x9B,0x5B,0x99,0x59,0x58,0x98,}
|
||||
\DoxyCodeLine{\Hypertarget{____crc__algs_8c_source_l00103}00103\ \ \ \ \ \ \ \ \ \ \ 0x88,0x48,0x49,0x89,0x4B,0x8B,0x8A,0x4A,0x4E,0x8E,0x8F,0x4F,0x8D,0x4D,0x4C,0x8C,}
|
||||
\DoxyCodeLine{\Hypertarget{____crc__algs_8c_source_l00104}00104\ \ \ \ \ \ \ \ \ \ \ 0x44,0x84,0x85,0x45,0x87,0x47,0x46,0x86,0x82,0x42,0x43,0x83,0x41,0x81,0x80,0x40,}
|
||||
\DoxyCodeLine{\Hypertarget{____crc__algs_8c_source_l00105}00105\ \ \ \ \ \ \ \};}
|
||||
\DoxyCodeLine{\Hypertarget{____crc__algs_8c_source_l00106}00106\ \ \ uchCRCHi\ =\ 0xFF;\ \ }
|
||||
\DoxyCodeLine{\Hypertarget{____crc__algs_8c_source_l00107}00107\ \ \ uchCRCLo\ =\ 0xFF;\ \ \ }
|
||||
\DoxyCodeLine{\Hypertarget{____crc__algs_8c_source_l00108}00108\ \ \ \ \ \textcolor{comment}{/*\ CRC\ Generation\ Function\ */}}
|
||||
\DoxyCodeLine{\Hypertarget{____crc__algs_8c_source_l00109}00109\ \ \ \textcolor{keywordflow}{while}(\ data\_size-\/-\/)\ \textcolor{comment}{/*\ pass\ through\ message\ buffer\ */}}
|
||||
\DoxyCodeLine{\Hypertarget{____crc__algs_8c_source_l00110}00110\ \ \ \{}
|
||||
\DoxyCodeLine{\Hypertarget{____crc__algs_8c_source_l00111}00111\ \ \ \ \ uIndex\ =\ uchCRCHi\ \string^\ *data++;\ \textcolor{comment}{/*\ calculate\ the\ CRC\ */}}
|
||||
\DoxyCodeLine{\Hypertarget{____crc__algs_8c_source_l00112}00112\ \ \ \ \ uchCRCHi\ =\ uchCRCLo\ \string^\ auchCRCHi[uIndex];}
|
||||
\DoxyCodeLine{\Hypertarget{____crc__algs_8c_source_l00113}00113\ \ \ \ \ uchCRCLo\ =\ auchCRCLo[uIndex];}
|
||||
\DoxyCodeLine{\Hypertarget{____crc__algs_8c_source_l00114}00114\ \ \ \}}
|
||||
\DoxyCodeLine{\Hypertarget{____crc__algs_8c_source_l00115}00115\ \ \ \textcolor{keywordflow}{return}\ uchCRCHi\ |\ uchCRCLo<<8;}
|
||||
\DoxyCodeLine{\Hypertarget{____crc__algs_8c_source_l00116}00116\ \}\ }
|
||||
|
||||
\end{DoxyCode}
|
||||
15
AllLibs/Modbus/Doc/latex/____crc__algs_8h_source.tex
Normal file
15
AllLibs/Modbus/Doc/latex/____crc__algs_8h_source.tex
Normal file
@@ -0,0 +1,15 @@
|
||||
\doxysection{\+\_\+\+\_\+crc\+\_\+algs.\+h}
|
||||
\hypertarget{____crc__algs_8h_source}{}\label{____crc__algs_8h_source}\index{E:/.WORK/STM32/Diod\_Test/diode\_tester/Core/Modbus/Inc/\_\_crc\_algs.h@{E:/.WORK/STM32/Diod\_Test/diode\_tester/Core/Modbus/Inc/\_\_crc\_algs.h}}
|
||||
|
||||
\begin{DoxyCode}{0}
|
||||
\DoxyCodeLine{\Hypertarget{____crc__algs_8h_source_l00001}00001\ \textcolor{preprocessor}{\#include\ "{}\mbox{\hyperlink{modbus__config_8h}{modbus\_config.h}}"{}}}
|
||||
\DoxyCodeLine{\Hypertarget{____crc__algs_8h_source_l00002}00002\ }
|
||||
\DoxyCodeLine{\Hypertarget{____crc__algs_8h_source_l00003}00003\ \textcolor{comment}{//\ extern\ here\ to\ use\ in\ bootloader.c}}
|
||||
\DoxyCodeLine{\Hypertarget{____crc__algs_8h_source_l00004}00004\ \textcolor{keyword}{extern}\ uint32\_t\ CRC\_calc;}
|
||||
\DoxyCodeLine{\Hypertarget{____crc__algs_8h_source_l00005}00005\ \textcolor{keyword}{extern}\ uint32\_t\ CRC\_ref;}
|
||||
\DoxyCodeLine{\Hypertarget{____crc__algs_8h_source_l00006}00006\ }
|
||||
\DoxyCodeLine{\Hypertarget{____crc__algs_8h_source_l00007}00007\ }
|
||||
\DoxyCodeLine{\Hypertarget{____crc__algs_8h_source_l00008}00008\ uint16\_t\ crc16(uint8\_t\ *data,\ uint32\_t\ data\_size);}
|
||||
\DoxyCodeLine{\Hypertarget{____crc__algs_8h_source_l00009}00009\ uint32\_t\ crc32(uint8\_t\ *data,\ uint32\_t\ data\_size);}
|
||||
|
||||
\end{DoxyCode}
|
||||
24
AllLibs/Modbus/Doc/latex/____modbus__compat_8c.tex
Normal file
24
AllLibs/Modbus/Doc/latex/____modbus__compat_8c.tex
Normal file
@@ -0,0 +1,24 @@
|
||||
\doxysection{E\+:/.WORK/\+STM32/\+Diod\+\_\+\+Test/diode\+\_\+tester/\+Core/\+Modbus/\+Src/\+\_\+\+\_\+modbus\+\_\+compat.c File Reference}
|
||||
\hypertarget{____modbus__compat_8c}{}\label{____modbus__compat_8c}\index{E:/.WORK/STM32/Diod\_Test/diode\_tester/Core/Modbus/Src/\_\_modbus\_compat.c@{E:/.WORK/STM32/Diod\_Test/diode\_tester/Core/Modbus/Src/\_\_modbus\_compat.c}}
|
||||
|
||||
|
||||
Модуль для совместимости библиотеки MODBUS.
|
||||
|
||||
|
||||
{\ttfamily \#include "{}modbus.\+h"{}}\newline
|
||||
Include dependency graph for \+\_\+\+\_\+modbus\+\_\+compat.\+c\+:\nopagebreak
|
||||
\begin{figure}[H]
|
||||
\begin{center}
|
||||
\leavevmode
|
||||
\includegraphics[width=350pt]{____modbus__compat_8c__incl}
|
||||
\end{center}
|
||||
\end{figure}
|
||||
|
||||
|
||||
\doxysubsection{Detailed Description}
|
||||
Модуль для совместимости библиотеки MODBUS.
|
||||
|
||||
|
||||
|
||||
Definition in file \mbox{\hyperlink{____modbus__compat_8c_source}{\+\_\+\+\_\+modbus\+\_\+compat.\+c}}.
|
||||
|
||||
1
AllLibs/Modbus/Doc/latex/____modbus__compat_8c__incl.md5
Normal file
1
AllLibs/Modbus/Doc/latex/____modbus__compat_8c__incl.md5
Normal file
@@ -0,0 +1 @@
|
||||
cb67cd7f9499693ebe32a59bddc436f7
|
||||
BIN
AllLibs/Modbus/Doc/latex/____modbus__compat_8c__incl.pdf
Normal file
BIN
AllLibs/Modbus/Doc/latex/____modbus__compat_8c__incl.pdf
Normal file
Binary file not shown.
13
AllLibs/Modbus/Doc/latex/____modbus__compat_8c_source.tex
Normal file
13
AllLibs/Modbus/Doc/latex/____modbus__compat_8c_source.tex
Normal file
@@ -0,0 +1,13 @@
|
||||
\doxysection{\+\_\+\+\_\+modbus\+\_\+compat.\+c}
|
||||
\hypertarget{____modbus__compat_8c_source}{}\label{____modbus__compat_8c_source}\index{E:/.WORK/STM32/Diod\_Test/diode\_tester/Core/Modbus/Src/\_\_modbus\_compat.c@{E:/.WORK/STM32/Diod\_Test/diode\_tester/Core/Modbus/Src/\_\_modbus\_compat.c}}
|
||||
\mbox{\hyperlink{____modbus__compat_8c}{Go to the documentation of this file.}}
|
||||
\begin{DoxyCode}{0}
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__compat_8c_source_l00001}00001\ \textcolor{comment}{/**\ }}
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__compat_8c_source_l00002}00002\ \textcolor{comment}{*******************************************************************************}}
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__compat_8c_source_l00003}00003\ \textcolor{comment}{*\ @file\ \_\_modbus\_compat.c}}
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__compat_8c_source_l00004}00004\ \textcolor{comment}{*\ @brief\ Модуль\ для\ совместимости\ библиотеки\ MODBUS.}}
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__compat_8c_source_l00005}00005\ \textcolor{comment}{*******************************************************************************}}
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__compat_8c_source_l00006}00006\ \textcolor{comment}{******************************************************************************/}}
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__compat_8c_source_l00007}00007\ \textcolor{preprocessor}{\#include\ "{}\mbox{\hyperlink{modbus_8h}{modbus.h}}"{}}}
|
||||
|
||||
\end{DoxyCode}
|
||||
31
AllLibs/Modbus/Doc/latex/____modbus__compat_8h.tex
Normal file
31
AllLibs/Modbus/Doc/latex/____modbus__compat_8h.tex
Normal file
@@ -0,0 +1,31 @@
|
||||
\doxysection{E\+:/.WORK/\+STM32/\+Diod\+\_\+\+Test/diode\+\_\+tester/\+Core/\+Modbus/\+Inc/\+\_\+\+\_\+modbus\+\_\+compat.h File Reference}
|
||||
\hypertarget{____modbus__compat_8h}{}\label{____modbus__compat_8h}\index{E:/.WORK/STM32/Diod\_Test/diode\_tester/Core/Modbus/Inc/\_\_modbus\_compat.h@{E:/.WORK/STM32/Diod\_Test/diode\_tester/Core/Modbus/Inc/\_\_modbus\_compat.h}}
|
||||
|
||||
|
||||
Модуль для совместимости библиотеки MODBUS.
|
||||
|
||||
|
||||
{\ttfamily \#include "{}modbus\+\_\+core.\+h"{}}\newline
|
||||
Include dependency graph for \+\_\+\+\_\+modbus\+\_\+compat.\+h\+:\nopagebreak
|
||||
\begin{figure}[H]
|
||||
\begin{center}
|
||||
\leavevmode
|
||||
\includegraphics[width=298pt]{____modbus__compat_8h__incl}
|
||||
\end{center}
|
||||
\end{figure}
|
||||
This graph shows which files directly or indirectly include this file\+:\nopagebreak
|
||||
\begin{figure}[H]
|
||||
\begin{center}
|
||||
\leavevmode
|
||||
\includegraphics[width=350pt]{____modbus__compat_8h__dep__incl}
|
||||
\end{center}
|
||||
\end{figure}
|
||||
|
||||
|
||||
\doxysubsection{Detailed Description}
|
||||
Модуль для совместимости библиотеки MODBUS.
|
||||
|
||||
Файл содержит API старых функций, а также заглушки для отключенных модулей\+:
|
||||
|
||||
Definition in file \mbox{\hyperlink{____modbus__compat_8h_source}{\+\_\+\+\_\+modbus\+\_\+compat.\+h}}.
|
||||
|
||||
@@ -0,0 +1 @@
|
||||
708122c828e1b48aefbac0e76f738749
|
||||
BIN
AllLibs/Modbus/Doc/latex/____modbus__compat_8h__dep__incl.pdf
Normal file
BIN
AllLibs/Modbus/Doc/latex/____modbus__compat_8h__dep__incl.pdf
Normal file
Binary file not shown.
1
AllLibs/Modbus/Doc/latex/____modbus__compat_8h__incl.md5
Normal file
1
AllLibs/Modbus/Doc/latex/____modbus__compat_8h__incl.md5
Normal file
@@ -0,0 +1 @@
|
||||
274484ae78d0695f8d4a4ef17d474eaf
|
||||
BIN
AllLibs/Modbus/Doc/latex/____modbus__compat_8h__incl.pdf
Normal file
BIN
AllLibs/Modbus/Doc/latex/____modbus__compat_8h__incl.pdf
Normal file
Binary file not shown.
124
AllLibs/Modbus/Doc/latex/____modbus__compat_8h_source.tex
Normal file
124
AllLibs/Modbus/Doc/latex/____modbus__compat_8h_source.tex
Normal file
@@ -0,0 +1,124 @@
|
||||
\doxysection{\+\_\+\+\_\+modbus\+\_\+compat.\+h}
|
||||
\hypertarget{____modbus__compat_8h_source}{}\label{____modbus__compat_8h_source}\index{E:/.WORK/STM32/Diod\_Test/diode\_tester/Core/Modbus/Inc/\_\_modbus\_compat.h@{E:/.WORK/STM32/Diod\_Test/diode\_tester/Core/Modbus/Inc/\_\_modbus\_compat.h}}
|
||||
\mbox{\hyperlink{____modbus__compat_8h}{Go to the documentation of this file.}}
|
||||
\begin{DoxyCode}{0}
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__compat_8h_source_l00001}00001\ \textcolor{comment}{/**\ }}
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__compat_8h_source_l00002}00002\ \textcolor{comment}{*******************************************************************************}}
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__compat_8h_source_l00003}00003\ \textcolor{comment}{*\ @file\ \_\_modbus\_compat.h}}
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__compat_8h_source_l00004}00004\ \textcolor{comment}{*\ @brief\ Модуль\ для\ совместимости\ библиотеки\ MODBUS.}}
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__compat_8h_source_l00005}00005\ \textcolor{comment}{*******************************************************************************}}
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__compat_8h_source_l00006}00006\ \textcolor{comment}{*\ @details\ Файл\ содержит\ API\ старых\ функций,\ а\ также\ заглушки\ для\ отключенных\ модулей:}}
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__compat_8h_source_l00007}00007\ \textcolor{comment}{******************************************************************************/}}
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__compat_8h_source_l00008}00008\ \textcolor{preprocessor}{\#include\ "{}\mbox{\hyperlink{modbus__core_8h}{modbus\_core.h}}"{}}}
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__compat_8h_source_l00009}00009\ }
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__compat_8h_source_l00010}00010\ \textcolor{comment}{}}
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__compat_8h_source_l00011}00011\ \textcolor{comment}{/**\ @addtogroup\ MODBUS\_LEGACY\_API\ Legacy\ API\ }}
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__compat_8h_source_l00012}00012\ \textcolor{comment}{\ \ *\ @ingroup\ MODBUS\_FUNCTIONS}}
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__compat_8h_source_l00013}00013\ \textcolor{comment}{\ \ *\ @brief\ Старые\ API\ функций,\ сохранённые\ для\ обратной\ совместимости.}}
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__compat_8h_source_l00014}00014\ \textcolor{comment}{\ \ *\ @note\ \ \ Не\ используйте\ эти\ функции\ в\ новом\ коде.\ Они\ могут\ быть\ удалены\ в\ будущих\ версиях.}}
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__compat_8h_source_l00015}00015\ \textcolor{comment}{\ \ *\ \ \ \ \ \ \ \ \ Вместо\ них\ используйте\ функции\ из\ основных\ групп\ MODBUS\ API.}}
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__compat_8h_source_l00016}00016\ \textcolor{comment}{\ \ *\ @\{}}
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__compat_8h_source_l00017}00017\ \textcolor{comment}{\ \ */}}
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__compat_8h_source_l00018}00018\ }
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__compat_8h_source_l00019}00019\ }
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__compat_8h_source_l00020}00020\ \textcolor{comment}{}}
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__compat_8h_source_l00021}00021\ \textcolor{comment}{/**\ MODBUS\_LEGACY\_API}}
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__compat_8h_source_l00022}00022\ \textcolor{comment}{\ \ *\ @\}}}
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__compat_8h_source_l00023}00023\ \textcolor{comment}{\ \ */}}
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__compat_8h_source_l00024}00024\ \textcolor{comment}{}}
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__compat_8h_source_l00025}00025\ \textcolor{comment}{/**\ @cond\ Заглушки\ отключенных\ модулей\ */}}
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__compat_8h_source_l00026}00026\ }
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__compat_8h_source_l00027}00027\ \textcolor{preprocessor}{\#ifndef\ MODBUS\_ENABLE\_COILS}}
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__compat_8h_source_l00028}00028\ \textcolor{preprocessor}{\ \ \ \ \#define\ MB\_Coil\_Write\_Global(Addr,\ WriteVal)\ ET\_ILLEGAL\_FUNCTION}}
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__compat_8h_source_l00029}00029\ \textcolor{preprocessor}{\ \ \ \ \#define\ MB\_Coil\_Read\_Global(Addr,\ Exception)\ 0}}
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__compat_8h_source_l00030}00030\ \textcolor{preprocessor}{\ \ \ \ \#define\ MB\_Process\_Read\_Coils(modbus\_msg)\ 0}}
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__compat_8h_source_l00031}00031\ \textcolor{preprocessor}{\ \ \ \ \#define\ MB\_Process\_Write\_Single\_Coil(modbus\_msg)\ 0}}
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__compat_8h_source_l00032}00032\ \textcolor{preprocessor}{\ \ \ \ \#define\ MB\_Process\_Write\_Miltuple\_Coils(modbus\_msg)\ 0}}
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__compat_8h_source_l00033}00033\ \textcolor{preprocessor}{\#endif}}
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__compat_8h_source_l00034}00034\ }
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__compat_8h_source_l00035}00035\ \textcolor{preprocessor}{\#ifndef\ MODBUS\_ENABLE\_HOLDINGS}}
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__compat_8h_source_l00036}00036\ \textcolor{preprocessor}{\ \ \ \ \#define\ MB\_Holding\_Write\_Global(Addr,\ WriteVal)\ ET\_ILLEGAL\_FUNCTION}}
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__compat_8h_source_l00037}00037\ \textcolor{preprocessor}{\ \ \ \ \#define\ MB\_Holding\_Read\_Global(Addr,\ Exception)\ 0}}
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__compat_8h_source_l00038}00038\ \textcolor{preprocessor}{\ \ \ \ \#define\ MB\_Process\_Read\_Hold\_Regs(modbus\_msg)\ 0}}
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__compat_8h_source_l00039}00039\ \textcolor{preprocessor}{\ \ \ \ \#define\ MB\_Process\_Write\_Single\_Reg(modbus\_msg)\ 0}}
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__compat_8h_source_l00040}00040\ \textcolor{preprocessor}{\ \ \ \ \#define\ MB\_Process\_Write\_Miltuple\_Regs(modbus\_msg)\ 0}}
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__compat_8h_source_l00041}00041\ \textcolor{preprocessor}{\#endif}}
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__compat_8h_source_l00042}00042\ }
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__compat_8h_source_l00043}00043\ \textcolor{preprocessor}{\#ifndef\ MODBUS\_ENABLE\_INPUTS}}
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__compat_8h_source_l00044}00044\ \textcolor{preprocessor}{\ \ \ \ \#define\ MB\_Input\_Write\_Global(Addr,\ WriteVal)\ ET\_ILLEGAL\_FUNCTION}}
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__compat_8h_source_l00045}00045\ \textcolor{preprocessor}{\ \ \ \ \#define\ MB\_Input\_Read\_Global(Addr,\ Exception)\ 0}}
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__compat_8h_source_l00046}00046\ \textcolor{preprocessor}{\ \ \ \ \#define\ MB\_Process\_Read\_Input\_Regs(modbus\_msg)\ 0}}
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__compat_8h_source_l00047}00047\ \textcolor{preprocessor}{\#endif}}
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__compat_8h_source_l00048}00048\ }
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__compat_8h_source_l00049}00049\ \textcolor{preprocessor}{\#ifndef\ MODBUS\_ENABLE\_DEVICE\_IDENTIFICATIONS}}
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__compat_8h_source_l00050}00050\ \textcolor{preprocessor}{\ \ \ \ \#define\ MB\_WriteSingleObjectToMessage(mbdata,\ ind,\ obj)\ }}
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__compat_8h_source_l00051}00051\ \textcolor{preprocessor}{\ \ \ \ \#define\ MB\_WriteObjectsToMessage(modbus\_msg,\ maxidofobj)\ }}
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__compat_8h_source_l00052}00052\ \textcolor{preprocessor}{\ \ \ \ \#define\ MB\_Process\_Read\_Device\_Identifications(modbus\_msg)\ 0}}
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__compat_8h_source_l00053}00053\ \textcolor{preprocessor}{\ \ \ \ \#define\ MB\_DeviceInentificationInit()\ }}
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__compat_8h_source_l00054}00054\ \textcolor{preprocessor}{\#endif}}
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__compat_8h_source_l00055}00055\ }
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__compat_8h_source_l00056}00056\ }
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__compat_8h_source_l00057}00057\ \textcolor{preprocessor}{\#ifndef\ MODBUS\_ENABLE\_DIAGNOSTICS}}
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__compat_8h_source_l00058}00058\ \textcolor{preprocessor}{\ \ \ \ \#define\ MB\_DiagnosticsInit()\ }}
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__compat_8h_source_l00059}00059\ \textcolor{preprocessor}{\ \ \ \ \#define\ MB\_Diagnostics\_WriteBit(bit\_num,\ bit\_state)\ 0}}
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__compat_8h_source_l00060}00060\ \textcolor{preprocessor}{\ \ \ \ \#define\ MB\_Diagnostics\_GetBit(bit\_num)\ 0}}
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__compat_8h_source_l00061}00061\ \textcolor{preprocessor}{\ \ \ \ \#define\ MB\_Process\_Diagnostics(modbus\_msg)\ 0}}
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__compat_8h_source_l00062}00062\ \textcolor{preprocessor}{\ \ \ \ \#define\ MB\_Diagnostics\_BusMessageCnt()\ }}
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__compat_8h_source_l00063}00063\ \textcolor{preprocessor}{\ \ \ \ \#define\ MB\_Diagnostics\_CommunicationErrorCnt()\ }}
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__compat_8h_source_l00064}00064\ \textcolor{preprocessor}{\ \ \ \ \#define\ MB\_Diagnostics\_ExceptionErrorCnt()\ }}
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__compat_8h_source_l00065}00065\ \textcolor{preprocessor}{\ \ \ \ \#define\ MB\_Diagnostics\_CharacterOverrunCnt()\ }}
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__compat_8h_source_l00066}00066\ \textcolor{preprocessor}{\ \ \ \ \#define\ MB\_Diagnostics\_SlaveMessageCnt()\ }}
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__compat_8h_source_l00067}00067\ \textcolor{preprocessor}{\ \ \ \ \#define\ MB\_Diagnostics\_SlaveNoResponseCnt()\ }}
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__compat_8h_source_l00068}00068\ \textcolor{preprocessor}{\ \ \ \ \#define\ MB\_Diagnostics\_SlaveNAKCnt()\ }}
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__compat_8h_source_l00069}00069\ \textcolor{preprocessor}{\ \ \ \ \#define\ MB\_Diagnostics\_SlaveBusyCnt()\ }}
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__compat_8h_source_l00070}00070\ \textcolor{preprocessor}{\ \ \ \ \#define\ MB\_GetDeviceMode(void)\ MODBUS\_NORMAL\_MODE}}
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__compat_8h_source_l00071}00071\ \textcolor{preprocessor}{\#endif}}
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__compat_8h_source_l00072}00072\ }
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__compat_8h_source_l00073}00073\ }
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__compat_8h_source_l00074}00074\ }
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__compat_8h_source_l00075}00075\ \textcolor{preprocessor}{\#ifndef\ MODBUS\_ENABLE\_MASTER}}
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__compat_8h_source_l00076}00076\ \textcolor{preprocessor}{\ \ \ \ \#define\ MB\_RespGet\_RegisterValue(modbus\_msg,\ reg\_addr,\ reg\_value)\ 0}}
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__compat_8h_source_l00077}00077\ \textcolor{preprocessor}{\ \ \ \ \#define\ MB\_RespGet\_CoilState(modbus\_msg,\ coil\_addr,\ coil\_state)\ 0}}
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__compat_8h_source_l00078}00078\ \textcolor{preprocessor}{\ \ \ \ \#define\ MB\_RespGet\_NumberOfObjects(modbus\_msg)\ 0}}
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__compat_8h_source_l00079}00079\ \textcolor{preprocessor}{\ \ \ \ \#define\ MB\_RespGet\_ObjectById(modbus\_msg,\ obj\_id,\ obj\_data,\ obj\_length)\ 0}}
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__compat_8h_source_l00080}00080\ \textcolor{preprocessor}{\ \ \ \ \#define\ MB\_RespGet\_ObjectByIndex(modbus\_msg,\ index,\ obj\_id,\ obj\_data,\ obj\_length)\ 0}}
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__compat_8h_source_l00081}00081\ \textcolor{preprocessor}{\ \ \ \ \#define\ MB\_RespGet\_Diagnostic(modbus\_msg,\ data)\ 0}}
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__compat_8h_source_l00082}00082\ \textcolor{preprocessor}{\ \ \ \ \#define\ MB\_REQUEST\_READ\_COILS(slave\_addr,\ start\_addr,\ quantity)\ \{0\}}}
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__compat_8h_source_l00083}00083\ \textcolor{preprocessor}{\ \ \ \ \#define\ MB\_REQUEST\_READ\_DISCRETE\_INPUTS(slave\_addr,\ start\_addr,\ quantity)\ \{0\}}}
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__compat_8h_source_l00084}00084\ \textcolor{preprocessor}{\ \ \ \ \#define\ MB\_REQUEST\_READ\_HOLDING\_REGS(slave\_addr,\ start\_addr,\ quantity)\ \{0\}}}
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__compat_8h_source_l00085}00085\ \textcolor{preprocessor}{\ \ \ \ \#define\ MB\_REQUEST\_READ\_INPUT\_REGS(slave\_addr,\ start\_addr,\ quantity)\ \{0\}}}
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__compat_8h_source_l00086}00086\ \textcolor{preprocessor}{\ \ \ \ \#define\ MB\_REQUEST\_WRITE\_SINGLE\_COIL(slave\_addr,\ coil\_addr,\ value)\ \{0\}}}
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__compat_8h_source_l00087}00087\ \textcolor{preprocessor}{\ \ \ \ \#define\ MB\_REQUEST\_WRITE\_SINGLE\_REG(slave\_addr,\ reg\_addr,\ value)\ \{0\}}}
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__compat_8h_source_l00088}00088\ \textcolor{preprocessor}{\ \ \ \ \#define\ MB\_REQUEST\_WRITE\_MULTIPLE\_COILS(slave\_addr,\ start\_addr,\ quantity,\ coils\_data)\ \{0\}}}
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__compat_8h_source_l00089}00089\ \textcolor{preprocessor}{\ \ \ \ \#define\ MB\_REQUEST\_WRITE\_MULTIPLE\_REGS(slave\_addr,\ start\_addr,\ quantity,\ regs\_data)\ \{0\}}}
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__compat_8h_source_l00090}00090\ \textcolor{preprocessor}{\ \ \ \ \#define\ MB\_REQUEST\_DIAGNOSTIC\_QUERY(slave\_addr,\ sub\_function,\ data)\ \{0\}}}
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__compat_8h_source_l00091}00091\ \textcolor{preprocessor}{\ \ \ \ \#define\ MB\_REQUEST\_RETURN\_QUERY\_DATA(slave\_addr)\ \{0\}}}
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__compat_8h_source_l00092}00092\ \textcolor{preprocessor}{\ \ \ \ \#define\ MB\_REQUEST\_RESTART\_COMMUNICATIONS(slave\_addr,\ data)\ \{0\}}}
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__compat_8h_source_l00093}00093\ \textcolor{preprocessor}{\ \ \ \ \#define\ MB\_REQUEST\_RETURN\_DIAGNOSTIC\_REGISTER(slave\_addr)\ \{0\}}}
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__compat_8h_source_l00094}00094\ \textcolor{preprocessor}{\ \ \ \ \#define\ MB\_REQUEST\_FORCE\_LISTEN\_ONLY\_MODE(slave\_addr)\ \{0\}}}
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__compat_8h_source_l00095}00095\ \textcolor{preprocessor}{\ \ \ \ \#define\ MB\_REQUEST\_CLEAR\_COUNTERS\_AND\_DIAGNOSTIC\_REGISTER(slave\_addr)\ \{0\}}}
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__compat_8h_source_l00096}00096\ \textcolor{preprocessor}{\ \ \ \ \#define\ MB\_REQUEST\_RETURN\_BUS\_MESSAGE\_COUNT(slave\_addr)\ \{0\}}}
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__compat_8h_source_l00097}00097\ \textcolor{preprocessor}{\ \ \ \ \#define\ MB\_REQUEST\_RETURN\_BUS\_COMMUNICATION\_ERROR\_COUNT(slave\_addr)\ \{0\}}}
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__compat_8h_source_l00098}00098\ \textcolor{preprocessor}{\ \ \ \ \#define\ MB\_REQUEST\_RETURN\_SLAVE\_EXCEPTION\_ERROR\_COUNT(slave\_addr)\ \{0\}}}
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__compat_8h_source_l00099}00099\ \textcolor{preprocessor}{\ \ \ \ \#define\ MB\_REQUEST\_RETURN\_SLAVE\_MESSAGE\_COUNT(slave\_addr)\ \{0\}}}
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__compat_8h_source_l00100}00100\ \textcolor{preprocessor}{\ \ \ \ \#define\ MB\_REQUEST\_RETURN\_SLAVE\_NO\_RESPONSE\_COUNT(slave\_addr)\ \{0\}}}
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__compat_8h_source_l00101}00101\ \textcolor{preprocessor}{\ \ \ \ \#define\ MB\_REQUEST\_RETURN\_SLAVE\_NAK\_COUNT(slave\_addr)\ \{0\}}}
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__compat_8h_source_l00102}00102\ \textcolor{preprocessor}{\ \ \ \ \#define\ MB\_REQUEST\_RETURN\_SLAVE\_BUSY\_COUNT(slave\_addr)\ \{0\}}}
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__compat_8h_source_l00103}00103\ \textcolor{preprocessor}{\ \ \ \ \#define\ MB\_REQUEST\_RETURN\_BUS\_CHARACTER\_OVERRUN\_COUNT(slave\_addr)\ \{0\}}}
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__compat_8h_source_l00104}00104\ \textcolor{preprocessor}{\ \ \ \ \#define\ MB\_REQUEST\_READ\_DEVICE\_ID\_BASIC(slave\_addr)\ \{0\}}}
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__compat_8h_source_l00105}00105\ \textcolor{preprocessor}{\ \ \ \ \#define\ MB\_REQUEST\_READ\_DEVICE\_ID\_REGULAR(slave\_addr)\ \{0\}}}
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__compat_8h_source_l00106}00106\ \textcolor{preprocessor}{\ \ \ \ \#define\ MB\_REQUEST\_READ\_DEVICE\_ID\_EXTENDED(slave\_addr)\ \{0\}}}
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__compat_8h_source_l00107}00107\ \textcolor{preprocessor}{\ \ \ \ \#define\ MB\_REQUEST\_READ\_DEVICE\_ID\_SPECIFIC(slave\_addr,\ object\_id)\ \{0\}}}
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__compat_8h_source_l00108}00108\ \textcolor{preprocessor}{\ \ \ \ \#define\ MB\_Master\_Collect\_Message(hmodbus,\ modbus\_msg,\ modbus\_uart\_buff)\ RS\_ERR}}
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__compat_8h_source_l00109}00109\ \textcolor{preprocessor}{\ \ \ \ \#define\ MB\_Master\_Parse\_Message(hmodbus,\ modbus\_msg,\ modbus\_uart\_buff)\ RS\_ERR}}
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__compat_8h_source_l00110}00110\ \textcolor{preprocessor}{\#endif}}
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__compat_8h_source_l00111}00111\ }
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__compat_8h_source_l00112}00112\ \textcolor{preprocessor}{\#ifndef\ \ MODBUS\_ENABLE\_SLAVE}}
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__compat_8h_source_l00113}00113\ \textcolor{preprocessor}{\ \ \ \ \#define\ MB\_Slave\_Response(hmodbus,\ modbus\_msg)\ RS\_ERR}}
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__compat_8h_source_l00114}00114\ \textcolor{preprocessor}{\ \ \ \ \#define\ MB\_Slave\_Collect\_Message(hmodbus,\ modbus\_msg,\ modbus\_uart\_buff)\ RS\_ERR}}
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__compat_8h_source_l00115}00115\ \textcolor{preprocessor}{\ \ \ \ \#define\ MB\_Slave\_Parse\_Message(hmodbus,\ modbus\_msg,\ modbus\_uart\_buff)\ RS\_ERR}}
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__compat_8h_source_l00116}00116\ \textcolor{preprocessor}{\#endif\ }}
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__compat_8h_source_l00117}00117\ \textcolor{comment}{}}
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__compat_8h_source_l00118}00118\ \textcolor{comment}{/**\ @endcond\ */}}
|
||||
|
||||
\end{DoxyCode}
|
||||
76
AllLibs/Modbus/Doc/latex/____modbus__config_8h_source.tex
Normal file
76
AllLibs/Modbus/Doc/latex/____modbus__config_8h_source.tex
Normal file
@@ -0,0 +1,76 @@
|
||||
\doxysection{E\+:/.WORK/\+STM32/\+Diod\+\_\+\+Test/diode\+\_\+tester/\+Core/\+Modbus/\+\_\+\+\_\+modbus\+\_\+config.h}
|
||||
\hypertarget{____modbus__config_8h_source}{}\label{____modbus__config_8h_source}
|
||||
\begin{DoxyCode}{0}
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__config_8h_source_l00001}00001\ \textcolor{comment}{/**}}
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__config_8h_source_l00002}00002\ \textcolor{comment}{******************************************************************************}}
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__config_8h_source_l00003}00003\ \textcolor{comment}{*\ @file\ modbus\_config.h}}
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__config_8h_source_l00004}00004\ \textcolor{comment}{*\ @brief\ Конфигурационные\ параметры\ Modbus\ устройства}}
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__config_8h_source_l00005}00005\ \textcolor{comment}{******************************************************************************}}
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__config_8h_source_l00006}00006\ \textcolor{comment}{@addtogroup\ MODBUS\_CONFIGS\ Modbus\ configs}}
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__config_8h_source_l00007}00007\ \textcolor{comment}{@ingroup\ \ \ \ MODBUS}}
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__config_8h_source_l00008}00008\ \textcolor{comment}{@brief\ Конфигурация\ библиотеки}}
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__config_8h_source_l00009}00009\ \textcolor{comment}{@\{}}
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__config_8h_source_l00010}00010\ \textcolor{comment}{******************************************************************************}}
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__config_8h_source_l00011}00011\ \textcolor{comment}{*\ @details}}
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__config_8h_source_l00012}00012\ \textcolor{comment}{Файл\ содержит\ настройки\ для\ работы\ Modbus:}}
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__config_8h_source_l00013}00013\ \textcolor{comment}{-\/\ Подключение\ библиотек\ контроллера}}
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__config_8h_source_l00014}00014\ \textcolor{comment}{-\/\ ID\ устройства\ и\ таймауты}}
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__config_8h_source_l00015}00015\ \textcolor{comment}{-\/\ Строковые\ идентификаторы\ (Vendor,\ Product,\ Revision)}}
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__config_8h_source_l00016}00016\ \textcolor{comment}{-\/\ Настройки\ периферии\ (UART,\ TIMER)}}
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__config_8h_source_l00017}00017\ \textcolor{comment}{-\/\ Подключение\ модулей\ Modbus}}
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__config_8h_source_l00018}00018\ \textcolor{comment}{-\/\ Опциональные\ функции\ (переключение\ команд\ 0x03/0x04)}}
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__config_8h_source_l00019}00019\ \textcolor{comment}{******************************************************************************/}}
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__config_8h_source_l00020}00020\ \textcolor{preprocessor}{\#ifndef\ \_MODBUS\_CONFIG\_H\_}}
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__config_8h_source_l00021}00021\ \textcolor{preprocessor}{\#define\ \_MODBUS\_CONFIG\_H\_}}
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__config_8h_source_l00022}00022\ \textcolor{preprocessor}{\#include\ "{}stm32f1xx\_hal.h"{}}}
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__config_8h_source_l00023}00023\ }
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__config_8h_source_l00024}00024\ \textcolor{comment}{//\ Общие\ параметры}}
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__config_8h_source_l00025}\mbox{\hyperlink{group___m_o_d_b_u_s___c_o_n_f_i_g_s_gab9b18e108b98b225a52c5ccca58e7f2b}{00025}}\ \textcolor{preprocessor}{\#define\ MODBUS\_DEVICE\_ID\ \ \ \ \ \ \ \ \ \ \ \ \ \ 1\ \ \ \ \ \ \ }\textcolor{comment}{///<\ Адрес\ устройства\ в\ сети\ Modbus}}
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__config_8h_source_l00026}\mbox{\hyperlink{group___m_o_d_b_u_s___c_o_n_f_i_g_s_ga66f7c59a25c8cca6d5b0991895c26b69}{00026}}\ \textcolor{preprocessor}{\#define\ MODBUS\_TIMEOUT\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ 5000\ \ \ \ }\textcolor{comment}{///<\ Таймаут\ в\ тиках\ таймера}}
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__config_8h_source_l00027}00027\ }
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__config_8h_source_l00028}00028\ \textcolor{comment}{//\ Строковые\ идентификаторы\ устройства}}
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__config_8h_source_l00029}00029\ \textcolor{preprocessor}{\#define\ MODBUS\_VENDOR\_NAME\ \ \ \ \ \ \ \ \ \ \ \ "{}NIO-\/12"{}}}
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__config_8h_source_l00030}00030\ \textcolor{preprocessor}{\#define\ MODBUS\_PRODUCT\_CODE\ \ \ \ \ \ \ \ \ \ \ "{}"{}}}
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__config_8h_source_l00031}00031\ \textcolor{preprocessor}{\#define\ MODBUS\_REVISION\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ "{}"{}}}
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__config_8h_source_l00032}00032\ \textcolor{preprocessor}{\#define\ MODBUS\_VENDOR\_URL\ \ \ \ \ \ \ \ \ \ \ \ \ "{}"{}}}
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__config_8h_source_l00033}00033\ \textcolor{preprocessor}{\#define\ MODBUS\_PRODUCT\_NAME\ \ \ \ \ \ \ \ \ \ \ "{}"{}}}
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__config_8h_source_l00034}00034\ \textcolor{preprocessor}{\#define\ MODBUS\_MODEL\_NAME\ \ \ \ \ \ \ \ \ \ \ \ \ "{}"{}}}
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__config_8h_source_l00035}00035\ \textcolor{preprocessor}{\#define\ MODBUS\_USER\_APPLICATION\_NAME\ \ "{}"{}}}
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__config_8h_source_l00036}00036\ }
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__config_8h_source_l00037}\mbox{\hyperlink{group___m_o_d_b_u_s___c_o_n_f_i_g_s_ga5c7e9c2180ceac1208f4b791d7b70a0a}{00037}}\ \textcolor{preprocessor}{\#define\ MODBUS\_NUMB\_OF\_USEROBJECTS\ \ \ \ 0\ \ \ }\textcolor{comment}{///<\ Количество\ пользовательских\ объектов}}
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__config_8h_source_l00038}\mbox{\hyperlink{group___m_o_d_b_u_s___c_o_n_f_i_g_s_gac3b162e9af2731742eb3ca8317b37397}{00038}}\ \textcolor{preprocessor}{\#define\ MODBUS\_USEROBJECT\_0\_NAME\ \ \ \ \ \ "{}"{}\ \ }\textcolor{comment}{///<\ Строка\ пользовательского\ идентификатора\ 0.\ По\ аналогии\ можно\ определить\ строки\ до\ <=128\ USEROBJECT}}
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__config_8h_source_l00039}00039\ }
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__config_8h_source_l00040}00040\ \textcolor{comment}{//\ Периферия\ (опционально)}}
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__config_8h_source_l00041}\mbox{\hyperlink{group___m_o_d_b_u_s___c_o_n_f_i_g_s_ga370986118b8227cb6cb33c6b748fbbcb}{00041}}\ \textcolor{preprocessor}{\#define\ mb\_huart\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ huart1\ \ \ \ \ \ \ \ }\textcolor{comment}{///<\ Удобный\ дефайн\ для\ модбасовского\ uart}}
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__config_8h_source_l00042}\mbox{\hyperlink{group___m_o_d_b_u_s___c_o_n_f_i_g_s_ga6723a1608946a4f86cd7c9c7e614d04e}{00042}}\ \textcolor{preprocessor}{\#define\ mb\_htim\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ htim3\ \ \ \ \ \ \ \ \ }\textcolor{comment}{///<\ Удобный\ дефайн\ для\ модбасовского\ таймера}}
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__config_8h_source_l00043}00043\ \textcolor{comment}{//\#define\ RS\_EnableReceive()\ \ \ \ \ \ \ \ \ \ ///<\ Функция\ изменения\ направления\ передачи\ на\ ПРИЕМ\ для\ RS-\/485}}
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__config_8h_source_l00044}00044\ \textcolor{comment}{//\#define\ RS\_EnableTransmit()\ \ \ \ \ \ \ \ \ ///<\ Функция\ изменения\ направления\ передачи\ на\ ПЕРЕДАЧУ\ для\ RS-\/485}}
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__config_8h_source_l00045}00045\ }
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__config_8h_source_l00046}00046\ }
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__config_8h_source_l00047}00047\ \textcolor{comment}{//\ Модули\ modbus}}
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__config_8h_source_l00048}\mbox{\hyperlink{group___m_o_d_b_u_s___c_o_n_f_i_g_s_gae11f9ed7ca5e75d332a1187d2a213f9c}{00048}}\ \textcolor{preprocessor}{\#define\ MODBUS\_ENABLE\_SLAVE\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ }\textcolor{comment}{///<\ Включить\ обработку\ СЛЕЙВ\ режима}}
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__config_8h_source_l00049}\mbox{\hyperlink{group___m_o_d_b_u_s___c_o_n_f_i_g_s_gae4fc30421556e1ee530f13a4b3924f5a}{00049}}\ \textcolor{preprocessor}{\#define\ MODBUS\_ENABLE\_MASTER\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ }\textcolor{comment}{///<\ Включить\ обработку\ МАСТЕР\ режима}}
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__config_8h_source_l00050}00050\ }
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__config_8h_source_l00051}\mbox{\hyperlink{group___m_o_d_b_u_s___c_o_n_f_i_g_s_ga29ce22b8b7f0622bc23171c6ae2dc8d1}{00051}}\ \textcolor{preprocessor}{\#define\ MODBUS\_ENABLE\_COILS\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ }\textcolor{comment}{///<\ Включить\ обработку\ коилов}}
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__config_8h_source_l00052}\mbox{\hyperlink{group___m_o_d_b_u_s___c_o_n_f_i_g_s_gaf6a8dfc090b3915d668d78ee19585344}{00052}}\ \textcolor{preprocessor}{\#define\ MODBUS\_ENABLE\_HOLDINGS\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ }\textcolor{comment}{///<\ Включить\ обработку\ регистров\ хранения}}
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__config_8h_source_l00053}\mbox{\hyperlink{group___m_o_d_b_u_s___c_o_n_f_i_g_s_ga23d7073c81bedb80a302140afd0d79c0}{00053}}\ \textcolor{preprocessor}{\#define\ MODBUS\_ENABLE\_INPUTS\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ }\textcolor{comment}{///<\ Включить\ обработку\ входных\ регистров}}
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__config_8h_source_l00054}\mbox{\hyperlink{group___m_o_d_b_u_s___c_o_n_f_i_g_s_ga5bf9f305bd863b10f1b350c5004ddda7}{00054}}\ \textcolor{preprocessor}{\#define\ MODBUS\_ENABLE\_DEVICE\_IDENTIFICATIONS\ \ }\textcolor{comment}{///<\ Включить\ обработку\ идентификаторы\ устройства}}
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__config_8h_source_l00055}\mbox{\hyperlink{group___m_o_d_b_u_s___c_o_n_f_i_g_s_gae68222efbcf3199706bfaef46af97bf8}{00055}}\ \textcolor{preprocessor}{\#define\ MODBUS\_ENABLE\_DIAGNOSTICS\ \ \ \ \ \ \ \ \ \ \ \ \ }\textcolor{comment}{///<\ Включить\ обработку\ диагностики\ модбас}}
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__config_8h_source_l00056}00056\ }
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__config_8h_source_l00057}00057\ \textcolor{comment}{//\#define\ MODBUS\_PROTOCOL\_TCP\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ ///<\ Включить\ TCP-\/протокол,\ иначе\ -\/\ RTU}}
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__config_8h_source_l00058}00058\ \textcolor{comment}{}}
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__config_8h_source_l00059}00059\ \textcolor{comment}{/**}}
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__config_8h_source_l00060}00060\ \textcolor{comment}{\ \ *\ @brief\ \ \ \ Поменять\ комманды\ 0x03\ и\ 0x04\ местами\ (для\ LabView\ терминалки\ от\ двигателей)}}
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__config_8h_source_l00061}00061\ \textcolor{comment}{\ \ *\ @details\ \ Терминалка\ от\ двигателей\ использует\ для\ чтения\ регистров\ комманду\ R\_HOLD\_REGS\ вместо\ R\_IN\_REGS}}
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__config_8h_source_l00062}00062\ \textcolor{comment}{\ \ *\ \ \ \ \ \ \ \ \ \ \ Поэтому\ чтобы\ считывать\ Input\ Regs\ -\/\ надо\ поменять\ их\ местами.}}
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__config_8h_source_l00063}00063\ \textcolor{comment}{\ \ */}}
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__config_8h_source_l00064}00064\ \textcolor{comment}{//\#define\ MODBUS\_SWITCH\_COMMAND\_R\_IN\_REGS\_AND\_R\_HOLD\_REGS}}
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__config_8h_source_l00065}00065\ \textcolor{comment}{}}
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__config_8h_source_l00066}00066\ \textcolor{comment}{/////////////////////////////////////////////////////////////////////}}
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__config_8h_source_l00067}00067\ \textcolor{comment}{/////////////////////////-\/-\/-\/CALC\ DEFINES-\/-\/-\///////////////////////////}}
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__config_8h_source_l00068}00068\ }
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__config_8h_source_l00069}00069\ }
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__config_8h_source_l00070}00070\ \ \ }
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__config_8h_source_l00071}00071\ \textcolor{preprocessor}{\#endif\ }\textcolor{comment}{//\_MODBUS\_CONFIG\_H\_}}
|
||||
|
||||
\end{DoxyCode}
|
||||
146
AllLibs/Modbus/Doc/latex/____modbus__data_8c_source.tex
Normal file
146
AllLibs/Modbus/Doc/latex/____modbus__data_8c_source.tex
Normal file
File diff suppressed because one or more lines are too long
164
AllLibs/Modbus/Doc/latex/____modbus__data_8h_source.tex
Normal file
164
AllLibs/Modbus/Doc/latex/____modbus__data_8h_source.tex
Normal file
@@ -0,0 +1,164 @@
|
||||
\doxysection{E\+:/.WORK/\+STM32/\+Diod\+\_\+\+Test/diode\+\_\+tester/\+Core/\+Modbus/\+\_\+\+\_\+modbus\+\_\+data.h}
|
||||
\hypertarget{____modbus__data_8h_source}{}\label{____modbus__data_8h_source}
|
||||
\begin{DoxyCode}{0}
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__data_8h_source_l00001}00001\ \textcolor{comment}{/**}}
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__data_8h_source_l00002}00002\ \textcolor{comment}{******************************************************************************}}
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__data_8h_source_l00003}00003\ \textcolor{comment}{*\ @file\ modbus\_data.h}}
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__data_8h_source_l00004}00004\ \textcolor{comment}{*\ @brief\ Определения\ структур\ данных\ Modbus\ устройства}}
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__data_8h_source_l00005}00005\ \textcolor{comment}{******************************************************************************}}
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__data_8h_source_l00006}00006\ \textcolor{comment}{@defgroup\ MODBUS\_DATA\ Modbus\ Registers\ Map}}
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__data_8h_source_l00007}00007\ \textcolor{comment}{@ingroup\ MODBUS}}
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__data_8h_source_l00008}00008\ \textcolor{comment}{@brief\ Определение\ карты\ регистров\ и\ коилов}}
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__data_8h_source_l00009}00009\ \textcolor{comment}{******************************************************************************}}
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__data_8h_source_l00010}00010\ \textcolor{comment}{*\ @details}}
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__data_8h_source_l00011}00011\ \textcolor{comment}{Файл\ содержит\ объявления\ структур\ данных,\ доступных\ через\ Modbus:}}
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__data_8h_source_l00012}00012\ \textcolor{comment}{-\/\ Holding\ Registers\ (R/W)\ -\/\ регистры\ хранения}}
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__data_8h_source_l00013}00013\ \textcolor{comment}{-\/\ Input\ Registers\ (R/O)\ -\/\ входные\ регистры\ \ }}
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__data_8h_source_l00014}00014\ \textcolor{comment}{-\/\ Coils\ (R/W)\ -\/\ дискретные\ выходы}}
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__data_8h_source_l00015}00015\ \textcolor{comment}{}}
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__data_8h_source_l00016}00016\ \textcolor{comment}{@section\ datinit\ Базовая\ настройка\ под\ устройство:}}
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__data_8h_source_l00017}00017\ \textcolor{comment}{1.\ Настроить\ диапазоны\ адресов}}
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__data_8h_source_l00018}00018\ \textcolor{comment}{\ \ -\/\ @ref\ R\_INPUT\_ADDR\ и\ @ref\ R\_INPUT\_QNT\ для\ входных\ регистров}}
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__data_8h_source_l00019}00019\ \textcolor{comment}{\ \ -\/\ @ref\ R\_HOLDING\_ADDR\ и\ @ref\ R\_HOLDING\_QNT\ для\ регистров\ хр\ анения}}
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__data_8h_source_l00020}00020\ \textcolor{comment}{\ \ -\/\ @ref\ C\_COILS\_ADDR\ и\ @ref\ C\_COILS\_ADDR\ для\ коилов}}
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__data_8h_source_l00021}00021\ \textcolor{comment}{3.\ Настроить\ структуры\ данных:}}
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__data_8h_source_l00022}00022\ \textcolor{comment}{\ \ -\/\ @ref\ MB\_DataInRegsTypeDef}}
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__data_8h_source_l00023}00023\ \textcolor{comment}{\ \ -\/\ @ref\ MB\_DataHoldRegsTypeDef}}
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__data_8h_source_l00024}00024\ \textcolor{comment}{\ \ -\/\ @ref\ MB\_DataCoilsTypeDef}}
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__data_8h_source_l00025}00025\ \textcolor{comment}{\ \ \ \ }}
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__data_8h_source_l00026}00026\ \textcolor{comment}{}}
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__data_8h_source_l00027}00027\ \textcolor{comment}{@section\ datexpert\ Расширенная\ настройка\ под\ устройство:}}
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__data_8h_source_l00028}00028\ \textcolor{comment}{1.\ Добавить\ новый\ массив\ с\ нужными\ данными.}}
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__data_8h_source_l00029}00029\ \textcolor{comment}{2.\ Добавить\ дефайны\ для\ определения\ его\ начального\ адреса\ и\ количества\ элементов}}
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__data_8h_source_l00030}00030\ \textcolor{comment}{3.\ Добавить\ проверку\ адресов\ в\ MB\_DefineRegistersAddress/MB\_DefineCoilsAddress.\ }}
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__data_8h_source_l00031}00031\ \textcolor{comment}{}}
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__data_8h_source_l00032}00032\ \textcolor{comment}{\ \ \ Пример:}}
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__data_8h_source_l00033}00033\ \textcolor{comment}{\ \ \ @code}}
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__data_8h_source_l00034}00034\ \textcolor{comment}{\ \ \ \ \#define\ \ \ R\_USER\_ADDR\ \ \ \ \ \ \ \ 555}}
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__data_8h_source_l00035}00035\ \textcolor{comment}{\ \ \ \ \#define\ \ \ R\_USER\_QNT\ \ \ \ \ \ \ \ \ 16}}
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__data_8h_source_l00036}00036\ \textcolor{comment}{\ \ \ \ uint16\_t\ \ user\_regs[16];}}
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__data_8h_source_l00037}00037\ \textcolor{comment}{}}
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__data_8h_source_l00038}00038\ \textcolor{comment}{\ \ \ \ //...}}
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__data_8h_source_l00039}00039\ \textcolor{comment}{\ \ \ \ else\ if(MB\_Check\_Address\_For\_Arr(Addr,\ Qnt,\ R\_USER\_ADDR,\ R\_USER\_QNT)\ ==\ ET\_NO\_ERRORS)}}
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__data_8h_source_l00040}00040\ \textcolor{comment}{\ \ \ \ \{}}
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__data_8h_source_l00041}00041\ \textcolor{comment}{\ \ \ \ \ \ *pRegs\ =\ MB\_Set\_Register\_Ptr(\&user\_regs,\ Addr-\/R\_USER\_ADDR);\ //\ ВАЖНО!}}
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__data_8h_source_l00042}00042\ \textcolor{comment}{\ \ \ \ \ \ //\ -\/R\_USER\_ADDR\ нужен\ чтобы\ взять\ адрес\ относительно\ начала\ массива}}
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__data_8h_source_l00043}00043\ \textcolor{comment}{\ \ \ \ \}}}
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__data_8h_source_l00044}00044\ \textcolor{comment}{\ \ \ \ else\ \ }}
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__data_8h_source_l00045}00045\ \textcolor{comment}{\ \ \ \ \{}}
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__data_8h_source_l00046}00046\ \textcolor{comment}{\ \ \ \ \ \ return\ ET\_ILLEGAL\_DATA\_ADDRESS;}}
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__data_8h_source_l00047}00047\ \textcolor{comment}{\ \ \ \ \}}}
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__data_8h_source_l00048}00048\ \textcolor{comment}{\ \ \ @endcode}}
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__data_8h_source_l00049}00049\ \textcolor{comment}{******************************************************************************/}}
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__data_8h_source_l00050}00050\ }
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__data_8h_source_l00051}00051\ \textcolor{preprocessor}{\#ifndef\ \_MODBUS\_DATA\_H\_}}
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__data_8h_source_l00052}00052\ \textcolor{preprocessor}{\#define\ \_MODBUS\_DATA\_H\_}}
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__data_8h_source_l00053}00053\ \ \ }
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__data_8h_source_l00054}00054\ \textcolor{preprocessor}{\#include\ "{}stdint.h"{}}}
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__data_8h_source_l00055}00055\ }
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__data_8h_source_l00056}00056\ }
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__data_8h_source_l00057}00057\ }
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__data_8h_source_l00058}00058\ \textcolor{comment}{//-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/SIZES\ OF\ DATA-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/}}
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__data_8h_source_l00059}00059\ }
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__data_8h_source_l00060}00060\ \textcolor{comment}{//\ DEFINES\ FOR\ INPUT\ REGISTERS\ ARRAYS}}
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__data_8h_source_l00061}00061\ \textcolor{preprocessor}{\#define\ \ \ R\_INPUT\_ADDR\ \ \ \ \ \ \ \ 0\ \ \ }\textcolor{comment}{///<\ Начальный\ адрес\ входных\ регистров}}
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__data_8h_source_l00062}00062\ \textcolor{preprocessor}{\#define\ \ \ R\_INPUT\_QNT\ \ \ \ \ \ \ \ \ 16\ \ }\textcolor{comment}{///<\ Количество\ входных\ регистров}}
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__data_8h_source_l00063}00063\ }
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__data_8h_source_l00064}00064\ \textcolor{comment}{//\ DEFINES\ FOR\ HOLDING\ REGISTERS\ ARRAYS}}
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__data_8h_source_l00065}00065\ \textcolor{preprocessor}{\#define\ \ \ R\_HOLDING\_ADDR\ \ \ \ \ \ 0\ \ \ }\textcolor{comment}{///<\ Начальный\ адрес\ регистров\ хранения}}
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__data_8h_source_l00066}00066\ \textcolor{preprocessor}{\#define\ \ \ R\_HOLDING\_QNT\ \ \ \ \ \ \ 16\ \ }\textcolor{comment}{///<\ Количество\ регистров\ хранения}}
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__data_8h_source_l00067}00067\ }
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__data_8h_source_l00068}00068\ \textcolor{comment}{//\ DEFINES\ FOR\ COIL\ ARRAYS}}
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__data_8h_source_l00069}00069\ \textcolor{preprocessor}{\#define\ \ \ C\_COILS\_ADDR\ \ \ \ \ \ \ \ 0\ \ \ }\textcolor{comment}{///<\ Начальный\ адрес\ коилов}}
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__data_8h_source_l00070}00070\ \textcolor{preprocessor}{\#define\ \ \ C\_COILS\_QNT\ \ \ \ \ \ \ \ \ 16\ \ }\textcolor{comment}{///<\ Количество\ регистров\ коилов}}
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__data_8h_source_l00071}00071\ }
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__data_8h_source_l00072}00072\ \textcolor{comment}{//-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/DEFINES\ FOR\ REGISTERS-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/}}
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__data_8h_source_l00073}00073\ \textcolor{comment}{//\ DEFINES\ FOR\ ARRAYS}\textcolor{comment}{}}
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__data_8h_source_l00074}00074\ \textcolor{comment}{/**\ }}
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__data_8h_source_l00075}00075\ \textcolor{comment}{\ \ *\ @addtogroup\ MODBUS\_DATA\_RERISTERS\_DEFINES\ Registers\ structures}}
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__data_8h_source_l00076}00076\ \textcolor{comment}{\ \ *\ @ingroup\ \ \ \ MODBUS\_DATA}}
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__data_8h_source_l00077}00077\ \textcolor{comment}{\ \ *\ @brief\ \ \ \ \ \ Стуруктура\ регистров\ (входных\ и\ хранения)}}
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__data_8h_source_l00078}00078\ \textcolor{comment}{\ \ @code\ \ \ \ }}
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__data_8h_source_l00079}00079\ \textcolor{comment}{\ \ Для\ массивов\ регистров:}}
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__data_8h_source_l00080}00080\ \textcolor{comment}{\ \ \ \ R\_<NAME\_ARRAY>\_ADDR\ \ \ -\/\ \ модбас\ адресс\ первого\ регистра\ в\ массиве}}
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__data_8h_source_l00081}00081\ \textcolor{comment}{\ \ \ \ R\_<NAME\_ARRAY>\_QNT\ \ \ \ -\/\ \ количество\ регистров\ в\ массиве}}
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__data_8h_source_l00082}00082\ \textcolor{comment}{\ \ @endcode}}
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__data_8h_source_l00083}00083\ \textcolor{comment}{\ \ *\ @\{}}
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__data_8h_source_l00084}00084\ \textcolor{comment}{\ \ */}}
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__data_8h_source_l00085}00085\ \ \ }
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__data_8h_source_l00086}00086\ \ \ \textcolor{comment}{}}
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__data_8h_source_l00087}00087\ \textcolor{comment}{/**\ }}
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__data_8h_source_l00088}00088\ \textcolor{comment}{\ \ *\ @brief\ Регистры\ хранения}}
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__data_8h_source_l00089}00089\ \textcolor{comment}{\ \ */}}
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__data_8h_source_l00090}\mbox{\hyperlink{struct_m_b___data_in_regs_type_def}{00090}}\ \textcolor{keyword}{typedef}\ \textcolor{keyword}{struct\ }\textcolor{comment}{//MB\_DataInRegsTypeDef}}
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__data_8h_source_l00091}00091\ \{}
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__data_8h_source_l00092}00092\ \ \ uint16\_t\ in[16];}
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__data_8h_source_l00093}00093\ \}\mbox{\hyperlink{struct_m_b___data_in_regs_type_def}{MB\_DataInRegsTypeDef}};}
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__data_8h_source_l00094}00094\ }
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__data_8h_source_l00095}00095\ \textcolor{comment}{}}
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__data_8h_source_l00096}00096\ \textcolor{comment}{/**\ }}
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__data_8h_source_l00097}00097\ \textcolor{comment}{\ \ *\ @brief\ Входные\ регистры\ }}
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__data_8h_source_l00098}00098\ \textcolor{comment}{\ \ */}}
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__data_8h_source_l00099}\mbox{\hyperlink{struct_m_b___data_hold_regs_type_def}{00099}}\ \textcolor{keyword}{typedef}\ \textcolor{keyword}{struct\ }\textcolor{comment}{//MB\_DataInRegsTypeDef}}
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__data_8h_source_l00100}00100\ \{}
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__data_8h_source_l00101}00101\ \ \ uint16\_t\ out[16];}
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__data_8h_source_l00102}00102\ \}\mbox{\hyperlink{struct_m_b___data_hold_regs_type_def}{MB\_DataHoldRegsTypeDef}};}
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__data_8h_source_l00103}00103\ }
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__data_8h_source_l00104}00104\ \textcolor{comment}{}}
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__data_8h_source_l00105}00105\ \textcolor{comment}{/**\ MODBUS\_DATA\_RERISTERS\_DEFINES}}
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__data_8h_source_l00106}00106\ \textcolor{comment}{\ \ *\ @\}\ }}
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__data_8h_source_l00107}00107\ \textcolor{comment}{\ \ */}}
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__data_8h_source_l00108}00108\ }
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__data_8h_source_l00109}00109\ \textcolor{comment}{//-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/DEFINES\ FOR\ COILS-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/}\textcolor{comment}{}}
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__data_8h_source_l00110}00110\ \textcolor{comment}{/**\ }}
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__data_8h_source_l00111}00111\ \textcolor{comment}{\ \ *\ @addtogroup\ MODBUS\_DATA\_COILS\_DEFINES\ Coils\ Structure}}
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__data_8h_source_l00112}00112\ \textcolor{comment}{\ \ *\ @ingroup\ \ \ \ MODBUS\_DATA}}
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__data_8h_source_l00113}00113\ \textcolor{comment}{\ \ *\ @brief\ \ \ \ \ \ Структура\ коилов}}
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__data_8h_source_l00114}00114\ \textcolor{comment}{\ \ @code\ \ \ \ }}
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__data_8h_source_l00115}00115\ \textcolor{comment}{\ \ Структура\ дефайна}}
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__data_8h_source_l00116}00116\ \textcolor{comment}{\ \ Для\ массивов\ коилов:}}
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__data_8h_source_l00117}00117\ \textcolor{comment}{\ \ \ \ C\_<NAME\_ARRAY>\_ADDR\ \ \ -\/\ модбас\ адресс\ первого\ коила\ в\ массиве}}
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__data_8h_source_l00118}00118\ \textcolor{comment}{\ \ \ \ C\_<NAME\_ARRAY>\_QNT\ \ \ \ -\/\ количество\ коилов\ в\ массиве\ (минимум\ 16)}}
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__data_8h_source_l00119}00119\ \textcolor{comment}{\ \ @endcode}}
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__data_8h_source_l00120}00120\ \textcolor{comment}{\ \ *\ @\{}}
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__data_8h_source_l00121}00121\ \textcolor{comment}{\ \ */}}
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__data_8h_source_l00122}00122\ \ \ }
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__data_8h_source_l00123}00123\ \ \ }
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__data_8h_source_l00124}00124\ \ \ \textcolor{comment}{}}
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__data_8h_source_l00125}00125\ \textcolor{comment}{/**\ }}
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__data_8h_source_l00126}00126\ \textcolor{comment}{\ \ *\ @brief\ \ \ \ \ Коилы}}
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__data_8h_source_l00127}00127\ \textcolor{comment}{\ \ *\ @details\ \ \ Желательно\ с\ помощью\ reserved\ делать\ стркутуру\ кратной\ 16-\/битам}}
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__data_8h_source_l00128}00128\ \textcolor{comment}{\ \ */}}
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__data_8h_source_l00129}\mbox{\hyperlink{struct_m_b___data_coils_type_def}{00129}}\ \textcolor{keyword}{typedef}\ \textcolor{keyword}{struct\ }\textcolor{comment}{//MB\_DataCoilsTypeDef}}
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__data_8h_source_l00130}00130\ \{}
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__data_8h_source_l00131}00131\ \ \ \textcolor{keywordtype}{unsigned}\ reserved:16;}
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__data_8h_source_l00132}00132\ \}\mbox{\hyperlink{struct_m_b___data_coils_type_def}{MB\_DataCoilsTypeDef}};}
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__data_8h_source_l00133}00133\ \textcolor{comment}{}}
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__data_8h_source_l00134}00134\ \textcolor{comment}{/**\ MODBUS\_DATA\_COILS\_DEFINES}}
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__data_8h_source_l00135}00135\ \textcolor{comment}{\ \ *\ @\}\ }}
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__data_8h_source_l00136}00136\ \textcolor{comment}{\ \ */}}
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__data_8h_source_l00137}00137\ \ \ }
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__data_8h_source_l00138}00138\ \ \ }
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__data_8h_source_l00139}00139\ \textcolor{comment}{//-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/MODBUS\ DEVICE\ DATA\ SETTING-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/}}
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__data_8h_source_l00140}00140\ \textcolor{comment}{//\ MODBUS\ DATA\ STRUCTTURE}\textcolor{comment}{}}
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__data_8h_source_l00141}00141\ \textcolor{comment}{/**\ }}
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__data_8h_source_l00142}00142\ \textcolor{comment}{\ \ *\ @brief\ Структура\ со\ всеми\ регистрами\ и\ коилами\ модбас\ }}
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__data_8h_source_l00143}00143\ \textcolor{comment}{\ \ *\ @ingroup\ \ MODBUS\_DATA}}
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__data_8h_source_l00144}00144\ \textcolor{comment}{\ \ */}}
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__data_8h_source_l00145}\mbox{\hyperlink{struct_m_b___data_structure_type_def}{00145}}\ \textcolor{keyword}{typedef}\ \textcolor{keyword}{struct\ }\textcolor{comment}{//\ tester\ modbus\ data}}
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__data_8h_source_l00146}00146\ \{}
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__data_8h_source_l00147}\mbox{\hyperlink{struct_m_b___data_structure_type_def_ac0bf877607c54c79c1d09c4530fdcbca}{00147}}\ \ \ \mbox{\hyperlink{struct_m_b___data_in_regs_type_def}{MB\_DataInRegsTypeDef}}\ \ \ \ \ \ \mbox{\hyperlink{struct_m_b___data_structure_type_def_ac0bf877607c54c79c1d09c4530fdcbca}{InRegs}};\ \ \ \ \ \textcolor{comment}{///<\ Modbus\ input\ registers\ @ref\ MB\_DataInRegsTypeDef}}
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__data_8h_source_l00148}00148\ }
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__data_8h_source_l00149}\mbox{\hyperlink{struct_m_b___data_structure_type_def_a349e19f82ba85cb29a911468ceee76b2}{00149}}\ \ \ \mbox{\hyperlink{struct_m_b___data_coils_type_def}{MB\_DataCoilsTypeDef}}\ \ \ \ \ \ \ \mbox{\hyperlink{struct_m_b___data_structure_type_def_a349e19f82ba85cb29a911468ceee76b2}{Coils}};\ \ \ \ \ \ \textcolor{comment}{///<\ Modbus\ coils\ @ref\ MB\_DataCoilsTypeDef}}
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__data_8h_source_l00150}00150\ \ \ }
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__data_8h_source_l00151}\mbox{\hyperlink{struct_m_b___data_structure_type_def_a27d12400f322702e9d87c492e9628313}{00151}}\ \ \ \mbox{\hyperlink{struct_m_b___data_hold_regs_type_def}{MB\_DataHoldRegsTypeDef}}\ \ \ \ \mbox{\hyperlink{struct_m_b___data_structure_type_def_a27d12400f322702e9d87c492e9628313}{HoldRegs}};\ \ \ \textcolor{comment}{///<\ Modbus\ holding\ registers\ @ref\ MB\_DataHoldRegsTypeDef}}
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__data_8h_source_l00152}00152\ \}\mbox{\hyperlink{struct_m_b___data_structure_type_def}{MB\_DataStructureTypeDef}};}
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__data_8h_source_l00153}00153\ \textcolor{keyword}{extern}\ \mbox{\hyperlink{struct_m_b___data_structure_type_def}{MB\_DataStructureTypeDef}}\ MB\_DATA;}
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__data_8h_source_l00154}00154\ }
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__data_8h_source_l00155}00155\ }
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__data_8h_source_l00156}00156\ \textcolor{preprocessor}{\#endif\ }\textcolor{comment}{//\_MODBUS\_DATA\_H\_}}
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__data_8h_source_l00157}00157\ \textcolor{comment}{}}
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__data_8h_source_l00158}00158\ \textcolor{comment}{/////////////////////////////////////////////////////////////}}
|
||||
\DoxyCodeLine{\Hypertarget{____modbus__data_8h_source_l00159}00159\ \textcolor{comment}{///////////////////////TEMP/OUTDATE/OTHER////////////////////}}
|
||||
|
||||
\end{DoxyCode}
|
||||
14
AllLibs/Modbus/Doc/latex/annotated.tex
Normal file
14
AllLibs/Modbus/Doc/latex/annotated.tex
Normal file
@@ -0,0 +1,14 @@
|
||||
\doxysection{Class List}
|
||||
Here are the classes, structs, unions and interfaces with brief descriptions\+:\begin{DoxyCompactList}
|
||||
\item\contentsline{section}{\mbox{\hyperlink{struct_m_b___data_coils_type_def}{MB\+\_\+\+Data\+Coils\+Type\+Def}} \\*Коилы }{\pageref{struct_m_b___data_coils_type_def}}{}
|
||||
\item\contentsline{section}{\mbox{\hyperlink{struct_m_b___data_hold_regs_type_def}{MB\+\_\+\+Data\+Hold\+Regs\+Type\+Def}} \\*Входные регистры }{\pageref{struct_m_b___data_hold_regs_type_def}}{}
|
||||
\item\contentsline{section}{\mbox{\hyperlink{struct_m_b___data_in_regs_type_def}{MB\+\_\+\+Data\+In\+Regs\+Type\+Def}} \\*Регистры хранения }{\pageref{struct_m_b___data_in_regs_type_def}}{}
|
||||
\item\contentsline{section}{\mbox{\hyperlink{struct_m_b___data_structure_type_def}{MB\+\_\+\+Data\+Structure\+Type\+Def}} \\*Структура со всеми регистрами и коилами модбас }{\pageref{struct_m_b___data_structure_type_def}}{}
|
||||
\item\contentsline{section}{\mbox{\hyperlink{struct_m_b___device_identifications_type_def}{MB\+\_\+\+Device\+Identifications\+Type\+Def}} \\*Структура со идентификаторами устройства модбас }{\pageref{struct_m_b___device_identifications_type_def}}{}
|
||||
\item\contentsline{section}{\mbox{\hyperlink{struct_m_b___device_object_type_def}{MB\+\_\+\+Device\+Object\+Type\+Def}} \\*Структура для объекта (идентификатора устройства модбас) }{\pageref{struct_m_b___device_object_type_def}}{}
|
||||
\item\contentsline{section}{\mbox{\hyperlink{struct_m_b___dev_id_msg_type_def}{MB\+\_\+\+Dev\+Id\+Msg\+Type\+Def}} \\*Structure for device identifications message type }{\pageref{struct_m_b___dev_id_msg_type_def}}{}
|
||||
\item\contentsline{section}{\mbox{\hyperlink{struct_m_b___diagnostics_info_type_def}{MB\+\_\+\+Diagnostics\+Info\+Type\+Def}} \\*Структура со диагностической информацией устройства модбас }{\pageref{struct_m_b___diagnostics_info_type_def}}{}
|
||||
\item\contentsline{section}{\mbox{\hyperlink{struct_r_s___flags_type_def}{RS\+\_\+\+Flags\+Type\+Def}} \\*Struct for flags RS }{\pageref{struct_r_s___flags_type_def}}{}
|
||||
\item\contentsline{section}{\mbox{\hyperlink{struct_r_s___handle_type_def}{RS\+\_\+\+Handle\+Type\+Def}} \\*Handle for RS communication }{\pageref{struct_r_s___handle_type_def}}{}
|
||||
\item\contentsline{section}{\mbox{\hyperlink{struct_r_s___msg_type_def}{RS\+\_\+\+Msg\+Type\+Def}} \\*Structure for modbus messsage }{\pageref{struct_r_s___msg_type_def}}{}
|
||||
\end{DoxyCompactList}
|
||||
745
AllLibs/Modbus/Doc/latex/doxygen.sty
Normal file
745
AllLibs/Modbus/Doc/latex/doxygen.sty
Normal file
@@ -0,0 +1,745 @@
|
||||
\NeedsTeXFormat{LaTeX2e}
|
||||
\ProvidesPackage{doxygen}
|
||||
|
||||
% Packages used by this style file
|
||||
\RequirePackage{alltt}
|
||||
%%\RequirePackage{array} %% moved to refman.tex due to workaround for LaTex 2019 version and unmaintained tabu package
|
||||
\RequirePackage{calc}
|
||||
\RequirePackage{float}
|
||||
%%\RequirePackage{ifthen} %% moved to refman.tex due to workaround for LaTex 2019 version and unmaintained tabu package
|
||||
\RequirePackage{verbatim}
|
||||
\RequirePackage[table]{xcolor}
|
||||
\RequirePackage{longtable_doxygen}
|
||||
\RequirePackage{tabu_doxygen}
|
||||
\RequirePackage{fancyvrb}
|
||||
\RequirePackage{tabularx}
|
||||
\RequirePackage{multicol}
|
||||
\RequirePackage{multirow}
|
||||
\RequirePackage{hanging}
|
||||
\RequirePackage{ifpdf}
|
||||
\RequirePackage{adjustbox}
|
||||
\RequirePackage{amssymb}
|
||||
\RequirePackage{stackengine}
|
||||
\RequirePackage{enumitem}
|
||||
\RequirePackage{alphalph}
|
||||
\RequirePackage[normalem]{ulem} % for strikeout, but don't modify emphasis
|
||||
|
||||
%---------- Internal commands used in this style file ----------------
|
||||
|
||||
\newcommand{\ensurespace}[1]{%
|
||||
\begingroup%
|
||||
\setlength{\dimen@}{#1}%
|
||||
\vskip\z@\@plus\dimen@%
|
||||
\penalty -100\vskip\z@\@plus -\dimen@%
|
||||
\vskip\dimen@%
|
||||
\penalty 9999%
|
||||
\vskip -\dimen@%
|
||||
\vskip\z@skip% hide the previous |\vskip| from |\addvspace|
|
||||
\endgroup%
|
||||
}
|
||||
|
||||
\newcommand{\DoxyHorRuler}[1]{%
|
||||
\setlength{\parskip}{0ex plus 0ex minus 0ex}%
|
||||
\ifthenelse{#1=0}%
|
||||
{%
|
||||
\hrule%
|
||||
}%
|
||||
{%
|
||||
\hrulefilll%
|
||||
}%
|
||||
}
|
||||
\newcommand{\DoxyLabelFont}{}
|
||||
\newcommand{\entrylabel}[1]{%
|
||||
{%
|
||||
\parbox[b]{\labelwidth-4pt}{%
|
||||
\makebox[0pt][l]{\DoxyLabelFont#1}%
|
||||
\vspace{1.5\baselineskip}%
|
||||
}%
|
||||
}%
|
||||
}
|
||||
|
||||
\newenvironment{DoxyDesc}[1]{%
|
||||
\ensurespace{4\baselineskip}%
|
||||
\begin{list}{}{%
|
||||
\settowidth{\labelwidth}{20pt}%
|
||||
%\setlength{\parsep}{0pt}%
|
||||
\setlength{\itemsep}{0pt}%
|
||||
\setlength{\leftmargin}{\labelwidth+\labelsep}%
|
||||
\renewcommand{\makelabel}{\entrylabel}%
|
||||
}%
|
||||
\item[#1]%
|
||||
}{%
|
||||
\end{list}%
|
||||
}
|
||||
|
||||
\newsavebox{\xrefbox}
|
||||
\newlength{\xreflength}
|
||||
\newcommand{\xreflabel}[1]{%
|
||||
\sbox{\xrefbox}{#1}%
|
||||
\setlength{\xreflength}{\wd\xrefbox}%
|
||||
\ifthenelse{\xreflength>\labelwidth}{%
|
||||
\begin{minipage}{\textwidth}%
|
||||
\setlength{\parindent}{0pt}%
|
||||
\hangindent=15pt\bfseries #1\vspace{1.2\itemsep}%
|
||||
\end{minipage}%
|
||||
}{%
|
||||
\parbox[b]{\labelwidth}{\makebox[0pt][l]{\textbf{#1}}}%
|
||||
}%
|
||||
}
|
||||
|
||||
%---------- Commands used by doxygen LaTeX output generator ----------
|
||||
|
||||
% Used by <pre> ... </pre>
|
||||
\newenvironment{DoxyPre}{%
|
||||
\small%
|
||||
\begin{alltt}%
|
||||
}{%
|
||||
\end{alltt}%
|
||||
\normalsize%
|
||||
}
|
||||
% Necessary for redefining not defined characters, i.e. "Replacement Character" in tex output.
|
||||
\newlength{\CodeWidthChar}
|
||||
\newlength{\CodeHeightChar}
|
||||
\settowidth{\CodeWidthChar}{?}
|
||||
\settoheight{\CodeHeightChar}{?}
|
||||
% Necessary for hanging indent
|
||||
\newlength{\DoxyCodeWidth}
|
||||
|
||||
\newcommand\DoxyCodeLine[1]{
|
||||
\ifthenelse{\equal{\detokenize{#1}}{}}
|
||||
{
|
||||
\vspace*{\baselineskip}
|
||||
}
|
||||
{
|
||||
\hangpara{\DoxyCodeWidth}{1}{#1}\par
|
||||
}
|
||||
}
|
||||
|
||||
\newcommand\NiceSpace{%
|
||||
\discretionary{}{\kern\fontdimen2\font}{\kern\fontdimen2\font}%
|
||||
}
|
||||
|
||||
% Used by @code ... @endcode
|
||||
\newenvironment{DoxyCode}[1]{%
|
||||
\par%
|
||||
\vspace{2pt}%
|
||||
\scriptsize%
|
||||
\normalfont\ttfamily%
|
||||
\rightskip0pt plus 1fil%
|
||||
\settowidth{\DoxyCodeWidth}{000000}%
|
||||
\settowidth{\CodeWidthChar}{?}%
|
||||
\settoheight{\CodeHeightChar}{?}%
|
||||
\setlength{\parskip}{0ex plus 0ex minus 0ex}%
|
||||
\ifthenelse{\equal{#1}{0}}%
|
||||
{%
|
||||
{\lccode`~32 \lowercase{\global\let~}\NiceSpace}\obeyspaces%
|
||||
}%
|
||||
{%
|
||||
{\lccode`~32 \lowercase{\global\let~}}\obeyspaces%
|
||||
}%
|
||||
\vspace{2pt}%
|
||||
}{%
|
||||
\normalfont%
|
||||
\normalsize%
|
||||
\settowidth{\CodeWidthChar}{?}%
|
||||
\settoheight{\CodeHeightChar}{?}%
|
||||
}
|
||||
|
||||
% Redefining not defined characters, i.e. "Replacement Character" in tex output.
|
||||
\def\ucr{\adjustbox{width=\CodeWidthChar,height=\CodeHeightChar}{\stackinset{c}{}{c}{-.2pt}{%
|
||||
\textcolor{white}{\sffamily\bfseries\small ?}}{%
|
||||
\rotatebox{45}{$\blacksquare$}}}}
|
||||
|
||||
% Used by @example, @include, @includelineno and @dontinclude
|
||||
\newenvironment{DoxyCodeInclude}[1]{%
|
||||
\DoxyCode{#1}%
|
||||
}{%
|
||||
\endDoxyCode%
|
||||
}
|
||||
|
||||
% Used by @verbatim ... @endverbatim
|
||||
\newenvironment{DoxyVerb}{%
|
||||
\par%
|
||||
\footnotesize%
|
||||
\verbatim%
|
||||
}{%
|
||||
\endverbatim%
|
||||
\normalsize%
|
||||
}
|
||||
|
||||
% Used by @verbinclude
|
||||
\newenvironment{DoxyVerbInclude}{%
|
||||
\DoxyVerb%
|
||||
}{%
|
||||
\endDoxyVerb%
|
||||
}
|
||||
|
||||
% Used by numbered lists (using '-#' or <ol> ... </ol>)
|
||||
\setlistdepth{12}
|
||||
\newlist{DoxyEnumerate}{enumerate}{12}
|
||||
\setlist[DoxyEnumerate,1]{label=\arabic*.}
|
||||
\setlist[DoxyEnumerate,2]{label=(\enumalphalphcnt*)}
|
||||
\setlist[DoxyEnumerate,3]{label=\roman*.}
|
||||
\setlist[DoxyEnumerate,4]{label=\enumAlphAlphcnt*.}
|
||||
\setlist[DoxyEnumerate,5]{label=\arabic*.}
|
||||
\setlist[DoxyEnumerate,6]{label=(\enumalphalphcnt*)}
|
||||
\setlist[DoxyEnumerate,7]{label=\roman*.}
|
||||
\setlist[DoxyEnumerate,8]{label=\enumAlphAlphcnt*.}
|
||||
\setlist[DoxyEnumerate,9]{label=\arabic*.}
|
||||
\setlist[DoxyEnumerate,10]{label=(\enumalphalphcnt*)}
|
||||
\setlist[DoxyEnumerate,11]{label=\roman*.}
|
||||
\setlist[DoxyEnumerate,12]{label=\enumAlphAlphcnt*.}
|
||||
|
||||
% Used by bullet lists (using '-', @li, @arg, or <ul> ... </ul>)
|
||||
\setlistdepth{12}
|
||||
\newlist{DoxyItemize}{itemize}{12}
|
||||
\setlist[DoxyItemize]{label=\textperiodcentered}
|
||||
|
||||
\setlist[DoxyItemize,1]{label=\textbullet}
|
||||
\setlist[DoxyItemize,2]{label=\normalfont\bfseries \textendash}
|
||||
\setlist[DoxyItemize,3]{label=\textasteriskcentered}
|
||||
\setlist[DoxyItemize,4]{label=\textperiodcentered}
|
||||
|
||||
% Used for check boxes
|
||||
\newcommand{\DoxyUnchecked}{$\square$}
|
||||
\newcommand{\DoxyChecked}{\rlap{\raisebox{0.3ex}{\hspace{0.4ex}\tiny \checkmark}}$\square$}
|
||||
|
||||
% Used by description lists (using <dl> ... </dl>)
|
||||
\newenvironment{DoxyDescription}{%
|
||||
\description%
|
||||
}{%
|
||||
\enddescription%
|
||||
}
|
||||
|
||||
% Used by @image, @dotfile, @dot ... @enddot, and @msc ... @endmsc
|
||||
% (only if caption is specified)
|
||||
\newenvironment{DoxyImage}{%
|
||||
\begin{figure}[H]%
|
||||
\centering%
|
||||
}{%
|
||||
\end{figure}%
|
||||
}
|
||||
|
||||
% Used by @image, @dotfile, @dot ... @enddot, and @msc ... @endmsc
|
||||
% (only if no caption is specified)
|
||||
\newenvironment{DoxyImageNoCaption}{%
|
||||
\begin{center}%
|
||||
}{%
|
||||
\end{center}%
|
||||
}
|
||||
|
||||
% Used by @image
|
||||
% (only if inline is specified)
|
||||
\newenvironment{DoxyInlineImage}{%
|
||||
}{%
|
||||
}
|
||||
|
||||
% Used by @attention
|
||||
\newenvironment{DoxyAttention}[1]{%
|
||||
\begin{DoxyDesc}{#1}%
|
||||
}{%
|
||||
\end{DoxyDesc}%
|
||||
}
|
||||
|
||||
% Used by @important
|
||||
\newenvironment{DoxyImportant}[1]{%
|
||||
\begin{DoxyDesc}{#1}%
|
||||
}{%
|
||||
\end{DoxyDesc}%
|
||||
}
|
||||
|
||||
% Used by @author and @authors
|
||||
\newenvironment{DoxyAuthor}[1]{%
|
||||
\begin{DoxyDesc}{#1}%
|
||||
}{%
|
||||
\end{DoxyDesc}%
|
||||
}
|
||||
|
||||
% Used by @date
|
||||
\newenvironment{DoxyDate}[1]{%
|
||||
\begin{DoxyDesc}{#1}%
|
||||
}{%
|
||||
\end{DoxyDesc}%
|
||||
}
|
||||
|
||||
% Used by @invariant
|
||||
\newenvironment{DoxyInvariant}[1]{%
|
||||
\begin{DoxyDesc}{#1}%
|
||||
}{%
|
||||
\end{DoxyDesc}%
|
||||
}
|
||||
|
||||
% Used by @note
|
||||
\newenvironment{DoxyNote}[1]{%
|
||||
\begin{DoxyDesc}{#1}%
|
||||
}{%
|
||||
\end{DoxyDesc}%
|
||||
}
|
||||
|
||||
% Used by @post
|
||||
\newenvironment{DoxyPostcond}[1]{%
|
||||
\begin{DoxyDesc}{#1}%
|
||||
}{%
|
||||
\end{DoxyDesc}%
|
||||
}
|
||||
|
||||
% Used by @pre
|
||||
\newenvironment{DoxyPrecond}[1]{%
|
||||
\begin{DoxyDesc}{#1}%
|
||||
}{%
|
||||
\end{DoxyDesc}%
|
||||
}
|
||||
|
||||
% Used by @copyright
|
||||
\newenvironment{DoxyCopyright}[1]{%
|
||||
\begin{DoxyDesc}{#1}%
|
||||
}{%
|
||||
\end{DoxyDesc}%
|
||||
}
|
||||
|
||||
% Used by @remark
|
||||
\newenvironment{DoxyRemark}[1]{%
|
||||
\begin{DoxyDesc}{#1}%
|
||||
}{%
|
||||
\end{DoxyDesc}%
|
||||
}
|
||||
|
||||
% Used by @return and @returns
|
||||
\newenvironment{DoxyReturn}[1]{%
|
||||
\begin{DoxyDesc}{#1}%
|
||||
}{%
|
||||
\end{DoxyDesc}%
|
||||
}
|
||||
|
||||
% Used by @since
|
||||
\newenvironment{DoxySince}[1]{%
|
||||
\begin{DoxyDesc}{#1}%
|
||||
}{%
|
||||
\end{DoxyDesc}%
|
||||
}
|
||||
|
||||
% Used by @see
|
||||
\newenvironment{DoxySeeAlso}[1]{%
|
||||
\begin{DoxyDesc}{#1}%
|
||||
}{%
|
||||
\end{DoxyDesc}%
|
||||
}
|
||||
|
||||
% Used by @version
|
||||
\newenvironment{DoxyVersion}[1]{%
|
||||
\begin{DoxyDesc}{#1}%
|
||||
}{%
|
||||
\end{DoxyDesc}%
|
||||
}
|
||||
|
||||
% Used by @warning
|
||||
\newenvironment{DoxyWarning}[1]{%
|
||||
\begin{DoxyDesc}{#1}%
|
||||
}{%
|
||||
\end{DoxyDesc}%
|
||||
}
|
||||
|
||||
% Used by @par and @paragraph
|
||||
\newenvironment{DoxyParagraph}[1]{%
|
||||
\begin{DoxyDesc}{#1}%
|
||||
}{%
|
||||
\end{DoxyDesc}%
|
||||
}
|
||||
|
||||
% Used by parameter lists
|
||||
\newenvironment{DoxyParams}[2][]{%
|
||||
\tabulinesep=1mm%
|
||||
\par%
|
||||
\ifthenelse{\equal{#1}{}}%
|
||||
{\begin{longtabu*}spread 0pt [l]{|X[-1,l]|X[-1,l]|}}% name + description
|
||||
{\ifthenelse{\equal{#1}{1}}%
|
||||
{\begin{longtabu*}spread 0pt [l]{|X[-1,l]|X[-1,l]|X[-1,l]|}}% in/out + name + desc
|
||||
{\begin{longtabu*}spread 0pt [l]{|X[-1,l]|X[-1,l]|X[-1,l]|X[-1,l]|}}% in/out + type + name + desc
|
||||
}
|
||||
\multicolumn{2}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #2}\\[1ex]%
|
||||
\hline%
|
||||
\endfirsthead%
|
||||
\multicolumn{2}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #2}\\[1ex]%
|
||||
\hline%
|
||||
\endhead%
|
||||
}{%
|
||||
\end{longtabu*}%
|
||||
\vspace{6pt}%
|
||||
}
|
||||
|
||||
% Used for fields of simple structs
|
||||
\newenvironment{DoxyFields}[1]{%
|
||||
\tabulinesep=1mm%
|
||||
\par%
|
||||
\begin{longtabu*}spread 0pt [l]{|X[-1,r]|X[-1,l]|X[-1,l]|}%
|
||||
\multicolumn{3}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #1}\\[1ex]%
|
||||
\hline%
|
||||
\endfirsthead%
|
||||
\multicolumn{3}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #1}\\[1ex]%
|
||||
\hline%
|
||||
\endhead%
|
||||
}{%
|
||||
\end{longtabu*}%
|
||||
\vspace{6pt}%
|
||||
}
|
||||
|
||||
% Used for fields simple class style enums
|
||||
\newenvironment{DoxyEnumFields}[2][]{%
|
||||
\tabulinesep=1mm%
|
||||
\par%
|
||||
\ifthenelse{\equal{#1}{2}}%
|
||||
{\begin{longtabu*}spread 0pt [l]{|X[-1,r]|X[-1,l]|}}%
|
||||
{\begin{longtabu*}spread 0pt [l]{|X[-1,l]|X[-1,r]|X[-1,l]|}}% with init value
|
||||
\multicolumn{2}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #2}\\[1ex]%
|
||||
\hline%
|
||||
\endfirsthead%
|
||||
\multicolumn{2}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #2}\\[1ex]%
|
||||
\hline%
|
||||
\endhead%
|
||||
}{%
|
||||
\end{longtabu*}%
|
||||
\vspace{6pt}%
|
||||
}
|
||||
|
||||
% Used for parameters within a detailed function description
|
||||
\newenvironment{DoxyParamCaption}{%
|
||||
\renewcommand{\item}[3][]{\\ \hspace*{2.0cm} ##1 {\em ##2}##3}%
|
||||
}{%
|
||||
}
|
||||
|
||||
% Used by return value lists
|
||||
\newenvironment{DoxyRetVals}[1]{%
|
||||
\tabulinesep=1mm%
|
||||
\par%
|
||||
\begin{longtabu*}spread 0pt [l]{|X[-1,r]|X[-1,l]|}%
|
||||
\multicolumn{2}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #1}\\[1ex]%
|
||||
\hline%
|
||||
\endfirsthead%
|
||||
\multicolumn{2}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #1}\\[1ex]%
|
||||
\hline%
|
||||
\endhead%
|
||||
}{%
|
||||
\end{longtabu*}%
|
||||
\vspace{6pt}%
|
||||
}
|
||||
|
||||
% Used by exception lists
|
||||
\newenvironment{DoxyExceptions}[1]{%
|
||||
\tabulinesep=1mm%
|
||||
\par%
|
||||
\begin{longtabu*}spread 0pt [l]{|X[-1,r]|X[-1,l]|}%
|
||||
\multicolumn{2}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #1}\\[1ex]%
|
||||
\hline%
|
||||
\endfirsthead%
|
||||
\multicolumn{2}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #1}\\[1ex]%
|
||||
\hline%
|
||||
\endhead%
|
||||
}{%
|
||||
\end{longtabu*}%
|
||||
\vspace{6pt}%
|
||||
}
|
||||
|
||||
% Used by template parameter lists
|
||||
\newenvironment{DoxyTemplParams}[1]{%
|
||||
\tabulinesep=1mm%
|
||||
\par%
|
||||
\begin{longtabu*}spread 0pt [l]{|X[-1,r]|X[-1,l]|}%
|
||||
\multicolumn{2}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #1}\\[1ex]%
|
||||
\hline%
|
||||
\endfirsthead%
|
||||
\multicolumn{2}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #1}\\[1ex]%
|
||||
\hline%
|
||||
\endhead%
|
||||
}{%
|
||||
\end{longtabu*}%
|
||||
\vspace{6pt}%
|
||||
}
|
||||
|
||||
% Used for member lists
|
||||
\newenvironment{DoxyCompactItemize}{%
|
||||
\begin{itemize}%
|
||||
\setlength{\itemsep}{-3pt}%
|
||||
\setlength{\parsep}{0pt}%
|
||||
\setlength{\topsep}{0pt}%
|
||||
\setlength{\partopsep}{0pt}%
|
||||
}{%
|
||||
\end{itemize}%
|
||||
}
|
||||
|
||||
% Used for member descriptions
|
||||
\newenvironment{DoxyCompactList}{%
|
||||
\begin{list}{}{%
|
||||
\setlength{\leftmargin}{0.5cm}%
|
||||
\setlength{\itemsep}{0pt}%
|
||||
\setlength{\parsep}{0pt}%
|
||||
\setlength{\topsep}{0pt}%
|
||||
\renewcommand{\makelabel}{\hfill}%
|
||||
}%
|
||||
}{%
|
||||
\end{list}%
|
||||
}
|
||||
|
||||
% Used for reference lists (@bug, @deprecated, @todo, etc.)
|
||||
\newenvironment{DoxyRefList}{%
|
||||
\begin{list}{}{%
|
||||
\setlength{\labelwidth}{10pt}%
|
||||
\setlength{\leftmargin}{\labelwidth}%
|
||||
\addtolength{\leftmargin}{\labelsep}%
|
||||
\renewcommand{\makelabel}{\xreflabel}%
|
||||
}%
|
||||
}{%
|
||||
\end{list}%
|
||||
}
|
||||
|
||||
% Used by @bug, @deprecated, @todo, etc.
|
||||
\newenvironment{DoxyRefDesc}[1]{%
|
||||
\begin{list}{}{%
|
||||
\renewcommand\makelabel[1]{\textbf{##1}}%
|
||||
\settowidth\labelwidth{\makelabel{#1}}%
|
||||
\setlength\leftmargin{\labelwidth+\labelsep}%
|
||||
}%
|
||||
}{%
|
||||
\end{list}%
|
||||
}
|
||||
|
||||
% Used by parameter lists and simple sections
|
||||
\newenvironment{Desc}
|
||||
{\begin{list}{}{%
|
||||
\settowidth{\labelwidth}{20pt}%
|
||||
\setlength{\parsep}{0pt}%
|
||||
\setlength{\itemsep}{0pt}%
|
||||
\setlength{\leftmargin}{\labelwidth+\labelsep}%
|
||||
\renewcommand{\makelabel}{\entrylabel}%
|
||||
}
|
||||
}{%
|
||||
\end{list}%
|
||||
}
|
||||
|
||||
% Used by tables
|
||||
\newcommand{\PBS}[1]{\let\temp=\\#1\let\\=\temp}%
|
||||
\newenvironment{TabularC}[1]%
|
||||
{\tabulinesep=1mm
|
||||
\begin{longtabu*}spread 0pt [c]{*#1{|X[-1]}|}}%
|
||||
{\end{longtabu*}\par}%
|
||||
|
||||
\newenvironment{TabularNC}[1]%
|
||||
{\begin{tabu}spread 0pt [l]{*#1{|X[-1]}|}}%
|
||||
{\end{tabu}\par}%
|
||||
|
||||
% Used for member group headers
|
||||
\newenvironment{Indent}{%
|
||||
\begin{list}{}{%
|
||||
\setlength{\leftmargin}{0.5cm}%
|
||||
}%
|
||||
\item[]\ignorespaces%
|
||||
}{%
|
||||
\unskip%
|
||||
\end{list}%
|
||||
}
|
||||
|
||||
% Used when hyperlinks are turned on
|
||||
\newcommand{\doxylink}[2]{%
|
||||
\mbox{\hyperlink{#1}{#2}}%
|
||||
}
|
||||
|
||||
% Used for the cite command
|
||||
\newcommand{\DoxyCite}[3]{%
|
||||
\ifthenelse{#3=1}% 1 with square parenthesis
|
||||
{
|
||||
\ifthenelse{\equal{#2}{number}}%
|
||||
{ \cite{#1} }%
|
||||
{%
|
||||
\ifthenelse{\equal{#2}{shortauthor}}%
|
||||
{ \citetext{\citeauthor{#1}} }%
|
||||
{%
|
||||
\ifthenelse{\equal{#2}{year}}%
|
||||
{ \citeyearpar{#1} }%
|
||||
{}%
|
||||
}%
|
||||
}%
|
||||
}%
|
||||
{%
|
||||
\ifthenelse{\equal{#2}{number}}%
|
||||
{ \citealp{#1} }%
|
||||
{%
|
||||
\ifthenelse{\equal{#2}{shortauthor}}%
|
||||
{ \citeauthor{#1} }%
|
||||
{%
|
||||
\ifthenelse{\equal{#2}{year}}%
|
||||
{ \citeyear{#1} }%
|
||||
{}%
|
||||
}%
|
||||
}%
|
||||
}%
|
||||
}
|
||||
|
||||
% Used when hyperlinks are turned on
|
||||
% Third argument is the SectionType, see the doxygen internal
|
||||
% documentation for the values (relevant: Page ... Subsubsection).
|
||||
\newcommand{\doxysectlink}[3]{%
|
||||
\mbox{\hyperlink{#1}{#2}}%
|
||||
}
|
||||
% Used when hyperlinks are turned off
|
||||
\newcommand{\doxyref}[3]{%
|
||||
\textbf{#1} (\textnormal{#2}\,\pageref{#3})%
|
||||
}
|
||||
|
||||
% Used when hyperlinks are turned off
|
||||
% Fourth argument is the SectionType, see the doxygen internal
|
||||
% documentation for the values (relevant: Page ... Subsubsection).
|
||||
\newcommand{\doxysectref}[4]{%
|
||||
\textbf{#1} (\textnormal{#2}\,\pageref{#3})%
|
||||
}
|
||||
|
||||
% Used to link to a table when hyperlinks are turned on
|
||||
\newcommand{\doxytablelink}[2]{%
|
||||
\ref{#1}%
|
||||
}
|
||||
|
||||
% Used to link to a table when hyperlinks are turned off
|
||||
\newcommand{\doxytableref}[3]{%
|
||||
\ref{#3}%
|
||||
}
|
||||
|
||||
% Used by @addindex
|
||||
\newcommand{\lcurly}{\{}
|
||||
\newcommand{\rcurly}{\}}
|
||||
|
||||
% Colors used for syntax highlighting
|
||||
\definecolor{comment}{rgb}{0.5,0.0,0.0}
|
||||
\definecolor{keyword}{rgb}{0.0,0.5,0.0}
|
||||
\definecolor{keywordtype}{rgb}{0.38,0.25,0.125}
|
||||
\definecolor{keywordflow}{rgb}{0.88,0.5,0.0}
|
||||
\definecolor{preprocessor}{rgb}{0.5,0.38,0.125}
|
||||
\definecolor{stringliteral}{rgb}{0.0,0.125,0.25}
|
||||
\definecolor{charliteral}{rgb}{0.0,0.5,0.5}
|
||||
\definecolor{xmlcdata}{rgb}{0.0,0.0,0.0}
|
||||
\definecolor{vhdldigit}{rgb}{1.0,0.0,1.0}
|
||||
\definecolor{vhdlkeyword}{rgb}{0.43,0.0,0.43}
|
||||
\definecolor{vhdllogic}{rgb}{1.0,0.0,0.0}
|
||||
\definecolor{vhdlchar}{rgb}{0.0,0.0,0.0}
|
||||
|
||||
% Color used for table heading
|
||||
\newcommand{\tableheadbgcolor}{lightgray}%
|
||||
|
||||
% Version of hypertarget with correct landing location
|
||||
\newcommand{\Hypertarget}[1]{\Hy@raisedlink{\hypertarget{#1}{}}}
|
||||
|
||||
% possibility to have sections etc. be within the margins
|
||||
% unfortunately had to copy part of book.cls and add \raggedright
|
||||
\makeatletter
|
||||
\newcounter{subsubsubsection}[subsubsection]
|
||||
\newcounter{subsubsubsubsection}[subsubsubsection]
|
||||
\newcounter{subsubsubsubsubsection}[subsubsubsubsection]
|
||||
\newcounter{subsubsubsubsubsubsection}[subsubsubsubsubsection]
|
||||
\renewcommand{\thesubsubsubsection}{\thesubsubsection.\arabic{subsubsubsection}}
|
||||
\renewcommand{\thesubsubsubsubsection}{\thesubsubsubsection.\arabic{subsubsubsubsection}}
|
||||
\renewcommand{\thesubsubsubsubsubsection}{\thesubsubsubsubsection.\arabic{subsubsubsubsubsection}}
|
||||
\renewcommand{\thesubsubsubsubsubsubsection}{\thesubsubsubsubsubsection.\arabic{subsubsubsubsubsubsection}}
|
||||
\newcommand{\subsubsubsectionmark}[1]{}
|
||||
\newcommand{\subsubsubsubsectionmark}[1]{}
|
||||
\newcommand{\subsubsubsubsubsectionmark}[1]{}
|
||||
\newcommand{\subsubsubsubsubsubsectionmark}[1]{}
|
||||
\def\toclevel@subsubsubsection{4}
|
||||
\def\toclevel@subsubsubsubsection{5}
|
||||
\def\toclevel@subsubsubsubsubsection{6}
|
||||
\def\toclevel@subsubsubsubsubsubsection{7}
|
||||
\def\toclevel@paragraph{8}
|
||||
\def\toclevel@subparagraph{9}
|
||||
|
||||
\newcommand\doxysection{\@startsection {section}{1}{\z@}%
|
||||
{-3.5ex \@plus -1ex \@minus -.2ex}%
|
||||
{2.3ex \@plus.2ex}%
|
||||
{\raggedright\normalfont\Large\bfseries}}
|
||||
\newcommand\doxysubsection{\@startsection{subsection}{2}{\z@}%
|
||||
{-3.25ex\@plus -1ex \@minus -.2ex}%
|
||||
{1.5ex \@plus .2ex}%
|
||||
{\raggedright\normalfont\large\bfseries}}
|
||||
\newcommand\doxysubsubsection{\@startsection{subsubsection}{3}{\z@}%
|
||||
{-3.25ex\@plus -1ex \@minus -.2ex}%
|
||||
{1.5ex \@plus .2ex}%
|
||||
{\raggedright\normalfont\normalsize\bfseries}}
|
||||
\newcommand\doxysubsubsubsection{\@startsection{subsubsubsection}{4}{\z@}%
|
||||
{-3.25ex\@plus -1ex \@minus -.2ex}%
|
||||
{1.5ex \@plus .2ex}%
|
||||
{\raggedright\normalfont\normalsize\bfseries}}
|
||||
\newcommand\doxysubsubsubsubsection{\@startsection{subsubsubsubsection}{5}{\z@}%
|
||||
{-3.25ex\@plus -1ex \@minus -.2ex}%
|
||||
{1.5ex \@plus .2ex}%
|
||||
{\raggedright\normalfont\normalsize\bfseries}}
|
||||
\newcommand\doxysubsubsubsubsubsection{\@startsection{subsubsubsubsubsection}{6}{\z@}%
|
||||
{-3.25ex\@plus -1ex \@minus -.2ex}%
|
||||
{1.5ex \@plus .2ex}%
|
||||
{\raggedright\normalfont\normalsize\bfseries}}
|
||||
\newcommand\doxysubsubsubsubsubsubsection{\@startsection{subsubsubsubsubsubsection}{7}{\z@}%
|
||||
{-3.25ex\@plus -1ex \@minus -.2ex}%
|
||||
{1.5ex \@plus .2ex}%
|
||||
{\raggedright\normalfont\normalsize\bfseries}}
|
||||
\newcommand\doxyparagraph{\@startsection{paragraph}{8}{\z@}%
|
||||
{-3.25ex\@plus -1ex \@minus -.2ex}%
|
||||
{1.5ex \@plus .2ex}%
|
||||
{\raggedright\normalfont\normalsize\bfseries}}
|
||||
\newcommand\doxysubparagraph{\@startsection{subparagraph}{9}{\parindent}%
|
||||
{-3.25ex\@plus -1ex \@minus -.2ex}%
|
||||
{1.5ex \@plus .2ex}%
|
||||
{\raggedright\normalfont\normalsize\bfseries}}
|
||||
|
||||
\newcommand\l@subsubsubsection{\@dottedtocline{4}{10.0em}{7.8em}}
|
||||
\newcommand\l@subsubsubsubsection{\@dottedtocline{5}{13.0em}{9.4em}}
|
||||
\newcommand\l@subsubsubsubsubsection{\@dottedtocline{6}{15.0em}{11em}}
|
||||
\newcommand\l@subsubsubsubsubsubsection{\@dottedtocline{7}{18.0em}{12.6em}}
|
||||
\renewcommand\l@paragraph{\@dottedtocline{8}{21.0em}{14.2em}}
|
||||
\renewcommand\l@subparagraph{\@dottedtocline{9}{24.0em}{15.8em}}
|
||||
\makeatother
|
||||
% the sectsty doesn't look to be maintained but gives, in our case, some warning like:
|
||||
% LaTeX Warning: Command \underline has changed.
|
||||
% Check if current package is valid.
|
||||
% unfortunately had to copy the relevant part
|
||||
\newcommand*{\doxypartfont} [1]
|
||||
{\gdef\SS@partnumberfont{\SS@sectid{0}\SS@nopart\SS@makeulinepartchap#1}
|
||||
\gdef\SS@parttitlefont{\SS@sectid{0}\SS@titlepart\SS@makeulinepartchap#1}}
|
||||
\newcommand*{\doxychapterfont} [1]
|
||||
{\gdef\SS@chapnumfont{\SS@sectid{1}\SS@nopart\SS@makeulinepartchap#1}
|
||||
\gdef\SS@chaptitlefont{\SS@sectid{1}\SS@titlepart\SS@makeulinepartchap#1}}
|
||||
\newcommand*{\doxysectionfont} [1]
|
||||
{\gdef\SS@sectfont{\SS@sectid{2}\SS@rr\SS@makeulinesect#1}}
|
||||
\newcommand*{\doxysubsectionfont} [1]
|
||||
{\gdef\SS@subsectfont{\SS@sectid{3}\SS@rr\SS@makeulinesect#1}}
|
||||
\newcommand*{\doxysubsubsectionfont} [1]
|
||||
{\gdef\SS@subsubsectfont{\SS@sectid{4}\SS@rr\SS@makeulinesect#1}}
|
||||
\newcommand*{\doxyparagraphfont} [1]
|
||||
{\gdef\SS@parafont{\SS@sectid{5}\SS@rr\SS@makeulinesect#1}}
|
||||
\newcommand*{\doxysubparagraphfont} [1]
|
||||
{\gdef\SS@subparafont{\SS@sectid{6}\SS@rr\SS@makeulinesect#1}}
|
||||
\newcommand*{\doxyminisecfont} [1]
|
||||
{\gdef\SS@minisecfont{\SS@sectid{7}\SS@rr\SS@makeulinepartchap#1}}
|
||||
\newcommand*{\doxyallsectionsfont} [1] {\doxypartfont{#1}%
|
||||
\doxychapterfont{#1}%
|
||||
\doxysectionfont{#1}%
|
||||
\doxysubsectionfont{#1}%
|
||||
\doxysubsubsectionfont{#1}%
|
||||
\doxyparagraphfont{#1}%
|
||||
\doxysubparagraphfont{#1}%
|
||||
\doxyminisecfont{#1}}%
|
||||
% Define caption that is also suitable in a table
|
||||
% for usage with hyperlinks
|
||||
\makeatletter
|
||||
\def\doxyfigcaption{%
|
||||
\H@refstepcounter{figure}%
|
||||
\@dblarg{\@caption{figure}}}
|
||||
|
||||
% for usage without hyperlinks
|
||||
\def\doxyfigcaptionnolink{%
|
||||
\refstepcounter{figure}%
|
||||
\@dblarg{\@caption{figure}}}
|
||||
\makeatother
|
||||
|
||||
% Define alpha enumarative names for counters > 26
|
||||
\makeatletter
|
||||
\def\enumalphalphcnt#1{\expandafter\@enumalphalphcnt\csname c@#1\endcsname}
|
||||
\def\@enumalphalphcnt#1{\alphalph{#1}}
|
||||
\def\enumAlphAlphcnt#1{\expandafter\@enumAlphAlphcnt\csname c@#1\endcsname}
|
||||
\def\@enumAlphAlphcnt#1{\AlphAlph{#1}}
|
||||
\makeatother
|
||||
\AddEnumerateCounter{\enumalphalphcnt}{\@enumalphalphcnt}{aa}
|
||||
\AddEnumerateCounter{\enumAlphAlphcnt}{\@enumAlphAlphcnt}{AA}
|
||||
2178
AllLibs/Modbus/Doc/latex/etoc_doxygen.sty
Normal file
2178
AllLibs/Modbus/Doc/latex/etoc_doxygen.sty
Normal file
@@ -0,0 +1,2178 @@
|
||||
%%
|
||||
%% This is file etoc_doxygen.sty
|
||||
%%
|
||||
%% Apart from this header notice and the renaming from etoc to
|
||||
%% etoc_doxygen (also in \ProvidesPackage) it is an identical
|
||||
%% copy of
|
||||
%%
|
||||
%% etoc.sty
|
||||
%%
|
||||
%% at version 1.2b of 2023/07/01.
|
||||
%%
|
||||
%% This file has been provided to Doxygen team courtesy of the
|
||||
%% author for benefit of users having a LaTeX installation not
|
||||
%% yet providing version 1.2a or later of etoc, whose
|
||||
%% deeplevels feature is required.
|
||||
%%
|
||||
%% The original source etoc.dtx (only of the latest version at
|
||||
%% any given time) is available at
|
||||
%%
|
||||
%% https://ctan.org/pkg/etoc
|
||||
%%
|
||||
%% and contains the terms for copying and modification as well
|
||||
%% as author contact information.
|
||||
%%
|
||||
%% In brief any modified versions of this file must be renamed
|
||||
%% with new filenames distinct from etoc.sty.
|
||||
%%
|
||||
%% Package: etoc
|
||||
%% Version: 1.2b
|
||||
%% License: LPPL 1.3c
|
||||
%% Copyright (C) 2012-2023 Jean-Francois B. <user jfbu at github>
|
||||
\NeedsTeXFormat{LaTeX2e}[2003/12/01]
|
||||
\ProvidesPackage{etoc_doxygen}[2023/07/01 v1.2b Completely customisable TOCs (JFB)]
|
||||
\newif\ifEtoc@oldLaTeX
|
||||
\@ifl@t@r\fmtversion{2020/10/01}
|
||||
{}
|
||||
{\Etoc@oldLaTeXtrue
|
||||
\PackageInfo{etoc}{Old LaTeX (\fmtversion) detected!\MessageBreak
|
||||
Since 1.1a (2023/01/14), etoc prefers LaTeX at least\MessageBreak
|
||||
as recent as 2020-10-01, for reasons of the .toc file,\MessageBreak
|
||||
and used to require it (from 1.1a to 1.2).\MessageBreak
|
||||
This etoc (1.2b) does not *require* it, but has not been\MessageBreak
|
||||
tested thoroughly on old LaTeX (especially if document\MessageBreak
|
||||
does not use hyperref) and retrofitting was done only\MessageBreak
|
||||
on basis of author partial remembrances of old context.\MessageBreak
|
||||
Reported}}
|
||||
\RequirePackage{kvoptions}
|
||||
\SetupKeyvalOptions{prefix=Etoc@}
|
||||
\newif\ifEtoc@lof
|
||||
\DeclareVoidOption{lof}{\Etoc@loftrue
|
||||
\PackageInfo{etoc}{Experimental support for \string\locallistoffigures.\MessageBreak
|
||||
Barely tested, use at own risk}%
|
||||
}
|
||||
\newif\ifEtoc@lot
|
||||
\DeclareVoidOption{lot}{\Etoc@lottrue
|
||||
\PackageInfo{etoc}{Experimental support for \string\locallistoftables.\MessageBreak
|
||||
Barely tested, use at own risk}%
|
||||
}
|
||||
\@ifclassloaded{memoir}{
|
||||
\PackageInfo{etoc}
|
||||
{As this is with memoir class, all `...totoc' options\MessageBreak
|
||||
are set true by default. Reported}
|
||||
\DeclareBoolOption[true]{maintoctotoc}
|
||||
\DeclareBoolOption[true]{localtoctotoc}
|
||||
\DeclareBoolOption[true]{localloftotoc}
|
||||
\DeclareBoolOption[true]{locallottotoc}
|
||||
}{
|
||||
\DeclareBoolOption[false]{maintoctotoc}
|
||||
\DeclareBoolOption[false]{localtoctotoc}
|
||||
\DeclareBoolOption[false]{localloftotoc}
|
||||
\DeclareBoolOption[false]{locallottotoc}
|
||||
}
|
||||
\DeclareBoolOption[true]{ouroboros}
|
||||
\DeclareBoolOption[false]{deeplevels}
|
||||
\DeclareDefaultOption{\PackageWarning{etoc}{Option `\CurrentOption' is unknown.}}
|
||||
\ProcessKeyvalOptions*
|
||||
\DisableKeyvalOption[action=error,package=etoc]{etoc}{lof}
|
||||
\DisableKeyvalOption[action=error,package=etoc]{etoc}{lot}
|
||||
\DisableKeyvalOption[action=error,package=etoc]{etoc}{deeplevels}
|
||||
\def\etocsetup#1{\setkeys{etoc}{#1}}
|
||||
\def\etocifmaintoctotoc{\ifEtoc@maintoctotoc
|
||||
\expandafter\@firstoftwo
|
||||
\else
|
||||
\expandafter\@secondoftwo
|
||||
\fi}
|
||||
\def\etociflocaltoctotoc{\ifEtoc@localtoctotoc
|
||||
\expandafter\@firstoftwo
|
||||
\else
|
||||
\expandafter\@secondoftwo
|
||||
\fi}
|
||||
\def\etociflocalloftotoc{\ifEtoc@localloftotoc
|
||||
\expandafter\@firstoftwo
|
||||
\else
|
||||
\expandafter\@secondoftwo
|
||||
\fi}
|
||||
\def\etociflocallottotoc{\ifEtoc@locallottotoc
|
||||
\expandafter\@firstoftwo
|
||||
\else
|
||||
\expandafter\@secondoftwo
|
||||
\fi}
|
||||
\RequirePackage{multicol}
|
||||
\def\etoc@{\etoc@}
|
||||
\long\def\Etoc@gobtoetoc@ #1\etoc@{}
|
||||
\newtoks\Etoc@toctoks
|
||||
\def\Etoc@par{\par}
|
||||
\def\etocinline{\def\Etoc@par{}}
|
||||
\let\etocnopar\etocinline
|
||||
\def\etocdisplay{\def\Etoc@par{\par}}
|
||||
\let\Etoc@global\@empty
|
||||
\def\etocglobaldefs{\let\Etoc@global\global\let\tof@global\global}
|
||||
\def\etoclocaldefs {\let\Etoc@global\@empty\let\tof@global\@empty}
|
||||
\newif\ifEtoc@numbered
|
||||
\newif\ifEtoc@hyperref
|
||||
\newif\ifEtoc@parskip
|
||||
\newif\ifEtoc@tocwithid
|
||||
\newif\ifEtoc@standardlines
|
||||
\newif\ifEtoc@etocstyle
|
||||
\newif\ifEtoc@classstyle
|
||||
\newif\ifEtoc@keeporiginaltoc
|
||||
\newif\ifEtoc@skipprefix
|
||||
\newif\ifEtoc@isfirst
|
||||
\newif\ifEtoc@localtoc
|
||||
\newif\ifEtoc@skipthisone
|
||||
\newif\ifEtoc@stoptoc
|
||||
\newif\ifEtoc@notactive
|
||||
\newif\ifEtoc@mustclosegroup
|
||||
\newif\ifEtoc@isemptytoc
|
||||
\newif\ifEtoc@checksemptiness
|
||||
\def\etocchecksemptiness {\Etoc@checksemptinesstrue }
|
||||
\def\etocdoesnotcheckemptiness {\Etoc@checksemptinessfalse }
|
||||
\newif\ifEtoc@notocifnotoc
|
||||
\def\etocnotocifnotoc {\Etoc@checksemptinesstrue\Etoc@notocifnotoctrue }
|
||||
\newcounter{etoc@tocid}
|
||||
\def\Etoc@tocext{toc}
|
||||
\def\Etoc@lofext{lof}
|
||||
\def\Etoc@lotext{lot}
|
||||
\let\Etoc@currext\Etoc@tocext
|
||||
\def\etocifislocal{\ifEtoc@localtoc\expandafter\@firstoftwo\else
|
||||
\expandafter\@secondoftwo\fi
|
||||
}
|
||||
\def\etocifislocaltoc{\etocifislocal{\ifx\Etoc@currext\Etoc@tocext
|
||||
\expandafter\@firstoftwo\else
|
||||
\expandafter\@secondoftwo\fi}%
|
||||
{\@secondoftwo}%
|
||||
}
|
||||
\def\etocifislocallof{\etocifislocal{\ifx\Etoc@currext\Etoc@lofext
|
||||
\expandafter\@firstoftwo\else
|
||||
\expandafter\@secondoftwo\fi}%
|
||||
{\@secondoftwo}%
|
||||
}
|
||||
\def\etocifislocallot{\etocifislocal{\ifx\Etoc@currext\Etoc@lotext
|
||||
\expandafter\@firstoftwo\else
|
||||
\expandafter\@secondoftwo\fi}%
|
||||
{\@secondoftwo}%
|
||||
}
|
||||
\expandafter\def\csname Etoc@-3@@\endcsname {-\thr@@}
|
||||
\expandafter\def\csname Etoc@-2@@\endcsname {-\tw@}
|
||||
\expandafter\let\csname Etoc@-1@@\endcsname \m@ne
|
||||
\expandafter\let\csname Etoc@0@@\endcsname \z@
|
||||
\expandafter\let\csname Etoc@1@@\endcsname \@ne
|
||||
\expandafter\let\csname Etoc@2@@\endcsname \tw@
|
||||
\expandafter\let\csname Etoc@3@@\endcsname \thr@@
|
||||
\expandafter\chardef\csname Etoc@4@@\endcsname 4
|
||||
\expandafter\chardef\csname Etoc@5@@\endcsname 5
|
||||
\expandafter\chardef\csname Etoc@6@@\endcsname 6
|
||||
\ifEtoc@deeplevels
|
||||
\expandafter\chardef\csname Etoc@7@@\endcsname 7
|
||||
\expandafter\chardef\csname Etoc@8@@\endcsname 8
|
||||
\expandafter\chardef\csname Etoc@9@@\endcsname 9
|
||||
\expandafter\chardef\csname Etoc@10@@\endcsname 10
|
||||
\expandafter\chardef\csname Etoc@11@@\endcsname 11
|
||||
\expandafter\chardef\csname Etoc@12@@\endcsname 12
|
||||
\fi
|
||||
\expandafter\let\expandafter\Etoc@maxlevel
|
||||
\csname Etoc@\ifEtoc@deeplevels12\else6\fi @@\endcsname
|
||||
\edef\etocthemaxlevel{\number\Etoc@maxlevel}
|
||||
\@ifclassloaded{memoir}{\def\Etoc@minf{-\thr@@}}{\def\Etoc@minf{-\tw@}}
|
||||
\let\Etoc@none@@ \Etoc@minf
|
||||
\expandafter\let\expandafter\Etoc@all@@
|
||||
\csname Etoc@\ifEtoc@deeplevels11\else5\fi @@\endcsname
|
||||
\let\Etoc@dolevels\@empty
|
||||
\def\Etoc@newlevel #1{\expandafter\def\expandafter\Etoc@dolevels\expandafter
|
||||
{\Etoc@dolevels\Etoc@do{#1}}}
|
||||
\ifdefined\expanded
|
||||
\def\etocsetlevel#1#2{\expanded{\noexpand\etoc@setlevel{#1}{#2}}}%
|
||||
\else
|
||||
\def\etocsetlevel#1#2{{\edef\Etoc@tmp{\noexpand\etoc@setlevel{#1}{#2}}\expandafter}\Etoc@tmp}%
|
||||
\fi
|
||||
\def\etoc@setlevel#1#2{%
|
||||
\edef\Etoc@tmp{\the\numexpr#2}%
|
||||
\if1\ifnum\Etoc@tmp>\Etoc@maxlevel0\fi\unless\ifnum\Etoc@minf<\Etoc@tmp;\fi1%
|
||||
\ifEtoc@deeplevels
|
||||
\in@{.#1,}{.none,.all,.figure,.table,.-3,.-2,.-1,.0,.1,.2,.3,.4,.5,.6,%
|
||||
.7,.8,.9,.10,.11,.12,}%
|
||||
\else
|
||||
\in@{.#1,}{.none,.all,.figure,.table,.-3,.-2,.-1,.0,.1,.2,.3,.4,.5,.6,}%
|
||||
\fi
|
||||
\ifin@\else\if\@car#1\@nil @\in@true\fi\fi
|
||||
\ifin@
|
||||
\PackageWarning{etoc}
|
||||
{Sorry, but `#1' is forbidden as level name.\MessageBreak
|
||||
\if\@car#1\@nil @%
|
||||
(because of the @ as first character)\MessageBreak\fi
|
||||
Reported}%
|
||||
\else
|
||||
\etocifunknownlevelTF{#1}{\Etoc@newlevel{#1}}{}%
|
||||
\expandafter\let\csname Etoc@#1@@\expandafter\endcsname
|
||||
\csname Etoc@\Etoc@tmp @@\endcsname
|
||||
\expandafter\edef\csname Etoc@@#1@@\endcsname
|
||||
{\expandafter\noexpand\csname Etoc@#1@@\endcsname}%
|
||||
\expandafter\edef\csname toclevel@@#1\endcsname
|
||||
{\expandafter\noexpand\csname toclevel@#1\endcsname}%
|
||||
\fi
|
||||
\else
|
||||
\PackageWarning{etoc}
|
||||
{Argument `\detokenize{#2}' of \string\etocsetlevel\space should
|
||||
represent one of\MessageBreak
|
||||
\ifnum\Etoc@minf=-\thr@@-2, \fi-1, 0, 1, 2, \ifEtoc@deeplevels ...\else3, 4\fi,
|
||||
\the\numexpr\Etoc@maxlevel-1, or \number\Etoc@maxlevel\space
|
||||
but evaluates to \Etoc@tmp.\MessageBreak
|
||||
The level of `#1' will be set to \number\Etoc@maxlevel.\MessageBreak
|
||||
Tables of contents will ignore `#1' as long\MessageBreak
|
||||
as its level is \number\Etoc@maxlevel\space (=\string\etocthemaxlevel).%
|
||||
\MessageBreak
|
||||
Reported}%
|
||||
\etocifunknownlevelTF{#1}{\Etoc@newlevel{#1}}{}%
|
||||
\expandafter\let\csname Etoc@#1@@\endcsname\Etoc@maxlevel
|
||||
\fi
|
||||
}
|
||||
\def\etoclevel#1{\csname Etoc@#1@@\endcsname}
|
||||
\def\etocthelevel#1{\number\csname Etoc@#1@@\endcsname}
|
||||
\def\etocifunknownlevelTF#1{\@ifundefined{Etoc@#1@@}}
|
||||
\@ifclassloaded{memoir}{\etocsetlevel{book}{-2}}{}
|
||||
\etocsetlevel{part}{-1}
|
||||
\etocsetlevel{chapter}{0}
|
||||
\etocsetlevel{section}{1}
|
||||
\etocsetlevel{subsection}{2}
|
||||
\etocsetlevel{subsubsection}{3}
|
||||
\etocsetlevel{paragraph}{4}
|
||||
\etocsetlevel{subparagraph}{5}
|
||||
\ifdefined\c@chapter
|
||||
\etocsetlevel{appendix}{0}
|
||||
\else
|
||||
\etocsetlevel{appendix}{1}
|
||||
\fi
|
||||
\def\Etoc@do#1{\@namedef{l@@#1}{\csname l@#1\endcsname}}
|
||||
\Etoc@dolevels
|
||||
\let\Etoc@figure@@\Etoc@maxlevel
|
||||
\let\Etoc@table@@ \Etoc@maxlevel
|
||||
\let\Etoc@gobblethreeorfour\@gobblefour
|
||||
\ifdefined\@gobblethree
|
||||
\let\Etoc@gobblethree\@gobblethree
|
||||
\else
|
||||
\long\def\Etoc@gobblethree#1#2#3{}%
|
||||
\fi
|
||||
\AtBeginDocument{%
|
||||
\@ifpackageloaded{parskip}{\Etoc@parskiptrue}{}%
|
||||
\@ifpackageloaded{hyperref}
|
||||
{\Etoc@hyperreftrue}
|
||||
{\ifEtoc@oldLaTeX
|
||||
\let\Etoc@gobblethreeorfour\Etoc@gobblethree
|
||||
\let\Etoc@etoccontentsline@fourargs\Etoc@etoccontentsline@
|
||||
\long\def\Etoc@etoccontentsline@#1#2#3{%
|
||||
\Etoc@etoccontentsline@fourargs{#1}{#2}{#3}{}%
|
||||
}%
|
||||
\fi
|
||||
}%
|
||||
}
|
||||
\def\etocskipfirstprefix {\global\Etoc@skipprefixtrue }
|
||||
\def\Etoc@updatestackofends#1\etoc@{\gdef\Etoc@stackofends{#1}}
|
||||
\def\Etoc@stackofends{{-3}{}}
|
||||
\def\Etoc@doendsandbegin{%
|
||||
\expandafter\Etoc@traversestackofends\Etoc@stackofends\etoc@
|
||||
}
|
||||
\def\Etoc@traversestackofends#1{%
|
||||
\ifnum#1>\Etoc@level
|
||||
\csname Etoc@end@#1\endcsname
|
||||
\expandafter\Etoc@traversestackofends
|
||||
\else
|
||||
\Etoc@traversestackofends@done{#1}%
|
||||
\fi
|
||||
}
|
||||
\def\Etoc@traversestackofends@done#1#2{#2%
|
||||
\ifnum#1<\Etoc@level
|
||||
\csname Etoc@begin@\the\numexpr\Etoc@level\endcsname
|
||||
\Etoc@global\Etoc@isfirsttrue
|
||||
\edef\Etoc@tmp{{\the\numexpr\Etoc@level}}%
|
||||
\else
|
||||
\Etoc@global\Etoc@isfirstfalse
|
||||
\let\Etoc@tmp\@empty
|
||||
\fi
|
||||
\expandafter\Etoc@updatestackofends\Etoc@tmp{#1}%
|
||||
}
|
||||
\def\Etoc@etoccontentsline #1{%
|
||||
\let\Etoc@next\Etoc@gobblethreeorfour
|
||||
\ifnum\csname Etoc@#1@@\endcsname=\Etoc@maxlevel
|
||||
\else
|
||||
\Etoc@skipthisonefalse
|
||||
\global\expandafter\let\expandafter\Etoc@level\csname Etoc@#1@@\endcsname
|
||||
\if @\@car#1\@nil\else\global\let\Etoc@virtualtop\Etoc@level\fi
|
||||
\ifEtoc@localtoc
|
||||
\ifEtoc@stoptoc
|
||||
\Etoc@skipthisonetrue
|
||||
\else
|
||||
\ifEtoc@notactive
|
||||
\Etoc@skipthisonetrue
|
||||
\else
|
||||
\unless\ifnum\Etoc@level>\etoclocaltop
|
||||
\Etoc@skipthisonetrue
|
||||
\global\Etoc@stoptoctrue
|
||||
\fi
|
||||
\fi
|
||||
\fi
|
||||
\fi
|
||||
\ifEtoc@skipthisone
|
||||
\else
|
||||
\unless\ifnum\Etoc@level>\c@tocdepth
|
||||
\ifEtoc@standardlines
|
||||
\let\Etoc@next\Etoc@savedcontentsline
|
||||
\else
|
||||
\let\Etoc@next\Etoc@etoccontentsline@
|
||||
\fi
|
||||
\fi
|
||||
\fi
|
||||
\fi
|
||||
\Etoc@next{#1}%
|
||||
}
|
||||
\def\Etoc@etoccontentsline@ #1#2#3#4{%
|
||||
\Etoc@doendsandbegin
|
||||
\Etoc@global\edef\Etoc@prefix {\expandafter\noexpand
|
||||
\csname Etoc@prefix@\the\numexpr\Etoc@level\endcsname }%
|
||||
\Etoc@global\edef\Etoc@contents{\expandafter\noexpand
|
||||
\csname Etoc@contents@\the\numexpr\Etoc@level\endcsname }%
|
||||
\ifEtoc@skipprefix \Etoc@global\def\Etoc@prefix{\@empty}\fi
|
||||
\global\Etoc@skipprefixfalse
|
||||
\Etoc@lxyz{#2}{#3}{#4}%
|
||||
\Etoc@prefix
|
||||
\Etoc@contents
|
||||
}
|
||||
\def\Etoc@lxyz #1#2#3{%
|
||||
\ifEtoc@hyperref
|
||||
\Etoc@global\def\etocthelink##1{\hyperlink{#3}{##1}}%
|
||||
\else
|
||||
\Etoc@global\let\etocthelink\@firstofone
|
||||
\fi
|
||||
\Etoc@global\def\etocthepage {#2}%
|
||||
\ifEtoc@hyperref
|
||||
\ifx\etocthepage\@empty
|
||||
\Etoc@global\let\etocthelinkedpage\@empty
|
||||
\else
|
||||
\Etoc@global\def\etocthelinkedpage{\hyperlink {#3}{#2}}%
|
||||
\fi
|
||||
\else
|
||||
\Etoc@global\let\etocthelinkedpage\etocthepage
|
||||
\fi
|
||||
\Etoc@global\def\etocthename{#1}%
|
||||
\futurelet\Etoc@getnb@token\Etoc@@getnb #1\hspace\etoc@
|
||||
\ifEtoc@hyperref
|
||||
\def\Etoc@tmp##1##2{\Etoc@global\def##2{\hyperlink{#3}{##1}}}%
|
||||
\expandafter\Etoc@tmp\expandafter{\etocthename}\etocthelinkedname
|
||||
\ifEtoc@numbered
|
||||
\expandafter\Etoc@tmp\expandafter{\etocthenumber}\etocthelinkednumber
|
||||
\else
|
||||
\Etoc@global\let\etocthelinkednumber\@empty
|
||||
\fi
|
||||
\else
|
||||
\Etoc@global\let\etocthelinkedname \etocthename
|
||||
\Etoc@global\let\etocthelinkednumber\etocthenumber
|
||||
\fi
|
||||
\Etoc@global\expandafter\let\csname etoclink \endcsname \etocthelink
|
||||
\Etoc@global\expandafter\let\csname etocname \endcsname \etocthename
|
||||
\Etoc@global\expandafter\let\csname etocnumber \endcsname\etocthenumber
|
||||
\Etoc@global\expandafter\let\csname etocpage \endcsname \etocthepage
|
||||
\ifEtoc@hyperref
|
||||
\Etoc@lxyz@linktoc
|
||||
\fi
|
||||
}
|
||||
\def\Etoc@lxyz@linktoc{%
|
||||
\ifcase\Hy@linktoc
|
||||
\or
|
||||
\Etoc@global\expandafter\let\csname etocname \endcsname\etocthelinkedname
|
||||
\Etoc@global\expandafter\let\csname etocnumber \endcsname\etocthelinkednumber
|
||||
\or % page
|
||||
\Etoc@global\expandafter\let\csname etocpage \endcsname\etocthelinkedpage
|
||||
\else % all
|
||||
\Etoc@global\expandafter\let\csname etocname \endcsname\etocthelinkedname
|
||||
\Etoc@global\expandafter\let\csname etocnumber \endcsname\etocthelinkednumber
|
||||
\Etoc@global\expandafter\let\csname etocpage \endcsname\etocthelinkedpage
|
||||
\fi
|
||||
}
|
||||
\def\Etoc@@getnb {%
|
||||
\let\Etoc@next\Etoc@getnb
|
||||
\ifx\Etoc@getnb@token\@sptoken\let\Etoc@next\Etoc@getnb@nonbr\fi
|
||||
\ifx\Etoc@getnb@token\bgroup \let\Etoc@next\Etoc@getnb@nonbr\fi
|
||||
\Etoc@next
|
||||
}
|
||||
\def\Etoc@getnb #1{%
|
||||
\in@{#1}{\numberline\chapternumberline\partnumberline\booknumberline}%
|
||||
\ifin@
|
||||
\let\Etoc@next\Etoc@getnb@nmbrd
|
||||
\else
|
||||
\ifnum\Etoc@level=\m@ne
|
||||
\let\Etoc@next\Etoc@@getit
|
||||
\else
|
||||
\let\Etoc@next\Etoc@getnb@nonbr
|
||||
\fi
|
||||
\in@{#1}{\nonumberline}%
|
||||
\ifin@
|
||||
\let\Etoc@next\Etoc@getnb@nonumberline
|
||||
\fi
|
||||
\fi
|
||||
\Etoc@next #1%
|
||||
}
|
||||
\def\Etoc@getnb@nmbrd #1#2{%
|
||||
\Etoc@global\Etoc@numberedtrue
|
||||
\Etoc@global\def\etocthenumber {#2}%
|
||||
\Etoc@getnb@nmbrd@getname\@empty
|
||||
}%
|
||||
\def\Etoc@getnb@nmbrd@getname #1\hspace\etoc@ {%
|
||||
\Etoc@global\expandafter\def\expandafter\etocthename\expandafter{#1}%
|
||||
}
|
||||
\def\Etoc@getnb@nonbr #1\etoc@ {%
|
||||
\Etoc@global\Etoc@numberedfalse
|
||||
\Etoc@global\let\etocthenumber \@empty
|
||||
}
|
||||
\def\Etoc@getnb@nonumberline #1\hspace\etoc@ {%
|
||||
\Etoc@global\Etoc@numberedfalse
|
||||
\Etoc@global\let\etocthenumber \@empty
|
||||
\Etoc@global\expandafter\def\expandafter\etocthename\expandafter{\@gobble#1}%
|
||||
}
|
||||
\def\Etoc@@getit #1\hspace#2{%
|
||||
\ifx\etoc@#2%
|
||||
\Etoc@global\Etoc@numberedfalse
|
||||
\Etoc@global\let\etocthenumber \@empty
|
||||
\else
|
||||
\Etoc@global\Etoc@numberedtrue
|
||||
\Etoc@global\def\etocthenumber {#1}%
|
||||
\expandafter\Etoc@getit@getname \expandafter\@empty
|
||||
\fi
|
||||
}
|
||||
\def\Etoc@getit@getname #1\hspace\etoc@ {%
|
||||
\Etoc@global\expandafter\def\expandafter\etocthename\expandafter{#1}%
|
||||
}
|
||||
\let\etocthename \@empty
|
||||
\let\etocthenumber \@empty
|
||||
\let\etocthepage \@empty
|
||||
\let\etocthelinkedname \@empty
|
||||
\let\etocthelinkednumber \@empty
|
||||
\let\etocthelinkedpage \@empty
|
||||
\let\etocthelink \@firstofone
|
||||
\DeclareRobustCommand*{\etocname} {}
|
||||
\DeclareRobustCommand*{\etocnumber}{}
|
||||
\DeclareRobustCommand*{\etocpage} {}
|
||||
\DeclareRobustCommand*{\etoclink} {\@firstofone}
|
||||
\DeclareRobustCommand*{\etocifnumbered}
|
||||
{\ifEtoc@numbered\expandafter\@firstoftwo\else\expandafter\@secondoftwo\fi}
|
||||
\expandafter\let\expandafter\etocxifnumbered\csname etocifnumbered \endcsname
|
||||
\DeclareRobustCommand*{\etociffirst}
|
||||
{\ifEtoc@isfirst\expandafter\@firstoftwo\else\expandafter\@secondoftwo\fi}
|
||||
\expandafter\let\expandafter\etocxiffirst\csname etociffirst \endcsname
|
||||
\def\Etoc@readtoc {%
|
||||
\ifeof \Etoc@tf
|
||||
\else
|
||||
\read \Etoc@tf to \Etoc@buffer
|
||||
\Etoc@toctoks=\expandafter\expandafter\expandafter
|
||||
{\expandafter\the\expandafter\Etoc@toctoks\Etoc@buffer}%
|
||||
\expandafter\Etoc@readtoc
|
||||
\fi
|
||||
}
|
||||
\Etoc@toctoks {}% (superfluous, but for clarity)
|
||||
\AtBeginDocument{\IfFileExists{\jobname.toc}
|
||||
{{\endlinechar=\m@ne
|
||||
\makeatletter
|
||||
\newread\Etoc@tf
|
||||
\openin\Etoc@tf\@filef@und
|
||||
\Etoc@readtoc
|
||||
\global\Etoc@toctoks=\expandafter{\the\Etoc@toctoks}%
|
||||
\closein\Etoc@tf}}
|
||||
{\typeout{No file \jobname.toc.}}}
|
||||
\def\Etoc@openouttoc{%
|
||||
\ifEtoc@hyperref
|
||||
\ifx\hyper@last\@undefined
|
||||
\IfFileExists{\jobname .toc}
|
||||
{\Hy@WarningNoLine
|
||||
{old toc file detected; run LaTeX again (cheers from `etoc')}%
|
||||
\global\Etoc@toctoks={}%
|
||||
}
|
||||
{}%
|
||||
\fi
|
||||
\fi
|
||||
\if@filesw
|
||||
\newwrite \tf@toc
|
||||
\immediate \openout \tf@toc \jobname .toc\relax
|
||||
\fi
|
||||
\global\let\Etoc@openouttoc\empty
|
||||
}
|
||||
\def\Etoc@toctoc{%
|
||||
\gdef\Etoc@stackofends{{-3}{}}%
|
||||
\global\let\Etoc@level\Etoc@minf
|
||||
\global\let\Etoc@virtualtop\Etoc@minf
|
||||
\the\Etoc@toctoks
|
||||
\ifEtoc@notactive
|
||||
\else
|
||||
\gdef\Etoc@level{-\thr@@}%
|
||||
\Etoc@doendsandbegin
|
||||
\fi
|
||||
}
|
||||
\def\Etoc@@startlocaltoc#1#2{%
|
||||
\ifEtoc@localtoc
|
||||
\ifnum #1=#2\relax
|
||||
\global\let\etoclocaltop\Etoc@virtualtop
|
||||
\Etoc@@startlocaltochook
|
||||
\etoclocaltableofcontentshook
|
||||
\ifEtoc@etocstyle
|
||||
\etocetoclocaltocmaketitle
|
||||
\fi
|
||||
\ifx\Etoc@aftertitlehook\@empty
|
||||
\else
|
||||
\ifEtoc@localtoctotoc
|
||||
\ifEtoc@ouroboros
|
||||
\else
|
||||
\let\Etoc@tmp\contentsline
|
||||
\def\contentsline{\let\contentsline\Etoc@tmp\Etoc@gobblethreeorfour}%
|
||||
\fi
|
||||
\fi
|
||||
\fi
|
||||
\global\Etoc@notactivefalse
|
||||
\fi
|
||||
\fi
|
||||
}
|
||||
\let\etoc@startlocaltoc\@gobble
|
||||
\let\Etoc@@startlocaltoc@toc\Etoc@@startlocaltoc
|
||||
\let\Etoc@@startlocaltochook\@empty
|
||||
\unless\ifEtoc@deeplevels
|
||||
\def\etocdivisionnameatlevel#1{%
|
||||
\ifcase\numexpr#1\relax
|
||||
\ifdefined\c@chapter chapter\else section\fi%
|
||||
\or section%
|
||||
\or subsection%
|
||||
\or subsubsection%
|
||||
\or paragraph%
|
||||
\or subparagraph%
|
||||
\or empty%
|
||||
\else\ifnum\numexpr#1<\m@ne
|
||||
book%
|
||||
\else
|
||||
part%
|
||||
\fi
|
||||
\fi
|
||||
}
|
||||
\else
|
||||
\def\etocdivisionnameatlevel#1{%
|
||||
\ifcase\numexpr#1\relax
|
||||
\ifdefined\c@chapter chapter\else section\fi%
|
||||
\or section%
|
||||
\or subsection%
|
||||
\or subsubsection%
|
||||
\or subsubsubsection%
|
||||
\or subsubsubsubsection%
|
||||
\or subsubsubsubsubsection%
|
||||
\or subsubsubsubsubsubsection%
|
||||
\or paragraph%
|
||||
\or subparagraph%
|
||||
\else\ifnum\numexpr#1>\z@
|
||||
empty%
|
||||
\else\ifnum\numexpr#1=\m@ne
|
||||
part%
|
||||
\else
|
||||
book%
|
||||
\fi\fi
|
||||
\fi
|
||||
}
|
||||
\fi
|
||||
\def\etoclocalheadtotoc#1#2{\addcontentsline{toc}{@#1}{#2}}
|
||||
\def\etocglobalheadtotoc{\addcontentsline{toc}}
|
||||
\providecommand*\UseName{\@nameuse}
|
||||
\def\etocetoclocaltocmaketitle{%
|
||||
\UseName{\etocdivisionnameatlevel{\etoclocaltop+1}}*{\localcontentsname}%
|
||||
\if@noskipsec\leavevmode\par\fi
|
||||
\etociflocaltoctotoc
|
||||
{\etocifisstarred
|
||||
{}% star variant, do not add to toc
|
||||
{\etoclocalheadtotoc
|
||||
{\etocdivisionnameatlevel{\etoclocaltop+1}}%
|
||||
{\localcontentsname}%
|
||||
}%
|
||||
}%
|
||||
{}%
|
||||
}%
|
||||
\def\localcontentsname {\contentsname}%
|
||||
\let\etoclocaltableofcontentshook\@empty
|
||||
\if1\ifEtoc@lof0\fi\ifEtoc@lot0\fi1%
|
||||
\else
|
||||
\AtBeginDocument{%
|
||||
\let\Etoc@originaladdcontentsline\addcontentsline
|
||||
\def\addcontentsline{\Etoc@hackedaddcontentsline}%
|
||||
}%
|
||||
\fi
|
||||
\ifEtoc@lof
|
||||
\ifEtoc@lot
|
||||
\def\Etoc@hackedaddcontentsline#1{%
|
||||
\expanded{\noexpand\in@{.#1,}}{.lof,.lot,}%
|
||||
\ifin@\expandafter\Etoc@hackedaddcontentsline@i
|
||||
\else\expandafter\Etoc@originaladdcontentsline
|
||||
\fi {#1}}
|
||||
\else
|
||||
\def\Etoc@hackedaddcontentsline#1{%
|
||||
\expanded{\noexpand\in@{.#1,}}{.lof,}%
|
||||
\ifin@\expandafter\Etoc@hackedaddcontentsline@i
|
||||
\else\expandafter\Etoc@originaladdcontentsline
|
||||
\fi {#1}}
|
||||
\fi
|
||||
\else
|
||||
\def\Etoc@hackedaddcontentsline#1{%
|
||||
\expanded{\noexpand\in@{.#1,}}{.lot,}%
|
||||
\ifin@\expandafter\Etoc@hackedaddcontentsline@i
|
||||
\else\expandafter\Etoc@originaladdcontentsline
|
||||
\fi {#1}}
|
||||
\fi
|
||||
\def\Etoc@hackedaddcontentsline@i#1#2#3{%
|
||||
\expanded{\noexpand\in@{.#1;#2,}}{.lof;figure,.lot;table,}%
|
||||
\ifin@
|
||||
\addtocontents {toc}{%
|
||||
\protect\contentsline{#2}{#3}{\thepage}{\ifEtoc@hyperref\@currentHref\fi}%
|
||||
\ifdefined\protected@file@percent\protected@file@percent\fi
|
||||
}%
|
||||
\fi
|
||||
\Etoc@originaladdcontentsline{#1}{#2}{#3}%
|
||||
}
|
||||
\unless\ifdefined\expanded
|
||||
\def\Etoc@hackedaddcontentsline#1{%
|
||||
{\edef\Etoc@tmp{\noexpand\in@{.#1,}{\ifEtoc@lof.lof,\fi\ifEtoc@lot.lot,\fi}}\expandafter}%
|
||||
\Etoc@tmp
|
||||
\ifin@\expandafter\Etoc@hackedaddcontentsline@i
|
||||
\else\expandafter\Etoc@originaladdcontentsline
|
||||
\fi {#1}%
|
||||
}
|
||||
\def\Etoc@hackedaddcontentsline@i#1#2#3{%
|
||||
{\edef\Etoc@tmp{\noexpand\in@{.#1;#2,}}\expandafter}%
|
||||
\Etoc@tmp{.lof;figure,.lot;table,}%
|
||||
\ifin@
|
||||
\addtocontents {toc}{%
|
||||
\protect\contentsline{#2}{#3}{\thepage}{\ifEtoc@hyperref\@currentHref\fi}%
|
||||
\ifdefined\protected@file@percent\protected@file@percent\fi
|
||||
}%
|
||||
\fi
|
||||
\Etoc@originaladdcontentsline{#1}{#2}{#3}%
|
||||
}
|
||||
\fi
|
||||
\def\Etoc@@startlocallistof#1#2#3{%
|
||||
\ifEtoc@localtoc
|
||||
\ifnum #2=#3\relax
|
||||
\global\let\etoclocaltop\Etoc@virtualtop
|
||||
\global\Etoc@notactivefalse
|
||||
\Etoc@@startlocaltochook
|
||||
\csname etoclocallistof#1shook\endcsname
|
||||
\ifEtoc@etocstyle
|
||||
\csname etocetoclistof#1smaketitle\endcsname
|
||||
\fi
|
||||
\fi
|
||||
\fi
|
||||
}
|
||||
\def\Etoc@@startlocallistof@setlevels#1{%
|
||||
\ifnum\etoclocaltop<\z@
|
||||
\expandafter\let\csname Etoc@#1@@\endcsname\@ne
|
||||
\else
|
||||
\expandafter\let\csname Etoc@#1@@\expandafter\endcsname
|
||||
\csname Etoc@\the\numexpr\etoclocaltop+\@ne @@\endcsname
|
||||
\fi
|
||||
\def\Etoc@do##1{%
|
||||
\ifnum\etoclevel{##1}>\etoclocaltop
|
||||
\expandafter\let\csname Etoc@##1@@\endcsname\Etoc@maxlevel
|
||||
\fi}%
|
||||
\Etoc@dolevels
|
||||
}
|
||||
\def\etoclocallistoffigureshook{\etocstandardlines}
|
||||
\def\etoclocallistoftableshook {\etocstandardlines}
|
||||
\def\locallistfigurename{\listfigurename}
|
||||
\def\locallisttablename {\listtablename}
|
||||
\def\etocetoclistoffiguresmaketitle{%
|
||||
\UseName{\etocdivisionnameatlevel{\etoclocaltop+1}}*{\locallistfigurename}%
|
||||
\ifnum\etoclocaltop>\tw@\mbox{}\par\fi
|
||||
\etociflocalloftotoc
|
||||
{\etocifisstarred
|
||||
{}% star variant, do not add to toc
|
||||
{\etoclocalheadtotoc
|
||||
{\etocdivisionnameatlevel{\etoclocaltop+1}}%
|
||||
{\locallistfigurename}%
|
||||
}%
|
||||
}%
|
||||
{}%
|
||||
}%
|
||||
\def\etocetoclistoftablesmaketitle{%
|
||||
\UseName{\etocdivisionnameatlevel{\etoclocaltop+1}}*{\locallisttablename}%
|
||||
\ifnum\etoclocaltop>\tw@\mbox{}\par\fi
|
||||
\etociflocallottotoc
|
||||
{\etocifisstarred
|
||||
{}% star variant, do not add to toc
|
||||
{\etoclocalheadtotoc
|
||||
{\etocdivisionnameatlevel{\etoclocaltop+1}}%
|
||||
{\locallisttablename}%
|
||||
}%
|
||||
}%
|
||||
{}%
|
||||
}%
|
||||
\let\Etoc@listofreset\@empty
|
||||
\ifEtoc@lof
|
||||
\def\locallistoffigures{%
|
||||
\def\Etoc@listofreset{%
|
||||
\let\Etoc@currext\Etoc@tocext
|
||||
\let\Etoc@@startlocaltoc\Etoc@@startlocaltoc@toc
|
||||
\let\Etoc@@startlocaltochook\@empty
|
||||
\let\Etoc@listofreset\@empty
|
||||
\let\Etoc@listofhook\@empty
|
||||
}%
|
||||
\let\Etoc@currext\Etoc@lofext
|
||||
\def\Etoc@@startlocaltoc{\Etoc@@startlocallistof{figure}}%
|
||||
\def\Etoc@@startlocaltochook{\Etoc@@startlocallistof@setlevels{figure}}%
|
||||
\def\Etoc@listofhook{%
|
||||
\def\Etoc@do####1{%
|
||||
\expandafter\let\csname Etoc@@####1@@\endcsname\Etoc@maxlevel
|
||||
}%
|
||||
\Etoc@dolevels
|
||||
}%
|
||||
\localtableofcontents
|
||||
}
|
||||
\else
|
||||
\def\locallistoffigures{%
|
||||
\PackageError{etoc}{%
|
||||
\string\locallistoffigures \on@line\space but\MessageBreak
|
||||
package was loaded without `lof' option}%
|
||||
{Try again with \string\usepackage[lof]{etoc}}%
|
||||
}
|
||||
\fi
|
||||
\ifEtoc@lot
|
||||
\def\locallistoftables{%
|
||||
\def\Etoc@listofreset{%
|
||||
\let\Etoc@currext\Etoc@tocext
|
||||
\let\Etoc@@startlocaltoc\Etoc@@startlocaltoc@toc
|
||||
\let\Etoc@@startlocaltochook\@empty
|
||||
\let\Etoc@listofreset\@empty
|
||||
\let\Etoc@listofhook\@empty
|
||||
}%
|
||||
\let\Etoc@currext\Etoc@lotext
|
||||
\def\Etoc@@startlocaltoc{\Etoc@@startlocallistof{table}}%
|
||||
\def\Etoc@@startlocaltochook{\Etoc@@startlocallistof@setlevels{table}}%
|
||||
\def\Etoc@listofhook{%
|
||||
\def\Etoc@do####1{%
|
||||
\expandafter\let\csname Etoc@@####1@@\endcsname\Etoc@maxlevel
|
||||
}%
|
||||
\Etoc@dolevels
|
||||
}%
|
||||
\localtableofcontents
|
||||
}
|
||||
\else
|
||||
\def\locallistoftables{%
|
||||
\PackageError{etoc}{%
|
||||
\string\locallistoftable \on@line\space but\MessageBreak
|
||||
package was loaded without `lot' option}%
|
||||
{Try again with \string\usepackage[lot]{etoc}}%
|
||||
}
|
||||
\fi
|
||||
\def\Etoc@checkifempty {%
|
||||
\global\Etoc@isemptytoctrue
|
||||
\global\Etoc@stoptocfalse
|
||||
\global\let\Etoc@level\Etoc@minf
|
||||
\global\let\Etoc@virtualtop\Etoc@minf
|
||||
\gdef\Etoc@stackofends{{-3}{}}%
|
||||
\begingroup
|
||||
\ifEtoc@localtoc
|
||||
\def\etoc@startlocaltoc##1{%
|
||||
\ifnum##1=\Etoc@tocid\relax
|
||||
\global\let\etoclocaltop\Etoc@virtualtop
|
||||
\Etoc@@startlocaltochook
|
||||
\global\Etoc@notactivefalse
|
||||
\fi
|
||||
}%
|
||||
\let\contentsline\Etoc@testingcontentslinelocal
|
||||
\else
|
||||
\let\contentsline\Etoc@testingcontentsline
|
||||
\fi
|
||||
\Etoc@storetocdepth
|
||||
\let\Etoc@setlocaltop@doendsandbegin\@empty
|
||||
\the\Etoc@toctoks
|
||||
\Etoc@restoretocdepth
|
||||
\endgroup
|
||||
}
|
||||
\DeclareRobustCommand*\etocifwasempty
|
||||
{\ifEtoc@isemptytoc\expandafter\@firstoftwo\else\expandafter\@secondoftwo\fi }
|
||||
\expandafter\let\expandafter\etocxifwasempty\csname etocifwasempty \endcsname
|
||||
\def\Etoc@testingcontentslinelocal #1{%
|
||||
\ifEtoc@stoptoc
|
||||
\else
|
||||
\ifnum\csname Etoc@#1@@\endcsname=\Etoc@maxlevel
|
||||
\else
|
||||
\global\expandafter\let\expandafter\Etoc@level\csname Etoc@#1@@\endcsname
|
||||
\if @\@car#1\@nil\else\global\let\Etoc@virtualtop\Etoc@level\fi
|
||||
\ifEtoc@notactive
|
||||
\else
|
||||
\ifnum\Etoc@level>\etoclocaltop
|
||||
\unless\ifnum\Etoc@level>\c@tocdepth
|
||||
\global\Etoc@isemptytocfalse
|
||||
\global\Etoc@stoptoctrue
|
||||
\fi
|
||||
\else
|
||||
\global\Etoc@stoptoctrue
|
||||
\fi
|
||||
\fi
|
||||
\fi
|
||||
\fi
|
||||
\Etoc@gobblethreeorfour{}%
|
||||
}
|
||||
\def\Etoc@testingcontentsline #1{%
|
||||
\ifEtoc@stoptoc
|
||||
\else
|
||||
\ifnum\csname Etoc@#1@@\endcsname=\Etoc@maxlevel
|
||||
\else
|
||||
\unless\ifnum\csname Etoc@#1@@\endcsname>\c@tocdepth
|
||||
\global\Etoc@isemptytocfalse
|
||||
\global\Etoc@stoptoctrue
|
||||
\fi
|
||||
\fi
|
||||
\fi
|
||||
\Etoc@gobblethreeorfour{}%
|
||||
}
|
||||
\def\Etoc@localtableofcontents#1{%
|
||||
\gdef\etoclocaltop{-\@m}%
|
||||
\Etoc@localtoctrue
|
||||
\global\Etoc@isemptytocfalse
|
||||
\edef\Etoc@tocid{#1}%
|
||||
\ifnum\Etoc@tocid<\@ne
|
||||
\setbox0\hbox{\ref{Unknown toc ref \@secondoftwo#1. \space Rerun LaTeX}}%
|
||||
\global\Etoc@stoptoctrue
|
||||
\gdef\etoclocaltop{-\thr@@}%
|
||||
\Etoc@tableofcontents
|
||||
\expandafter\Etoc@gobtoetoc@
|
||||
\fi
|
||||
\global\Etoc@notactivetrue
|
||||
\ifEtoc@checksemptiness
|
||||
\Etoc@checkifempty
|
||||
\fi
|
||||
\ifEtoc@isemptytoc
|
||||
\ifEtoc@notactive
|
||||
\setbox0\hbox{\ref{Unknown toc ID \number\Etoc@tocid. \space Rerun LaTeX}}%
|
||||
\global\Etoc@isemptytocfalse
|
||||
\global\Etoc@stoptoctrue
|
||||
\gdef\etoclocaltop{-\thr@@}%
|
||||
\Etoc@tableofcontents
|
||||
\expandafter\expandafter\expandafter\Etoc@gobtoetoc@
|
||||
\fi
|
||||
\else
|
||||
\global\Etoc@stoptocfalse
|
||||
\global\Etoc@notactivetrue
|
||||
\edef\etoc@startlocaltoc##1%
|
||||
{\noexpand\Etoc@@startlocaltoc{##1}{\Etoc@tocid}}%
|
||||
\Etoc@tableofcontents
|
||||
\fi
|
||||
\@gobble\etoc@
|
||||
\endgroup\ifEtoc@mustclosegroup\endgroup\fi
|
||||
\Etoc@tocdepthreset
|
||||
\Etoc@listofreset
|
||||
\etocaftertochook
|
||||
}% \Etoc@localtableofcontents
|
||||
\def\Etoc@getref #1{%
|
||||
\@ifundefined{r@#1}
|
||||
{0}
|
||||
{\expandafter\Etoc@getref@i\romannumeral-`0%
|
||||
\expandafter\expandafter\expandafter
|
||||
\@car\csname r@#1\endcsname0\@nil\@etoc
|
||||
}%
|
||||
}
|
||||
\def\Etoc@getref@i#1#2\@etoc{\ifnum9<1\string#1 #1#2\else 0\fi}
|
||||
\def\Etoc@ref#1{\Etoc@localtableofcontents{\Etoc@getref{#1}}}
|
||||
\def\Etoc@label#1{\label{#1}\futurelet\Etoc@nexttoken\Etoc@t@bleofcontents}
|
||||
\@firstofone{\def\Etoc@again} {\futurelet\Etoc@nexttoken\Etoc@t@bleofcontents}
|
||||
\def\Etoc@dothis #1#2\etoc@ {\fi #1}
|
||||
\def\Etoc@t@bleofcontents{%
|
||||
\gdef\etoclocaltop{-\@M}%
|
||||
\ifx\Etoc@nexttoken\label\Etoc@dothis{\expandafter\Etoc@label\@gobble}\fi
|
||||
\ifx\Etoc@nexttoken\@sptoken\Etoc@dothis{\Etoc@again}\fi
|
||||
\ifx\Etoc@nexttoken\ref\Etoc@dothis{\expandafter\Etoc@ref\@gobble}\fi
|
||||
\ifEtoc@tocwithid\Etoc@dothis{\Etoc@localtableofcontents{\c@etoc@tocid}}\fi
|
||||
\global\Etoc@isemptytocfalse
|
||||
\ifEtoc@checksemptiness\Etoc@checkifempty\fi
|
||||
\ifEtoc@isemptytoc
|
||||
\ifEtoc@notocifnotoc
|
||||
\expandafter\expandafter\expandafter\@gobble
|
||||
\fi
|
||||
\fi
|
||||
\Etoc@tableofcontents
|
||||
\endgroup
|
||||
\ifEtoc@mustclosegroup\endgroup\fi
|
||||
\Etoc@tocdepthreset
|
||||
\Etoc@listofreset
|
||||
\etocaftertochook
|
||||
\@gobble\etoc@
|
||||
}% \Etoc@t@bleofcontents
|
||||
\def\Etoc@table@fcontents{%
|
||||
\refstepcounter{etoc@tocid}%
|
||||
\Etoc@tocwithidfalse
|
||||
\futurelet\Etoc@nexttoken\Etoc@t@bleofcontents
|
||||
}
|
||||
\def\Etoc@localtable@fcontents{%
|
||||
\refstepcounter{etoc@tocid}%
|
||||
\addtocontents{toc}{\string\etoc@startlocaltoc{\the\c@etoc@tocid}}%
|
||||
\Etoc@tocwithidtrue
|
||||
\futurelet\Etoc@nexttoken\Etoc@t@bleofcontents
|
||||
}
|
||||
\def\etoctableofcontents{%
|
||||
\Etoc@openouttoc
|
||||
\Etoc@tocdepthset
|
||||
\begingroup
|
||||
\@ifstar
|
||||
{\let\Etoc@aftertitlehook\@empty\Etoc@table@fcontents}
|
||||
{\def\Etoc@aftertitlehook{\etocaftertitlehook}\Etoc@table@fcontents}%
|
||||
}% \etoctableofcontents
|
||||
\def\etocifisstarred{\ifx\Etoc@aftertitlehook\@empty
|
||||
\expandafter\@firstoftwo\else
|
||||
\expandafter\@secondoftwo
|
||||
\fi}
|
||||
\let\etocoriginaltableofcontents\tableofcontents
|
||||
\let\tableofcontents\etoctableofcontents
|
||||
\let\Etoc@listofhook\@empty
|
||||
\newcommand*\localtableofcontents{%
|
||||
\Etoc@openouttoc
|
||||
\Etoc@tocdepthset
|
||||
\begingroup
|
||||
\Etoc@listofhook
|
||||
\@ifstar
|
||||
{\let\Etoc@aftertitlehook\@empty\Etoc@localtable@fcontents}
|
||||
{\def\Etoc@aftertitlehook{\etocaftertitlehook}\Etoc@localtable@fcontents}%
|
||||
}% \localtableofcontents
|
||||
\newcommand*\localtableofcontentswithrelativedepth[1]{%
|
||||
\def\Etoc@@startlocaltochook{%
|
||||
\global\c@tocdepth\numexpr\etoclocaltop+#1\relax
|
||||
}%
|
||||
\def\Etoc@listofreset{\let\Etoc@@startlocaltochook\@empty
|
||||
\let\Etoc@listofreset\@empty}%
|
||||
\localtableofcontents
|
||||
}% \localtableofcontentswithrelativedepth
|
||||
\newcommand\etocsettocstyle[2]{%
|
||||
\Etoc@etocstylefalse
|
||||
\Etoc@classstylefalse
|
||||
\def\Etoc@tableofcontents@user@before{#1}%
|
||||
\def\Etoc@tableofcontents@user@after {#2}%
|
||||
}%
|
||||
\def\etocstoretocstyleinto#1{%
|
||||
%% \@ifdefinable#1{%
|
||||
\edef#1{\noexpand\Etoc@etocstylefalse\noexpand\Etoc@classstylefalse
|
||||
\def\noexpand\Etoc@tableofcontents@user@before{%
|
||||
\unexpanded\expandafter{\Etoc@tableofcontents@user@before}%
|
||||
}%
|
||||
\def\noexpand\Etoc@tableofcontents@user@after{%
|
||||
\unexpanded\expandafter{\Etoc@tableofcontents@user@after}%
|
||||
}%
|
||||
}%
|
||||
%% }%
|
||||
}%
|
||||
\def\Etoc@tableofcontents {%
|
||||
\Etoc@tableofcontents@etoc@before
|
||||
\ifEtoc@localtoc\ifEtoc@etocstyle\expandafter\expandafter\expandafter\@gobble\fi\fi
|
||||
\Etoc@tableofcontents@user@before
|
||||
\Etoc@tableofcontents@contents
|
||||
\ifEtoc@localtoc\ifEtoc@etocstyle\expandafter\expandafter\expandafter\@gobble\fi\fi
|
||||
\Etoc@tableofcontents@user@after
|
||||
\Etoc@tableofcontents@etoc@after
|
||||
\@gobble\etoc@
|
||||
}
|
||||
\def\Etoc@tableofcontents@etoc@before{%
|
||||
\ifnum\c@tocdepth>\Etoc@minf
|
||||
\else
|
||||
\expandafter\Etoc@gobtoetoc@
|
||||
\fi
|
||||
\Etoc@par
|
||||
\Etoc@beforetitlehook
|
||||
\etocbeforetitlehook
|
||||
\Etoc@storetocdepth
|
||||
\let\Etoc@savedcontentsline\contentsline
|
||||
\let\contentsline\Etoc@etoccontentsline
|
||||
\ifEtoc@standardlines
|
||||
\else
|
||||
\def\Etoc@do##1{%
|
||||
\expandafter\def\csname etocsaved##1tocline\endcsname
|
||||
{\PackageError{etoc}{%
|
||||
\expandafter\string\csname etocsaved##1tocline\endcsname\space
|
||||
has been deprecated\MessageBreak
|
||||
at 1.1a and is removed at 1.2.\MessageBreak
|
||||
Use \expandafter\string\csname l@##1\endcsname\space directly.\MessageBreak
|
||||
Reported \on@line}%
|
||||
{I will use \expandafter\string
|
||||
\csname l@##1\endcsname\space myself for this time.%
|
||||
}%
|
||||
\csname l@##1\endcsname
|
||||
}%
|
||||
}%
|
||||
\Etoc@dolevels
|
||||
\fi
|
||||
}%
|
||||
\def\Etoc@tableofcontents@contents{%
|
||||
\Etoc@tocdepthset
|
||||
\ifEtoc@parskip\parskip\z@skip\fi
|
||||
\Etoc@aftertitlehook
|
||||
\gdef\etoclocaltop{-\thr@@}%
|
||||
\Etoc@toctoc
|
||||
\etocaftercontentshook
|
||||
}%
|
||||
\def\Etoc@tableofcontents@etoc@after{%
|
||||
\@nobreakfalse
|
||||
\Etoc@restoretocdepth
|
||||
\ifx\Etoc@global\global
|
||||
\@ifundefined{tof@finish}
|
||||
{}
|
||||
{\ifx\tof@finish\@empty
|
||||
\else
|
||||
\global\let\contentsline\Etoc@savedcontentsline
|
||||
\fi
|
||||
}%
|
||||
\fi
|
||||
}
|
||||
\def\etocsetstyle#1{\ifcsname Etoc@#1@@\endcsname
|
||||
\expandafter\Etoc@setstyle@a
|
||||
\else
|
||||
\expandafter\Etoc@setstyle@error
|
||||
\fi {#1}%
|
||||
}
|
||||
\def\Etoc@setstyle@error #1{%
|
||||
\PackageWarning{etoc}{`#1' is unknown to etoc. \space Did you\MessageBreak
|
||||
forget some \string\etocsetlevel{#1}{<level>}?\MessageBreak
|
||||
Reported}%
|
||||
\@gobblefour
|
||||
}
|
||||
\def\Etoc@setstyle@a #1{%
|
||||
\edef\Etoc@tmp{\the\numexpr\csname Etoc@#1@@\endcsname}%
|
||||
\if1\unless\ifnum\Etoc@tmp<\Etoc@maxlevel 0\fi
|
||||
\unless\ifnum\Etoc@tmp>\Etoc@minf 0\fi1%
|
||||
\Etoc@standardlinesfalse
|
||||
\expandafter\Etoc@setstyle@b\expandafter\Etoc@tmp
|
||||
\else
|
||||
\ifnum\Etoc@tmp=\Etoc@maxlevel
|
||||
\in@{.#1,}{.figure,.table,}%
|
||||
\ifin@
|
||||
\PackageWarning{etoc}
|
||||
{You can not use \string\etocsetstyle\space with `#1'.\MessageBreak
|
||||
Check the package documentation (in particular about\MessageBreak
|
||||
\string\etoclocallistoffigureshook/\string\etoclocallistoftableshook)%
|
||||
\MessageBreak on how to customize
|
||||
figure and table entries in local\MessageBreak lists. Reported}%
|
||||
\else
|
||||
\PackageInfo{etoc}
|
||||
{Attempt to set the style of `#1',\MessageBreak
|
||||
whose level is currently the maximal one \etocthemaxlevel,\MessageBreak
|
||||
which is never displayed. \space This will be ignored\MessageBreak
|
||||
but note that we do quit compatibility mode.\MessageBreak
|
||||
Reported}%
|
||||
\Etoc@standardlinesfalse
|
||||
\fi
|
||||
\else
|
||||
\PackageWarning{etoc}{This should not happen. Reported}%
|
||||
\fi
|
||||
\expandafter\@gobblefour
|
||||
\fi
|
||||
}
|
||||
\long\def\Etoc@setstyle@b#1#2#3#4#5{%
|
||||
\expandafter\def\csname Etoc@begin@#1\endcsname {#2}%
|
||||
\expandafter\def\csname Etoc@prefix@#1\endcsname {#3}%
|
||||
\expandafter\def\csname Etoc@contents@#1\endcsname {#4}%
|
||||
\expandafter\def\csname Etoc@end@#1\endcsname {#5}%
|
||||
}
|
||||
\def\Etoc@setstyle@e#1{%
|
||||
\expandafter\let\csname Etoc@begin@#1\endcsname \@empty
|
||||
\expandafter\let\csname Etoc@prefix@#1\endcsname \@empty
|
||||
\expandafter\let\csname Etoc@contents@#1\endcsname \@empty
|
||||
\expandafter\let\csname Etoc@end@#1\endcsname \@empty
|
||||
}
|
||||
\def\Etoc@storelines@a#1{%
|
||||
\noexpand\Etoc@setstyle@b{#1}%
|
||||
{\expandafter\Etoc@expandonce\csname Etoc@begin@#1\endcsname}%
|
||||
{\expandafter\Etoc@expandonce\csname Etoc@prefix@#1\endcsname}%
|
||||
{\expandafter\Etoc@expandonce\csname Etoc@contents@#1\endcsname}%
|
||||
{\expandafter\Etoc@expandonce\csname Etoc@end@#1\endcsname}%
|
||||
}
|
||||
\def\Etoc@expandonce#1{\unexpanded\expandafter{#1}}
|
||||
\def\etocstorelinestylesinto#1{%
|
||||
\edef#1{\Etoc@storelines@a{-2}\Etoc@storelines@a{-1}\Etoc@storelines@a{0}%
|
||||
\Etoc@storelines@a {1}\Etoc@storelines@a {2}\Etoc@storelines@a{3}%
|
||||
\Etoc@storelines@a {4}\Etoc@storelines@a {5}%
|
||||
\ifEtoc@deeplevels
|
||||
\Etoc@storelines@a{6}\Etoc@storelines@a{7}\Etoc@storelines@a{8}%
|
||||
\Etoc@storelines@a{9}\Etoc@storelines@a{10}\Etoc@storelines@a{11}%
|
||||
\fi
|
||||
}%
|
||||
}
|
||||
\def\etocstorethislinestyleinto#1#2{%
|
||||
\edef#2{\expandafter\Etoc@storelines@a\expandafter{\number\etoclevel{#1}}}%
|
||||
}%
|
||||
\def\etocfontminustwo {\normalfont \LARGE \bfseries}
|
||||
\def\etocfontminusone {\normalfont \large \bfseries}
|
||||
\def\etocfontzero {\normalfont \large \bfseries}
|
||||
\def\etocfontone {\normalfont \normalsize \bfseries}
|
||||
\def\etocfonttwo {\normalfont \normalsize}
|
||||
\def\etocfontthree {\normalfont \footnotesize}
|
||||
\def\etocsepminustwo {4ex \@plus .5ex \@minus .5ex}
|
||||
\def\etocsepminusone {4ex \@plus .5ex \@minus .5ex}
|
||||
\def\etocsepzero {2.5ex \@plus .4ex \@minus .4ex}
|
||||
\def\etocsepone {1.5ex \@plus .3ex \@minus .3ex}
|
||||
\def\etocseptwo {.5ex \@plus .1ex \@minus .1ex}
|
||||
\def\etocsepthree {.25ex \@plus .05ex \@minus .05ex}
|
||||
\def\etocbaselinespreadminustwo {1}
|
||||
\def\etocbaselinespreadminusone {1}
|
||||
\def\etocbaselinespreadzero {1}
|
||||
\def\etocbaselinespreadone {1}
|
||||
\def\etocbaselinespreadtwo {1}
|
||||
\def\etocbaselinespreadthree {.9}
|
||||
\def\etocminustwoleftmargin {1.5em plus 0.5fil}
|
||||
\def\etocminustworightmargin {1.5em plus -0.5fil}
|
||||
\def\etocminusoneleftmargin {1em}
|
||||
\def\etocminusonerightmargin {1em}
|
||||
\def\etoctoclineleaders
|
||||
{\hbox{\normalfont\normalsize\hb@xt@2ex {\hss.\hss}}}
|
||||
\def\etocabbrevpagename {p.~}
|
||||
\def\etocpartname {Part}
|
||||
\def\etocbookname {Book}
|
||||
\def\etocdefaultlines{%
|
||||
\Etoc@standardlinesfalse
|
||||
\etocdefaultlines@setbook
|
||||
\etocdefaultlines@setpart
|
||||
\etocdefaultlines@setchapter
|
||||
\etocdefaultlines@setsection
|
||||
\etocdefaultlines@setsubsection
|
||||
\etocdefaultlines@setsubsubsection
|
||||
\etocdefaultlines@setdeeperones
|
||||
}
|
||||
\def\etocnoprotrusion{\leavevmode\kern-\p@\kern\p@}
|
||||
\@ifclassloaded{memoir}{%
|
||||
\def\etocdefaultlines@setbook{%
|
||||
\Etoc@setstyle@b
|
||||
{-2}%
|
||||
{\addpenalty\@M\etocskipfirstprefix}
|
||||
{\addpenalty\@secpenalty}
|
||||
{\begingroup
|
||||
\etocfontminustwo
|
||||
\addvspace{\etocsepminustwo}%
|
||||
\parindent \z@
|
||||
\leftskip \etocminustwoleftmargin
|
||||
\rightskip \etocminustworightmargin
|
||||
\parfillskip \@flushglue
|
||||
\vbox{\etocifnumbered{\etoclink{\etocbookname\enspace\etocthenumber:\quad}}{}%
|
||||
\etocname
|
||||
\baselineskip\etocbaselinespreadminustwo\baselineskip
|
||||
\par}%
|
||||
\addpenalty\@M\addvspace{\etocsepminusone}%
|
||||
\endgroup}
|
||||
{}%
|
||||
}
|
||||
}{\let\etocdefaultlines@setbook\@empty}
|
||||
\def\etocdefaultlines@setpart{%
|
||||
\Etoc@setstyle@b
|
||||
{-1}%
|
||||
{\addpenalty\@M\etocskipfirstprefix}
|
||||
{\addpenalty\@secpenalty}
|
||||
{\begingroup
|
||||
\etocfontminusone
|
||||
\addvspace{\etocsepminusone}%
|
||||
\parindent \z@
|
||||
\leftskip \etocminusoneleftmargin
|
||||
\rightskip \etocminusonerightmargin
|
||||
\parfillskip \@flushglue
|
||||
\vbox{\etocifnumbered{\etoclink{\etocpartname\enspace\etocthenumber.\quad}}{}%
|
||||
\etocname
|
||||
\baselineskip\etocbaselinespreadminusone\baselineskip
|
||||
\par}%
|
||||
\addpenalty\@M\addvspace{\etocsepzero}%
|
||||
\endgroup}
|
||||
{}%
|
||||
}
|
||||
\def\etocdefaultlines@setchapter{%
|
||||
\Etoc@setstyle@b
|
||||
{0}%
|
||||
{\addpenalty\@M\etocskipfirstprefix}
|
||||
{\addpenalty\@itempenalty}
|
||||
{\begingroup
|
||||
\etocfontzero
|
||||
\addvspace{\etocsepzero}%
|
||||
\parindent \z@ \parfillskip \@flushglue
|
||||
\vbox{\etocifnumbered{\etocnumber.\enspace}{}\etocname
|
||||
\baselineskip\etocbaselinespreadzero\baselineskip
|
||||
\par}%
|
||||
\endgroup}
|
||||
{\addpenalty{-\@highpenalty}\addvspace{\etocsepminusone}}%
|
||||
}
|
||||
\def\etocdefaultlines@setsection{%
|
||||
\Etoc@setstyle@b
|
||||
{1}%
|
||||
{\addpenalty\@M\etocskipfirstprefix}
|
||||
{\addpenalty\@itempenalty}
|
||||
{\begingroup
|
||||
\etocfontone
|
||||
\addvspace{\etocsepone}%
|
||||
\parindent \z@ \parfillskip \z@
|
||||
\setbox\z@\vbox{\parfillskip\@flushglue
|
||||
\etocname\par
|
||||
\setbox\tw@\lastbox
|
||||
\global\setbox\@ne\hbox{\unhbox\tw@\ }}%
|
||||
\dimen\z@=\wd\@ne
|
||||
\setbox\z@=\etoctoclineleaders
|
||||
\advance\dimen\z@\wd\z@
|
||||
\etocifnumbered
|
||||
{\setbox\tw@\hbox{\etocnumber, \etocabbrevpagename\etocpage\etocnoprotrusion}}
|
||||
{\setbox\tw@\hbox{\etocabbrevpagename\etocpage\etocnoprotrusion}}%
|
||||
\advance\dimen\z@\wd\tw@
|
||||
\ifdim\dimen\z@ < \linewidth
|
||||
\vbox{\etocname~%
|
||||
\leaders\box\z@\hfil\box\tw@
|
||||
\baselineskip\etocbaselinespreadone\baselineskip
|
||||
\par}%
|
||||
\else
|
||||
\vbox{\etocname~%
|
||||
\leaders\copy\z@\hfil\break
|
||||
\hbox{}\leaders\box\z@\hfil\box\tw@
|
||||
\baselineskip\etocbaselinespreadone\baselineskip
|
||||
\par}%
|
||||
\fi
|
||||
\endgroup}
|
||||
{\addpenalty\@secpenalty\addvspace{\etocsepzero}}%
|
||||
}
|
||||
\def\etocdefaultlines@setsubsection{%
|
||||
\Etoc@setstyle@b
|
||||
{2}%
|
||||
{\addpenalty\@medpenalty\etocskipfirstprefix}
|
||||
{\addpenalty\@itempenalty}
|
||||
{\begingroup
|
||||
\etocfonttwo
|
||||
\addvspace{\etocseptwo}%
|
||||
\parindent \z@ \parfillskip \z@
|
||||
\setbox\z@\vbox{\parfillskip\@flushglue
|
||||
\etocname\par\setbox\tw@\lastbox
|
||||
\global\setbox\@ne\hbox{\unhbox\tw@}}%
|
||||
\dimen\z@=\wd\@ne
|
||||
\setbox\z@=\etoctoclineleaders
|
||||
\advance\dimen\z@\wd\z@
|
||||
\etocifnumbered
|
||||
{\setbox\tw@\hbox{\etocnumber, \etocabbrevpagename\etocpage\etocnoprotrusion}}
|
||||
{\setbox\tw@\hbox{\etocabbrevpagename\etocpage\etocnoprotrusion}}%
|
||||
\advance\dimen\z@\wd\tw@
|
||||
\ifdim\dimen\z@ < \linewidth
|
||||
\vbox{\etocname~%
|
||||
\leaders\box\z@\hfil\box\tw@
|
||||
\baselineskip\etocbaselinespreadtwo\baselineskip
|
||||
\par}%
|
||||
\else
|
||||
\vbox{\etocname~%
|
||||
\leaders\copy\z@\hfil\break
|
||||
\hbox{}\leaders\box\z@\hfil\box\tw@
|
||||
\baselineskip\etocbaselinespreadtwo\baselineskip
|
||||
\par}%
|
||||
\fi
|
||||
\endgroup}
|
||||
{\addpenalty\@secpenalty\addvspace{\etocsepone}}%
|
||||
}
|
||||
\def\etocdefaultlines@setsubsubsection{%
|
||||
\Etoc@setstyle@b
|
||||
{3}%
|
||||
{\addpenalty\@M
|
||||
\etocfontthree
|
||||
\vspace{\etocsepthree}%
|
||||
\noindent
|
||||
\etocskipfirstprefix}
|
||||
{\allowbreak\,--\,}
|
||||
{\etocname}
|
||||
{.\hfil
|
||||
\begingroup
|
||||
\baselineskip\etocbaselinespreadthree\baselineskip
|
||||
\par
|
||||
\endgroup
|
||||
\addpenalty{-\@highpenalty}}
|
||||
}
|
||||
\def\etocdefaultlines@setdeeperones{%
|
||||
\Etoc@setstyle@e{4}%
|
||||
\Etoc@setstyle@e{5}%
|
||||
\ifEtoc@deeplevels
|
||||
\Etoc@setstyle@e{6}%
|
||||
\Etoc@setstyle@e{7}%
|
||||
\Etoc@setstyle@e{8}%
|
||||
\Etoc@setstyle@e{9}%
|
||||
\Etoc@setstyle@e{10}%
|
||||
\Etoc@setstyle@e{11}%
|
||||
\fi
|
||||
}
|
||||
\def\etocabovetocskip{3.5ex \@plus 1ex \@minus .2ex}
|
||||
\def\etocbelowtocskip{3.5ex \@plus 1ex \@minus .2ex}
|
||||
\def\etoccolumnsep{2em}
|
||||
\def\etocmulticolsep{0ex}
|
||||
\def\etocmulticolpretolerance{-1}
|
||||
\def\etocmulticoltolerance{200}
|
||||
\def\etocdefaultnbcol{2}
|
||||
\def\etocinnertopsep{2ex}
|
||||
\newcommand\etocmulticolstyle[2][\etocdefaultnbcol]{%
|
||||
\etocsettocstyle
|
||||
{\let\etocoldpar\par
|
||||
\addvspace{\etocabovetocskip}%
|
||||
\ifnum #1>\@ne
|
||||
\expandafter\@firstoftwo
|
||||
\else \expandafter\@secondoftwo
|
||||
\fi
|
||||
{\multicolpretolerance\etocmulticolpretolerance
|
||||
\multicoltolerance\etocmulticoltolerance
|
||||
\setlength{\columnsep}{\etoccolumnsep}%
|
||||
\setlength{\multicolsep}{\etocmulticolsep}%
|
||||
\begin{multicols}{#1}[#2\etocoldpar\addvspace{\etocinnertopsep}]}
|
||||
{#2\ifvmode\else\begingroup\interlinepenalty\@M\parskip\z@skip
|
||||
\@@par\endgroup
|
||||
\fi
|
||||
\nobreak\addvspace{\etocinnertopsep}%
|
||||
\pretolerance\etocmulticolpretolerance
|
||||
\tolerance\etocmulticoltolerance}%
|
||||
}%
|
||||
{\ifnum #1>\@ne
|
||||
\expandafter\@firstofone
|
||||
\else \expandafter\@gobble
|
||||
\fi
|
||||
{\end{multicols}}%
|
||||
\addvspace{\etocbelowtocskip}}%
|
||||
}
|
||||
\def\etocinnerbottomsep{3.5ex}
|
||||
\def\etocinnerleftsep{2em}
|
||||
\def\etocinnerrightsep{2em}
|
||||
\def\etoctoprule{\hrule}
|
||||
\def\etocleftrule{\vrule}
|
||||
\def\etocrightrule{\vrule}
|
||||
\def\etocbottomrule{\hrule}
|
||||
\def\etoctoprulecolorcmd{\relax}
|
||||
\def\etocbottomrulecolorcmd{\relax}
|
||||
\def\etocleftrulecolorcmd{\relax}
|
||||
\def\etocrightrulecolorcmd{\relax}
|
||||
\def\etoc@ruledheading #1{%
|
||||
\hb@xt@\linewidth{\color@begingroup
|
||||
\hss #1\hss\hskip-\linewidth
|
||||
\etoctoprulecolorcmd\leaders\etoctoprule\hss
|
||||
\phantom{#1}%
|
||||
\leaders\etoctoprule\hss\color@endgroup}%
|
||||
\nointerlineskip\nobreak\vskip\etocinnertopsep}
|
||||
\newcommand*\etocruledstyle[2][\etocdefaultnbcol]{%
|
||||
\etocsettocstyle
|
||||
{\addvspace{\etocabovetocskip}%
|
||||
\ifnum #1>\@ne
|
||||
\expandafter\@firstoftwo
|
||||
\else \expandafter\@secondoftwo
|
||||
\fi
|
||||
{\multicolpretolerance\etocmulticolpretolerance
|
||||
\multicoltolerance\etocmulticoltolerance
|
||||
\setlength{\columnsep}{\etoccolumnsep}%
|
||||
\setlength{\multicolsep}{\etocmulticolsep}%
|
||||
\begin{multicols}{#1}[\etoc@ruledheading{#2}]}
|
||||
{\etoc@ruledheading{#2}%
|
||||
\pretolerance\etocmulticolpretolerance
|
||||
\tolerance\etocmulticoltolerance}}
|
||||
{\ifnum #1>\@ne\expandafter\@firstofone
|
||||
\else \expandafter\@gobble
|
||||
\fi
|
||||
{\end{multicols}}%
|
||||
\addvspace{\etocbelowtocskip}}}
|
||||
\def\etocframedmphook{\relax}
|
||||
\long\def\etocbkgcolorcmd{\relax}
|
||||
\long\def\Etoc@relax{\relax}
|
||||
\newbox\etoc@framed@titlebox
|
||||
\newbox\etoc@framed@contentsbox
|
||||
\newcommand*\etocframedstyle[2][\etocdefaultnbcol]{%
|
||||
\etocsettocstyle{%
|
||||
\addvspace{\etocabovetocskip}%
|
||||
\sbox\z@{#2}%
|
||||
\dimen\z@\dp\z@
|
||||
\ifdim\wd\z@<\linewidth \dp\z@\z@ \else \dimen\z@\z@ \fi
|
||||
\setbox\etoc@framed@titlebox=\hb@xt@\linewidth{\color@begingroup
|
||||
\hss
|
||||
\ifx\etocbkgcolorcmd\Etoc@relax
|
||||
\else
|
||||
\sbox\tw@{\color{white}%
|
||||
\vrule\@width\wd\z@\@height\ht\z@\@depth\dimen\z@}%
|
||||
\ifdim\wd\z@<\linewidth \dp\tw@\z@\fi
|
||||
\box\tw@
|
||||
\hskip-\wd\z@
|
||||
\fi
|
||||
\copy\z@
|
||||
\hss
|
||||
\hskip-\linewidth
|
||||
\etoctoprulecolorcmd\leaders\etoctoprule\hss
|
||||
\hskip\wd\z@
|
||||
\etoctoprulecolorcmd\leaders\etoctoprule\hss\color@endgroup}%
|
||||
\setbox\z@\hbox{\etocleftrule\etocrightrule}%
|
||||
\dimen\tw@\linewidth\advance\dimen\tw@-\wd\z@
|
||||
\advance\dimen\tw@-\etocinnerleftsep
|
||||
\advance\dimen\tw@-\etocinnerrightsep
|
||||
\setbox\etoc@framed@contentsbox=\vbox\bgroup
|
||||
\hsize\dimen\tw@
|
||||
\kern\dimen\z@
|
||||
\vskip\etocinnertopsep
|
||||
\hbox\bgroup
|
||||
\begin{minipage}{\hsize}%
|
||||
\etocframedmphook
|
||||
\ifnum #1>\@ne
|
||||
\expandafter\@firstoftwo
|
||||
\else \expandafter\@secondoftwo
|
||||
\fi
|
||||
{\multicolpretolerance\etocmulticolpretolerance
|
||||
\multicoltolerance\etocmulticoltolerance
|
||||
\setlength{\columnsep}{\etoccolumnsep}%
|
||||
\setlength{\multicolsep}{\etocmulticolsep}%
|
||||
\begin{multicols}{#1}}
|
||||
{\pretolerance\etocmulticolpretolerance
|
||||
\tolerance\etocmulticoltolerance}}
|
||||
{\ifnum #1>\@ne\expandafter\@firstofone
|
||||
\else \expandafter\@gobble
|
||||
\fi
|
||||
{\end{multicols}\unskip }%
|
||||
\end{minipage}%
|
||||
\egroup
|
||||
\vskip\etocinnerbottomsep
|
||||
\egroup
|
||||
\vbox{\hsize\linewidth
|
||||
\ifx\etocbkgcolorcmd\Etoc@relax
|
||||
\else
|
||||
\kern\ht\etoc@framed@titlebox
|
||||
\kern\dp\etoc@framed@titlebox
|
||||
\hb@xt@\linewidth{\color@begingroup
|
||||
\etocleftrulecolorcmd\etocleftrule
|
||||
\etocbkgcolorcmd
|
||||
\leaders\vrule
|
||||
\@height\ht\etoc@framed@contentsbox
|
||||
\@depth\dp\etoc@framed@contentsbox
|
||||
\hss
|
||||
\etocrightrulecolorcmd\etocrightrule
|
||||
\color@endgroup}\nointerlineskip
|
||||
\vskip-\dp\etoc@framed@contentsbox
|
||||
\vskip-\ht\etoc@framed@contentsbox
|
||||
\vskip-\dp\etoc@framed@titlebox
|
||||
\vskip-\ht\etoc@framed@titlebox
|
||||
\fi
|
||||
\box\etoc@framed@titlebox\nointerlineskip
|
||||
\hb@xt@\linewidth{\color@begingroup
|
||||
{\etocleftrulecolorcmd\etocleftrule}%
|
||||
\hss\box\etoc@framed@contentsbox\hss
|
||||
\etocrightrulecolorcmd\etocrightrule\color@endgroup}
|
||||
\nointerlineskip
|
||||
\vskip\ht\etoc@framed@contentsbox
|
||||
\vskip\dp\etoc@framed@contentsbox
|
||||
\hb@xt@\linewidth{\color@begingroup\etocbottomrulecolorcmd
|
||||
\leaders\etocbottomrule\hss\color@endgroup}}
|
||||
\addvspace{\etocbelowtocskip}}}
|
||||
\newcommand\etoc@multicoltoc[2][\etocdefaultnbcol]{%
|
||||
\etocmulticolstyle[#1]{#2}%
|
||||
\tableofcontents}
|
||||
\newcommand\etoc@multicoltoci[2][\etocdefaultnbcol]{%
|
||||
\etocmulticolstyle[#1]{#2}%
|
||||
\tableofcontents*}
|
||||
\newcommand\etoc@local@multicoltoc[2][\etocdefaultnbcol]{%
|
||||
\etocmulticolstyle[#1]{#2}%
|
||||
\localtableofcontents}
|
||||
\newcommand\etoc@local@multicoltoci[2][\etocdefaultnbcol]{%
|
||||
\etocmulticolstyle[#1]{#2}%
|
||||
\localtableofcontents*}
|
||||
\newcommand*\etoc@ruledtoc[2][\etocdefaultnbcol]{%
|
||||
\etocruledstyle[#1]{#2}%
|
||||
\tableofcontents}
|
||||
\newcommand*\etoc@ruledtoci[2][\etocdefaultnbcol]{%
|
||||
\etocruledstyle[#1]{#2}%
|
||||
\tableofcontents*}
|
||||
\newcommand*\etoc@local@ruledtoc[2][\etocdefaultnbcol]{%
|
||||
\etocruledstyle[#1]{#2}%
|
||||
\localtableofcontents}
|
||||
\newcommand*\etoc@local@ruledtoci[2][\etocdefaultnbcol]{%
|
||||
\etocruledstyle[#1]{#2}%
|
||||
\localtableofcontents*}
|
||||
\newcommand*\etoc@framedtoc[2][\etocdefaultnbcol]{%
|
||||
\etocframedstyle[#1]{#2}%
|
||||
\tableofcontents}
|
||||
\newcommand*\etoc@framedtoci[2][\etocdefaultnbcol]{%
|
||||
\etocframedstyle[#1]{#2}%
|
||||
\tableofcontents*}
|
||||
\newcommand*\etoc@local@framedtoc[2][\etocdefaultnbcol]{%
|
||||
\etocframedstyle[#1]{#2}%
|
||||
\localtableofcontents}
|
||||
\newcommand*\etoc@local@framedtoci[2][\etocdefaultnbcol]{%
|
||||
\etocframedstyle[#1]{#2}%
|
||||
\localtableofcontents*}
|
||||
\def\etocmulticol{\begingroup
|
||||
\Etoc@mustclosegrouptrue
|
||||
\@ifstar
|
||||
{\etoc@multicoltoci}
|
||||
{\etoc@multicoltoc}}
|
||||
\def\etocruled{\begingroup
|
||||
\Etoc@mustclosegrouptrue
|
||||
\@ifstar
|
||||
{\etoc@ruledtoci}
|
||||
{\etoc@ruledtoc}}
|
||||
\def\etocframed{\begingroup
|
||||
\Etoc@mustclosegrouptrue
|
||||
\@ifstar
|
||||
{\etoc@framedtoci}
|
||||
{\etoc@framedtoc}}
|
||||
\def\etoclocalmulticol{\begingroup
|
||||
\Etoc@mustclosegrouptrue
|
||||
\@ifstar
|
||||
{\etoc@local@multicoltoci}
|
||||
{\etoc@local@multicoltoc}}
|
||||
\def\etoclocalruled{\begingroup
|
||||
\Etoc@mustclosegrouptrue
|
||||
\@ifstar
|
||||
{\etoc@local@ruledtoci}
|
||||
{\etoc@local@ruledtoc}}
|
||||
\def\etoclocalframed{\begingroup
|
||||
\Etoc@mustclosegrouptrue
|
||||
\@ifstar
|
||||
{\etoc@local@framedtoci}
|
||||
{\etoc@local@framedtoc}}
|
||||
\def\etocmemoirtoctotocfmt #1#2{%
|
||||
\PackageWarning{etoc}
|
||||
{\string\etocmemoirtoctotocfmt\space is deprecated.\MessageBreak
|
||||
Use in its place \string\etocsettoclineforclasstoc,\MessageBreak
|
||||
and \string\etocsettoclineforclasslistof{toc} (or {lof}, {lot}).
|
||||
I will do this now.\MessageBreak
|
||||
Reported}%
|
||||
\etocsettoclineforclasstoc{#1}{#2}%
|
||||
\etocsettoclineforclasslistof{toc}{#1}{#2}%
|
||||
}
|
||||
\def\etocsettoclineforclasstoc #1#2{%
|
||||
\def\etocclassmaintocaddtotoc{\etocglobalheadtotoc{#1}{#2}}%
|
||||
}
|
||||
\def\etocsettoclineforclasslistof #1#2#3{%
|
||||
\@namedef{etocclasslocal#1addtotoc}{\etoclocalheadtotoc{#2}{#3}}%
|
||||
}
|
||||
\let\etocclasslocaltocaddtotoc\@empty
|
||||
\let\etocclasslocallofaddtotoc\@empty
|
||||
\let\etocclasslocallotaddtotoc\@empty
|
||||
\ifdefined\c@chapter
|
||||
\def\etocclasslocaltocmaketitle{\section*{\localcontentsname}}
|
||||
\def\etocclasslocallofmaketitle{\section*{\locallistfigurename}}
|
||||
\def\etocclasslocallotmaketitle{\section*{\locallisttablename}}
|
||||
\etocsettoclineforclasstoc {chapter}{\contentsname}
|
||||
\etocsettoclineforclasslistof{toc}{section}{\localcontentsname}
|
||||
\etocsettoclineforclasslistof{lof}{section}{\locallistfigurename}
|
||||
\etocsettoclineforclasslistof{lot}{section}{\locallisttablename}
|
||||
\else
|
||||
\def\etocclasslocaltocmaketitle{\subsection*{\localcontentsname}}%
|
||||
\def\etocclasslocallofmaketitle{\subsection*{\locallistfigurename}}%
|
||||
\def\etocclasslocallotmaketitle{\subsection*{\locallisttablename}}%
|
||||
\etocsettoclineforclasstoc {section}{\contentsname}
|
||||
\etocsettoclineforclasslistof{toc}{subsection}{\localcontentsname}
|
||||
\etocsettoclineforclasslistof{lof}{subsection}{\locallistfigurename}
|
||||
\etocsettoclineforclasslistof{lot}{subsection}{\locallisttablename}
|
||||
\fi
|
||||
\def\etocclasslocalperhapsaddtotoc #1{%
|
||||
\etocifisstarred
|
||||
{}
|
||||
{\csname ifEtoc@local#1totoc\endcsname
|
||||
\csname etocclasslocal#1addtotoc\endcsname
|
||||
\fi
|
||||
}%
|
||||
}
|
||||
\def\etocarticlestyle{%
|
||||
\etocsettocstyle
|
||||
{\ifEtoc@localtoc
|
||||
\@nameuse{etocclasslocal\Etoc@currext maketitle}%
|
||||
\etocclasslocalperhapsaddtotoc\Etoc@currext
|
||||
\else
|
||||
\section *{\contentsname
|
||||
\@mkboth {\MakeUppercase \contentsname}
|
||||
{\MakeUppercase \contentsname}}%
|
||||
\etocifisstarred{}{\etocifmaintoctotoc{\etocclassmaintocaddtotoc}{}}%
|
||||
\fi
|
||||
}
|
||||
{}%
|
||||
}
|
||||
\def\etocarticlestylenomarks{%
|
||||
\etocsettocstyle
|
||||
{\ifEtoc@localtoc
|
||||
\@nameuse{etocclasslocal\Etoc@currext maketitle}%
|
||||
\etocclasslocalperhapsaddtotoc\Etoc@currext
|
||||
\else
|
||||
\section *{\contentsname}%
|
||||
\etocifisstarred{}{\etocifmaintoctotoc{\etocclassmaintocaddtotoc}{}}%
|
||||
\fi
|
||||
}
|
||||
{}%
|
||||
}
|
||||
\def\etocbookstyle{%
|
||||
\etocsettocstyle
|
||||
{\if@twocolumn \@restonecoltrue \onecolumn \else \@restonecolfalse \fi
|
||||
\ifEtoc@localtoc
|
||||
\@nameuse{etocclasslocal\Etoc@currext maketitle}%
|
||||
\etocclasslocalperhapsaddtotoc\Etoc@currext
|
||||
\else
|
||||
\chapter *{\contentsname
|
||||
\@mkboth {\MakeUppercase \contentsname}
|
||||
{\MakeUppercase \contentsname}}%
|
||||
\etocifisstarred{}{\etocifmaintoctotoc{\etocclassmaintocaddtotoc}{}}%
|
||||
\fi
|
||||
}%
|
||||
{\if@restonecol \twocolumn \fi}%
|
||||
}
|
||||
\def\etocbookstylenomarks{%
|
||||
\etocsettocstyle
|
||||
{\if@twocolumn \@restonecoltrue \onecolumn \else \@restonecolfalse \fi
|
||||
\ifEtoc@localtoc
|
||||
\@nameuse{etocclasslocal\Etoc@currext maketitle}%
|
||||
\etocclasslocalperhapsaddtotoc\Etoc@currext
|
||||
\else
|
||||
\chapter *{\contentsname}%
|
||||
\etocifisstarred{}{\etocifmaintoctotoc{\etocclassmaintocaddtotoc}{}}%
|
||||
\fi
|
||||
}%
|
||||
{\if@restonecol \twocolumn \fi}%
|
||||
}
|
||||
\let\etocreportstyle\etocbookstyle
|
||||
\let\etocreportstylenomarks\etocbookstylenomarks
|
||||
\def\etocmemoirstyle{%
|
||||
\etocsettocstyle
|
||||
{\ensureonecol \par \begingroup \phantomsection
|
||||
\ifx\Etoc@aftertitlehook\@empty
|
||||
\else
|
||||
\ifmem@em@starred@listof
|
||||
\else
|
||||
\ifEtoc@localtoc
|
||||
\etocclasslocalperhapsaddtotoc\Etoc@currext
|
||||
\else
|
||||
\ifEtoc@maintoctotoc
|
||||
\etocclassmaintocaddtotoc
|
||||
\fi
|
||||
\fi
|
||||
\fi
|
||||
\fi
|
||||
\ifEtoc@localtoc
|
||||
\@namedef{@\Etoc@currext maketitle}{%
|
||||
\@nameuse{etocclasslocal\Etoc@currext maketitle}%
|
||||
}%
|
||||
\fi
|
||||
\@nameuse {@\Etoc@currext maketitle} %<< space token here from memoir code
|
||||
\ifx\Etoc@aftertitlehook\@empty
|
||||
\else
|
||||
\Etoc@aftertitlehook \let \Etoc@aftertitlehook \relax
|
||||
\fi
|
||||
\parskip \cftparskip \@nameuse {cft\Etoc@currext beforelisthook}%
|
||||
}%
|
||||
{\@nameuse {cft\Etoc@currext afterlisthook}%
|
||||
\endgroup\restorefromonecol
|
||||
}%
|
||||
}
|
||||
\let\Etoc@beforetitlehook\@empty
|
||||
\if1\@ifclassloaded{scrartcl}0{\@ifclassloaded{scrbook}0{\@ifclassloaded{scrreprt}01}}%
|
||||
\expandafter\@gobble
|
||||
\else
|
||||
\ifdefined\setuptoc
|
||||
\def\Etoc@beforetitlehook{%
|
||||
\ifEtoc@localtoc
|
||||
\etocclasslocalperhapsaddtotoc\Etoc@currext
|
||||
\setuptoc{\Etoc@currext}{leveldown}%
|
||||
\else
|
||||
\etocifisstarred{}{\etocifmaintoctotoc{\setuptoc{toc}{totoc}}}%
|
||||
\fi
|
||||
}%
|
||||
\fi
|
||||
\expandafter\@firstofone
|
||||
\fi
|
||||
{\def\etocclasslocalperhapsaddtotoc #1{%
|
||||
\etocifisstarred
|
||||
{}%
|
||||
{\csname ifEtoc@local#1totoc\endcsname
|
||||
\setuptoc{\Etoc@currext}{totoc}%
|
||||
\fi
|
||||
}%
|
||||
}%
|
||||
}
|
||||
\ifdefined\Iftocfeature
|
||||
\def\etoc@Iftocfeature{\Iftocfeature}%
|
||||
\else
|
||||
\def\etoc@Iftocfeature{\iftocfeature}%
|
||||
\fi
|
||||
\def\etocscrartclstyle{%
|
||||
\etocsettocstyle
|
||||
{\ifx\Etoc@currext\Etoc@tocext
|
||||
\expandafter\@firstofone
|
||||
\else
|
||||
\expandafter\@gobble
|
||||
\fi
|
||||
{\let\if@dynlist\if@tocleft}%
|
||||
\edef\@currext{\Etoc@currext}%
|
||||
\@ifundefined{listof\@currext name}%
|
||||
{\def\list@fname{\listofname~\@currext}}%
|
||||
{\expandafter\let\expandafter\list@fname
|
||||
\csname listof\@currext name\endcsname}%
|
||||
\etoc@Iftocfeature {\@currext}{onecolumn}
|
||||
{\etoc@Iftocfeature {\@currext}{leveldown}
|
||||
{}
|
||||
{\if@twocolumn \aftergroup \twocolumn \onecolumn \fi }}
|
||||
{}%
|
||||
\etoc@Iftocfeature {\@currext}{numberline}%
|
||||
{\def \nonumberline {\numberline {}}}{}%
|
||||
\expandafter\tocbasic@listhead\expandafter {\list@fname}%
|
||||
\begingroup \expandafter \expandafter \expandafter
|
||||
\endgroup \expandafter
|
||||
\ifx
|
||||
\csname microtypesetup\endcsname \relax
|
||||
\else
|
||||
\etoc@Iftocfeature {\@currext}{noprotrusion}{}
|
||||
{\microtypesetup {protrusion=false}%
|
||||
\PackageInfo {tocbasic}%
|
||||
{character protrusion at \@currext\space deactivated}}%
|
||||
\fi
|
||||
\etoc@Iftocfeature{\@currext}{noparskipfake}{}{%
|
||||
\ifvmode \@tempskipa\lastskip \vskip-\lastskip
|
||||
\addtolength{\@tempskipa}{\parskip}\vskip\@tempskipa\fi
|
||||
}%
|
||||
\setlength {\parskip }{\z@ }%
|
||||
\setlength {\parindent }{\z@ }%
|
||||
\setlength {\parfillskip }{\z@ \@plus 1fil}%
|
||||
\csname tocbasic@@before@hook\endcsname
|
||||
\csname tb@\@currext @before@hook\endcsname
|
||||
}% end of before_toc
|
||||
{% start of after_toc
|
||||
\providecommand\tocbasic@end@toc@file{}\tocbasic@end@toc@file
|
||||
\edef\@currext{\Etoc@currext}%
|
||||
\csname tb@\@currext @after@hook\endcsname
|
||||
\csname tocbasic@@after@hook\endcsname
|
||||
}% end of after_toc
|
||||
}
|
||||
\let\etocscrbookstyle\etocscrartclstyle
|
||||
\let\etocscrreprtstyle\etocscrartclstyle
|
||||
\def\etocclasstocstyle{\etocarticlestyle}
|
||||
\newcommand*\etocmarkboth[1]{%
|
||||
\@mkboth{\MakeUppercase{#1}}{\MakeUppercase{#1}}}
|
||||
\newcommand*\etocmarkbothnouc[1]{\@mkboth{#1}{#1}}
|
||||
\newcommand\etoctocstyle[3][section]{\etocmulticolstyle[#2]%
|
||||
{\csname #1\endcsname *{#3}}}
|
||||
\newcommand\etoctocstylewithmarks[4][section]{\etocmulticolstyle[#2]%
|
||||
{\csname #1\endcsname *{#3\etocmarkboth{#4}}}}
|
||||
\newcommand\etoctocstylewithmarksnouc[4][section]{\etocmulticolstyle[#2]%
|
||||
{\csname #1\endcsname *{#3\etocmarkbothnouc{#4}}}}
|
||||
\def\Etoc@redefetocstylesforchapters{%
|
||||
\renewcommand\etoctocstylewithmarks[4][chapter]{%
|
||||
\etocmulticolstyle[##2]{\csname ##1\endcsname *{##3\etocmarkboth{##4}}}%
|
||||
}
|
||||
\renewcommand\etoctocstylewithmarksnouc[4][chapter]{%
|
||||
\etocmulticolstyle[##2]{\csname ##1\endcsname *{##3\etocmarkbothnouc{##4}}}%
|
||||
}
|
||||
\renewcommand\etoctocstyle[3][chapter]{%
|
||||
\etocmulticolstyle[##2]{\csname ##1\endcsname *{##3}}
|
||||
}
|
||||
}
|
||||
\@ifclassloaded{scrartcl}
|
||||
{\renewcommand*\etocclasstocstyle{\etocscrartclstyle}}{}
|
||||
\@ifclassloaded{book}
|
||||
{\renewcommand*\etocfontone{\normalfont\normalsize}
|
||||
\renewcommand*\etocclasstocstyle{\etocbookstyle}
|
||||
\Etoc@redefetocstylesforchapters}{}
|
||||
\@ifclassloaded{report}
|
||||
{\renewcommand*\etocfontone{\normalfont\normalsize}
|
||||
\renewcommand*\etocclasstocstyle{\etocreportstyle}
|
||||
\Etoc@redefetocstylesforchapters}{}
|
||||
\@ifclassloaded{scrbook}
|
||||
{\renewcommand*\etocfontone{\normalfont\normalsize}
|
||||
\renewcommand*\etocclasstocstyle{\etocscrbookstyle}
|
||||
\Etoc@redefetocstylesforchapters}{}
|
||||
\@ifclassloaded{scrreprt}
|
||||
{\renewcommand*\etocfontone{\normalfont\normalsize}
|
||||
\renewcommand*\etocclasstocstyle{\etocscrreprtstyle}
|
||||
\Etoc@redefetocstylesforchapters}{}
|
||||
\@ifclassloaded{memoir}
|
||||
{\renewcommand*\etocfontone{\normalfont\normalsize}
|
||||
\renewcommand*\etocclasstocstyle{\etocmemoirstyle}
|
||||
\Etoc@redefetocstylesforchapters}{}
|
||||
\def\etoctocloftstyle {%
|
||||
\etocsettocstyle{%
|
||||
\@cfttocstart
|
||||
\par
|
||||
\begingroup
|
||||
\parindent\z@ \parskip\cftparskip
|
||||
\@nameuse{@cftmake\Etoc@currext title}%
|
||||
\ifEtoc@localtoc
|
||||
\etoctocloftlocalperhapsaddtotoc\Etoc@currext
|
||||
\else
|
||||
\etocifisstarred {}{\ifEtoc@maintoctotoc\@cftdobibtoc\fi}%
|
||||
\fi
|
||||
}%
|
||||
{%
|
||||
\endgroup
|
||||
\@cfttocfinish
|
||||
}%
|
||||
}
|
||||
\def\etoctocloftlocalperhapsaddtotoc#1{%
|
||||
\etocifisstarred
|
||||
{}%
|
||||
{\csname ifEtoc@local#1totoc\endcsname
|
||||
\ifdefined\c@chapter\def\@tocextra{@section}\else\def\@tocextra{@subsection}\fi
|
||||
\csname @cftdobib#1\endcsname
|
||||
\fi
|
||||
}%
|
||||
}
|
||||
\def\etoctocbibindstyle {%
|
||||
\etocsettocstyle {%
|
||||
\toc@start
|
||||
\ifEtoc@localtoc
|
||||
\@nameuse{etocclasslocal\Etoc@currext maketitle}%
|
||||
\etocclasslocalperhapsaddtotoc\Etoc@currext
|
||||
\else
|
||||
\etoc@tocbibind@dotoctitle
|
||||
\fi
|
||||
}%
|
||||
{\toc@finish}%
|
||||
}
|
||||
\def\etoc@tocbibind@dotoctitle {%
|
||||
\if@bibchapter
|
||||
\etocifisstarred
|
||||
{\chapter*{\contentsname}\prw@mkboth{\contentsname} % id.
|
||||
}%
|
||||
{\ifEtoc@maintoctotoc
|
||||
\toc@chapter{\contentsname} %<-space from original
|
||||
\else
|
||||
\chapter*{\contentsname}\prw@mkboth{\contentsname} % id.
|
||||
\fi
|
||||
}%
|
||||
\else
|
||||
\etocifisstarred
|
||||
{\@nameuse{\@tocextra}*{\contentsname\prw@mkboth{\contentsname}} %<-space
|
||||
}
|
||||
{\ifEtoc@maintoctotoc
|
||||
\toc@section{\@tocextra}{\contentsname} %<-space from original
|
||||
\else
|
||||
\@nameuse{\@tocextra}*{\contentsname\prw@mkboth{\contentsname}} % id.
|
||||
\fi
|
||||
}%
|
||||
\fi
|
||||
}%
|
||||
\@ifclassloaded{memoir}
|
||||
{}
|
||||
{% memoir not loaded
|
||||
\@ifpackageloaded{tocloft}
|
||||
{\if@cftnctoc\else
|
||||
\ifEtoc@keeporiginaltoc
|
||||
\else
|
||||
\AtBeginDocument{\let\tableofcontents\etoctableofcontents}%
|
||||
\fi
|
||||
\fi }
|
||||
{\AtBeginDocument
|
||||
{\@ifpackageloaded{tocloft}
|
||||
{\if@cftnctoc\else
|
||||
\PackageWarningNoLine {etoc}
|
||||
{Package `tocloft' was loaded after `etoc'.\MessageBreak
|
||||
To prevent it from overwriting \protect\tableofcontents, it will\MessageBreak
|
||||
be tricked into believing to have been loaded with its\MessageBreak
|
||||
option `titles'. \space But this will cause the `tocloft'\MessageBreak
|
||||
customization of the titles of the main list of figures\MessageBreak
|
||||
and list of tables to not apply either.\MessageBreak
|
||||
You should load `tocloft' before `etoc'.}%
|
||||
\AtEndDocument{\PackageWarning{etoc}
|
||||
{Please load `tocloft' before `etoc'!\@gobbletwo}}%
|
||||
\fi
|
||||
\@cftnctoctrue }%
|
||||
{}%
|
||||
}%
|
||||
}%
|
||||
}
|
||||
\@ifclassloaded{memoir}
|
||||
{}
|
||||
{% memoir not loaded
|
||||
\AtBeginDocument{%
|
||||
\@ifpackageloaded{tocloft}
|
||||
{%
|
||||
\def\etocclasstocstyle{%
|
||||
\etoctocloftstyle
|
||||
\Etoc@classstyletrue
|
||||
}%
|
||||
\ifEtoc@etocstyle
|
||||
\ifEtoc@classstyle
|
||||
\etocclasstocstyle
|
||||
\Etoc@etocstyletrue
|
||||
\fi
|
||||
\else
|
||||
\ifEtoc@classstyle
|
||||
\etocclasstocstyle
|
||||
\fi
|
||||
\fi
|
||||
}%
|
||||
{% no tocloft
|
||||
\@ifpackageloaded {tocbibind}
|
||||
{\if@dotoctoc
|
||||
\def\etocclasstocstyle{%
|
||||
\etoctocbibindstyle
|
||||
\Etoc@classstyletrue
|
||||
}%
|
||||
\ifEtoc@etocstyle
|
||||
\ifEtoc@classstyle
|
||||
\etocclasstocstyle
|
||||
\Etoc@etocstyletrue
|
||||
\fi
|
||||
\else
|
||||
\ifEtoc@classstyle
|
||||
\etocclasstocstyle
|
||||
\fi
|
||||
\fi
|
||||
\ifEtoc@keeporiginaltoc
|
||||
\else
|
||||
\let\tableofcontents\etoctableofcontents
|
||||
\fi
|
||||
}%
|
||||
{}%
|
||||
}%
|
||||
\@ifpackageloaded{tocbibind}
|
||||
{% tocbibind, perhaps with tocloft
|
||||
\if@dotoctoc
|
||||
\ifEtoc@keeporiginaltoc
|
||||
\else
|
||||
\let\tableofcontents\etoctableofcontents
|
||||
\fi
|
||||
\etocsetup{maintoctotoc,localtoctotoc}%
|
||||
\PackageInfo{etoc}{%
|
||||
Setting (or re-setting) the options `maintoctotoc' and\MessageBreak
|
||||
`localtoctotoc' to true as tocbibind was detected and\MessageBreak
|
||||
found to be configured for `TOC to toc'.\MessageBreak
|
||||
Reported at begin document}%
|
||||
\fi
|
||||
\if@dotoclof
|
||||
\ifEtoc@lof
|
||||
\etocsetup{localloftotoc}%
|
||||
\PackageInfo{etoc}{%
|
||||
Setting (or re-setting) `localloftotoc=true' as the\MessageBreak
|
||||
package tocbibind was detected and is configured for\MessageBreak
|
||||
`LOF to toc'. Reported at begin document}%
|
||||
\fi
|
||||
\fi
|
||||
\if@dotoclot
|
||||
\ifEtoc@lot
|
||||
\etocsetup{locallottotoc}%
|
||||
\PackageInfo{etoc}{%
|
||||
Setting (or re-setting) `locallottotoc=true' as the\MessageBreak
|
||||
package tocbibind was detected and is configured for\MessageBreak
|
||||
`LOT to toc'. Reported at begin document}%
|
||||
\fi
|
||||
\fi
|
||||
}% end of tocbibind branch
|
||||
{}%
|
||||
}% end of at begin document
|
||||
}% end of not with memoir branch
|
||||
\def\Etoc@addtocontents #1#2{%
|
||||
\addtocontents {toc}{%
|
||||
\protect\contentsline{#1}{#2}{\thepage}{\ifEtoc@hyperref\@currentHref\fi}%
|
||||
\ifdefined\protected@file@percent\protected@file@percent\fi
|
||||
}%
|
||||
}
|
||||
\def\Etoc@addcontentsline@ #1#2#3{%
|
||||
\@namedef{toclevel@#1}{#3}\addcontentsline {toc}{#1}{#2}%
|
||||
}
|
||||
\DeclareRobustCommand*{\etoctoccontentsline}
|
||||
{\@ifstar{\Etoc@addcontentsline@}{\Etoc@addtocontents}}
|
||||
\def\Etoc@addtocontents@immediately#1#2{%
|
||||
\begingroup
|
||||
\let\Etoc@originalwrite\write
|
||||
\def\write{\immediate\Etoc@originalwrite}%
|
||||
\Etoc@addtocontents{#1}{#2}%
|
||||
\endgroup
|
||||
}
|
||||
\def\Etoc@addcontentsline@@immediately#1#2#3{%
|
||||
\begingroup
|
||||
\let\Etoc@originalwrite\write
|
||||
\def\write{\immediate\Etoc@originalwrite}%
|
||||
\Etoc@addcontentsline@{#1}{#2}{#3}%
|
||||
\endgoroup
|
||||
}
|
||||
\DeclareRobustCommand*{\etocimmediatetoccontentsline}
|
||||
{\@ifstar{\Etoc@addcontentsline@@immediately}{\Etoc@addtocontents@immediately}}
|
||||
\def\Etoc@storetocdepth {\xdef\Etoc@savedtocdepth{\number\c@tocdepth}}
|
||||
\def\Etoc@restoretocdepth {\global\c@tocdepth\Etoc@savedtocdepth\relax}
|
||||
\def\etocobeytoctocdepth {\def\etoc@settocdepth
|
||||
{\afterassignment\Etoc@@nottoodeep \global\c@tocdepth}}
|
||||
\def\Etoc@@nottoodeep {\ifnum\Etoc@savedtocdepth<\c@tocdepth
|
||||
\global\c@tocdepth\Etoc@savedtocdepth\relax\fi }
|
||||
\def\etocignoretoctocdepth {\let\etoc@settocdepth\@gobble }
|
||||
\def\etocsettocdepth {\futurelet\Etoc@nexttoken\Etoc@set@tocdepth }
|
||||
\def\Etoc@set@tocdepth {\ifx\Etoc@nexttoken\bgroup
|
||||
\expandafter\Etoc@set@tocdepth@
|
||||
\else\expandafter\Etoc@set@toctocdepth
|
||||
\fi }
|
||||
\def\Etoc@set@tocdepth@ #1{\@ifundefined {Etoc@#1@@}
|
||||
{\PackageWarning{etoc}
|
||||
{Unknown sectioning unit #1, \protect\etocsettocdepth\space ignored}}
|
||||
{\global\c@tocdepth\csname Etoc@#1@@\endcsname}%
|
||||
}
|
||||
\def\Etoc@set@toctocdepth #1#{\Etoc@set@toctocdepth@ }
|
||||
\def\Etoc@set@toctocdepth@ #1{%
|
||||
\@ifundefined{Etoc@#1@@}%
|
||||
{\PackageWarning{etoc}
|
||||
{Unknown sectioning depth #1, \protect\etocsettocdepth.toc ignored}}%
|
||||
{\addtocontents {toc}
|
||||
{\protect\etoc@settocdepth\expandafter\protect\csname Etoc@#1@@\endcsname}}%
|
||||
}
|
||||
\def\etocimmediatesettocdepth #1#{\Etoc@set@toctocdepth@immediately}
|
||||
\def\Etoc@set@toctocdepth@immediately #1{%
|
||||
\@ifundefined{Etoc@#1@@}%
|
||||
{\PackageWarning{etoc}
|
||||
{Unknown sectioning depth #1, \protect\etocimmediatesettocdepth.toc ignored}}%
|
||||
{\begingroup
|
||||
\let\Etoc@originalwrite\write
|
||||
\def\write{\immediate\Etoc@originalwrite}%
|
||||
\addtocontents {toc}
|
||||
{\protect\etoc@settocdepth\expandafter\protect
|
||||
\csname Etoc@#1@@\endcsname}%
|
||||
\endgroup
|
||||
}%
|
||||
}
|
||||
\def\etocdepthtag #1#{\Etoc@depthtag }
|
||||
\def\Etoc@depthtag #1{\addtocontents {toc}{\protect\etoc@depthtag {#1}}}
|
||||
\def\etocimmediatedepthtag #1#{\Etoc@depthtag@immediately }
|
||||
\def\Etoc@depthtag@immediately #1{%
|
||||
\begingroup
|
||||
\let\Etoc@originalwrite\write
|
||||
\def\write{\immediate\Etoc@originalwrite}%
|
||||
\addtocontents {toc}{\protect\etoc@depthtag {#1}}%
|
||||
\endgroup
|
||||
}
|
||||
\def\etocignoredepthtags {\let\etoc@depthtag \@gobble }
|
||||
\def\etocobeydepthtags {\let\etoc@depthtag \Etoc@depthtag@ }
|
||||
\def\Etoc@depthtag@ #1{\@ifundefined{Etoc@depthof@#1}%
|
||||
{}% ignore in silence if tag has no associated depth
|
||||
{\afterassignment\Etoc@@nottoodeep
|
||||
\global\c@tocdepth\csname Etoc@depthof@#1\endcsname}%
|
||||
}
|
||||
\def\etocsettagdepth #1#2{\@ifundefined{Etoc@#2@@}%
|
||||
{\PackageWarning{etoc}
|
||||
{Unknown sectioning depth #2, \protect\etocsettagdepth\space ignored}}%
|
||||
{\@namedef{Etoc@depthof@#1}{\@nameuse{Etoc@#2@@}}}%
|
||||
}
|
||||
\def\Etoc@tocvsec@err #1{\PackageError {etoc}
|
||||
{The command \protect#1\space is incompatible with `etoc'}
|
||||
{Use \protect\etocsettocdepth.toc as replacement}%
|
||||
}%
|
||||
\AtBeginDocument {%
|
||||
\@ifclassloaded{memoir}
|
||||
{\PackageInfo {etoc}
|
||||
{Regarding `memoir' class command \protect\settocdepth, consider\MessageBreak
|
||||
\protect\etocsettocdepth.toc as a drop-in replacement with more\MessageBreak
|
||||
capabilities (see `etoc' manual). \space
|
||||
Also, \protect\etocsettocdepth\MessageBreak
|
||||
and \protect\etocsetnexttocdepth\space should be used in place of\MessageBreak
|
||||
`memoir' command \protect\maxtocdepth\@gobble}%
|
||||
}%
|
||||
{\@ifpackageloaded {tocvsec2}{%
|
||||
\def\maxtocdepth #1{\Etoc@tocvsec@err \maxtocdepth }%
|
||||
\def\settocdepth #1{\Etoc@tocvsec@err \settocdepth }%
|
||||
\def\resettocdepth {\@ifstar {\Etoc@tocvsec@err \resettocdepth }%
|
||||
{\Etoc@tocvsec@err \resettocdepth }%
|
||||
}%
|
||||
\def\save@tocdepth #1#2#3{}%
|
||||
\let\reset@tocdepth\relax
|
||||
\let\remax@tocdepth\relax
|
||||
\let\tableofcontents\etoctableofcontents
|
||||
\PackageWarningNoLine {etoc}
|
||||
{Package `tocvsec2' detected and its modification of\MessageBreak
|
||||
\protect\tableofcontents\space reverted. \space Use
|
||||
\protect\etocsettocdepth.toc\MessageBreak as a replacement
|
||||
for `tocvsec2' toc-related commands}%
|
||||
}% tocvsec2 loaded
|
||||
{}% tocvsec2 not loaded
|
||||
}%
|
||||
}%
|
||||
\def\invisibletableofcontents {\etocsetnexttocdepth {-3}\tableofcontents }%
|
||||
\def\invisiblelocaltableofcontents
|
||||
{\etocsetnexttocdepth {-3}\localtableofcontents }%
|
||||
\def\etocsetnexttocdepth #1{%
|
||||
\@ifundefined{Etoc@#1@@}
|
||||
{\PackageWarning{etoc}
|
||||
{Unknown sectioning unit #1, \protect\etocsetnextocdepth\space ignored}}
|
||||
{\Etoc@setnexttocdepth{\csname Etoc@#1@@\endcsname}}%
|
||||
}%
|
||||
\def\Etoc@setnexttocdepth#1{%
|
||||
\def\Etoc@tocdepthset{%
|
||||
\Etoc@tocdepthreset
|
||||
\edef\Etoc@tocdepthreset {%
|
||||
\global\c@tocdepth\the\c@tocdepth\space
|
||||
\global\let\noexpand\Etoc@tocdepthreset\noexpand\@empty
|
||||
}%
|
||||
\global\c@tocdepth#1%
|
||||
\global\let\Etoc@tocdepthset\@empty
|
||||
}%
|
||||
}%
|
||||
\let\Etoc@tocdepthreset\@empty
|
||||
\let\Etoc@tocdepthset \@empty
|
||||
\def\etocsetlocaltop #1#{\Etoc@set@localtop}%
|
||||
\def\Etoc@set@localtop #1{%
|
||||
\@ifundefined{Etoc@#1@@}%
|
||||
{\PackageWarning{etoc}
|
||||
{Unknown sectioning depth #1, \protect\etocsetlocaltop.toc ignored}}%
|
||||
{\addtocontents {toc}
|
||||
{\protect\etoc@setlocaltop\expandafter\protect\csname Etoc@#1@@\endcsname}}%
|
||||
}%
|
||||
\def\etocimmediatesetlocaltop #1#{\Etoc@set@localtop@immediately}%
|
||||
\def\Etoc@set@localtop@immediately #1{%
|
||||
\@ifundefined{Etoc@#1@@}%
|
||||
{\PackageWarning{etoc}
|
||||
{Unknown sectioning depth #1, \protect\etocimmediatesetlocaltop.toc ignored}}%
|
||||
{\begingroup
|
||||
\let\Etoc@originalwrite\write
|
||||
\def\write{\immediate\Etoc@originalwrite}%
|
||||
\addtocontents {toc}
|
||||
{\protect\etoc@setlocaltop\expandafter\protect
|
||||
\csname Etoc@#1@@\endcsname}%
|
||||
\endgroup
|
||||
}%
|
||||
}%
|
||||
\def\etoc@setlocaltop #1{%
|
||||
\ifnum#1=\Etoc@maxlevel
|
||||
\Etoc@skipthisonetrue
|
||||
\else
|
||||
\Etoc@skipthisonefalse
|
||||
\global\let\Etoc@level #1%
|
||||
\global\let\Etoc@virtualtop #1%
|
||||
\ifEtoc@localtoc
|
||||
\ifEtoc@stoptoc
|
||||
\Etoc@skipthisonetrue
|
||||
\else
|
||||
\ifEtoc@notactive
|
||||
\Etoc@skipthisonetrue
|
||||
\else
|
||||
\unless\ifnum\Etoc@level>\etoclocaltop
|
||||
\Etoc@skipthisonetrue
|
||||
\global\Etoc@stoptoctrue
|
||||
\fi
|
||||
\fi
|
||||
\fi
|
||||
\fi
|
||||
\fi
|
||||
\let\Etoc@next\@empty
|
||||
\ifEtoc@skipthisone
|
||||
\else
|
||||
\ifnum\Etoc@level>\c@tocdepth
|
||||
\else
|
||||
\ifEtoc@standardlines
|
||||
\else
|
||||
\let\Etoc@next\Etoc@setlocaltop@doendsandbegin
|
||||
\fi
|
||||
\fi
|
||||
\fi
|
||||
\Etoc@next
|
||||
}%
|
||||
\def\Etoc@setlocaltop@doendsandbegin{%
|
||||
\Etoc@doendsandbegin
|
||||
\global\Etoc@skipprefixfalse
|
||||
}
|
||||
\addtocontents {toc}{\protect\@ifundefined{etoctocstyle}%
|
||||
{\let\protect\etoc@startlocaltoc\protect\@gobble
|
||||
\let\protect\etoc@settocdepth\protect\@gobble
|
||||
\let\protect\etoc@depthtag\protect\@gobble
|
||||
\let\protect\etoc@setlocaltop\protect\@gobble}{}}%
|
||||
\def\etocstandardlines {\Etoc@standardlinestrue}
|
||||
\def\etoctoclines {\Etoc@standardlinesfalse}
|
||||
\etocdefaultlines
|
||||
\etocstandardlines
|
||||
\def\etocstandarddisplaystyle{%
|
||||
\PackageWarningNoLine{etoc}{%
|
||||
\string\etocstandarddisplaystyle \on@line\MessageBreak
|
||||
is deprecated. \space Please use \string\etocclasstocstyle}%
|
||||
}
|
||||
\expandafter\def\expandafter\etocclasstocstyle\expandafter{%
|
||||
\etocclasstocstyle
|
||||
\Etoc@classstyletrue
|
||||
}
|
||||
\def\etocetoclocaltocstyle{\Etoc@etocstyletrue}
|
||||
\def\etocusertocstyle{\Etoc@etocstylefalse}
|
||||
\etocclasstocstyle
|
||||
\etocetoclocaltocstyle
|
||||
\etocobeytoctocdepth
|
||||
\etocobeydepthtags
|
||||
\let\etocbeforetitlehook \@empty
|
||||
\let\etocaftertitlehook \@empty
|
||||
\let\etocaftercontentshook \@empty
|
||||
\let\etocaftertochook \@empty
|
||||
\def\etockeeporiginaltableofcontents
|
||||
{\Etoc@keeporiginaltoctrue\let\tableofcontents\etocoriginaltableofcontents}%
|
||||
\endinput
|
||||
%%
|
||||
%% End of file `etoc.sty'.
|
||||
30
AllLibs/Modbus/Doc/latex/files.tex
Normal file
30
AllLibs/Modbus/Doc/latex/files.tex
Normal file
@@ -0,0 +1,30 @@
|
||||
\doxysection{File List}
|
||||
Here is a list of all documented files with brief descriptions\+:\begin{DoxyCompactList}
|
||||
\item\contentsline{section}{E\+:/.\+WORK/\+STM32/\+Diod\+\_\+\+Test/diode\+\_\+tester/\+Core/\+Modbus/\mbox{\hyperlink{____modbus__data_8c_source}{\+\_\+\+\_\+modbus\+\_\+data.\+c}} }{\pageref{____modbus__data_8c_source}}{}
|
||||
\item\contentsline{section}{E\+:/.\+WORK/\+STM32/\+Diod\+\_\+\+Test/diode\+\_\+tester/\+Core/\+Modbus/\mbox{\hyperlink{modbus__config_8h}{modbus\+\_\+config.\+h}} \\*Конфигурационные параметры Modbus устройства }{\pageref{modbus__config_8h}}{}
|
||||
\item\contentsline{section}{E\+:/.\+WORK/\+STM32/\+Diod\+\_\+\+Test/diode\+\_\+tester/\+Core/\+Modbus/\mbox{\hyperlink{modbus__data_8h}{modbus\+\_\+data.\+h}} \\*Определения структур данных Modbus устройства }{\pageref{modbus__data_8h}}{}
|
||||
\item\contentsline{section}{E\+:/.\+WORK/\+STM32/\+Diod\+\_\+\+Test/diode\+\_\+tester/\+Core/\+Modbus/\+Inc/\mbox{\hyperlink{____crc__algs_8h_source}{\+\_\+\+\_\+crc\+\_\+algs.\+h}} }{\pageref{____crc__algs_8h_source}}{}
|
||||
\item\contentsline{section}{E\+:/.\+WORK/\+STM32/\+Diod\+\_\+\+Test/diode\+\_\+tester/\+Core/\+Modbus/\+Inc/\mbox{\hyperlink{____modbus__compat_8h}{\+\_\+\+\_\+modbus\+\_\+compat.\+h}} \\*Модуль для совместимости библиотеки MODBUS }{\pageref{____modbus__compat_8h}}{}
|
||||
\item\contentsline{section}{E\+:/.\+WORK/\+STM32/\+Diod\+\_\+\+Test/diode\+\_\+tester/\+Core/\+Modbus/\+Inc/\mbox{\hyperlink{modbus_8h}{modbus.\+h}} \\*Главный заголовочный файл Modbus библиотеки }{\pageref{modbus_8h}}{}
|
||||
\item\contentsline{section}{E\+:/.\+WORK/\+STM32/\+Diod\+\_\+\+Test/diode\+\_\+tester/\+Core/\+Modbus/\+Inc/\mbox{\hyperlink{modbus__coils_8h}{modbus\+\_\+coils.\+h}} \\*Работа с коилами Modbus }{\pageref{modbus__coils_8h}}{}
|
||||
\item\contentsline{section}{E\+:/.\+WORK/\+STM32/\+Diod\+\_\+\+Test/diode\+\_\+tester/\+Core/\+Modbus/\+Inc/\mbox{\hyperlink{modbus__core_8h}{modbus\+\_\+core.\+h}} \\*Ядро Modbus протокола -\/ определения и структуры }{\pageref{modbus__core_8h}}{}
|
||||
\item\contentsline{section}{E\+:/.\+WORK/\+STM32/\+Diod\+\_\+\+Test/diode\+\_\+tester/\+Core/\+Modbus/\+Inc/\mbox{\hyperlink{modbus__devid_8h}{modbus\+\_\+devid.\+h}} \\*Идентификаторы устройства Modbus }{\pageref{modbus__devid_8h}}{}
|
||||
\item\contentsline{section}{E\+:/.\+WORK/\+STM32/\+Diod\+\_\+\+Test/diode\+\_\+tester/\+Core/\+Modbus/\+Inc/\mbox{\hyperlink{modbus__diag_8h}{modbus\+\_\+diag.\+h}} \\*Диагностика устройства Modbus }{\pageref{modbus__diag_8h}}{}
|
||||
\item\contentsline{section}{E\+:/.\+WORK/\+STM32/\+Diod\+\_\+\+Test/diode\+\_\+tester/\+Core/\+Modbus/\+Inc/\mbox{\hyperlink{modbus__holdregs_8h}{modbus\+\_\+holdregs.\+h}} \\*Работа с регистрами хранения Modbus }{\pageref{modbus__holdregs_8h}}{}
|
||||
\item\contentsline{section}{E\+:/.\+WORK/\+STM32/\+Diod\+\_\+\+Test/diode\+\_\+tester/\+Core/\+Modbus/\+Inc/\mbox{\hyperlink{modbus__inputregs_8h}{modbus\+\_\+inputregs.\+h}} \\*Работа с входными регистрами Modbus }{\pageref{modbus__inputregs_8h}}{}
|
||||
\item\contentsline{section}{E\+:/.\+WORK/\+STM32/\+Diod\+\_\+\+Test/diode\+\_\+tester/\+Core/\+Modbus/\+Inc/\mbox{\hyperlink{modbus__master_8h}{modbus\+\_\+master.\+h}} \\*Главный заголовочный файл Modbus библиотеки }{\pageref{modbus__master_8h}}{}
|
||||
\item\contentsline{section}{E\+:/.\+WORK/\+STM32/\+Diod\+\_\+\+Test/diode\+\_\+tester/\+Core/\+Modbus/\+Inc/\mbox{\hyperlink{modbus__slave_8h}{modbus\+\_\+slave.\+h}} \\*Главный заголовочный файл Modbus библиотеки }{\pageref{modbus__slave_8h}}{}
|
||||
\item\contentsline{section}{E\+:/.\+WORK/\+STM32/\+Diod\+\_\+\+Test/diode\+\_\+tester/\+Core/\+Modbus/\+Inc/\mbox{\hyperlink{rs__message_8h}{rs\+\_\+message.\+h}} \\*Библиотека обмена сообщениями по RS-\/интерфейсу }{\pageref{rs__message_8h}}{}
|
||||
\item\contentsline{section}{E\+:/.\+WORK/\+STM32/\+Diod\+\_\+\+Test/diode\+\_\+tester/\+Core/\+Modbus/\+Src/\mbox{\hyperlink{____crc__algs_8c_source}{\+\_\+\+\_\+crc\+\_\+algs.\+c}} }{\pageref{____crc__algs_8c_source}}{}
|
||||
\item\contentsline{section}{E\+:/.\+WORK/\+STM32/\+Diod\+\_\+\+Test/diode\+\_\+tester/\+Core/\+Modbus/\+Src/\mbox{\hyperlink{____modbus__compat_8c}{\+\_\+\+\_\+modbus\+\_\+compat.\+c}} \\*Модуль для совместимости библиотеки MODBUS }{\pageref{____modbus__compat_8c}}{}
|
||||
\item\contentsline{section}{E\+:/.\+WORK/\+STM32/\+Diod\+\_\+\+Test/diode\+\_\+tester/\+Core/\+Modbus/\+Src/\mbox{\hyperlink{modbus_8c}{modbus.\+c}} \\*Модуль для реализации MODBUS }{\pageref{modbus_8c}}{}
|
||||
\item\contentsline{section}{E\+:/.\+WORK/\+STM32/\+Diod\+\_\+\+Test/diode\+\_\+tester/\+Core/\+Modbus/\+Src/\mbox{\hyperlink{modbus__coils_8c}{modbus\+\_\+coils.\+c}} \\*Реализация работы с коилами Modbus }{\pageref{modbus__coils_8c}}{}
|
||||
\item\contentsline{section}{E\+:/.\+WORK/\+STM32/\+Diod\+\_\+\+Test/diode\+\_\+tester/\+Core/\+Modbus/\+Src/\mbox{\hyperlink{modbus__core_8c}{modbus\+\_\+core.\+c}} \\*Базовая реализация ядра Modbus }{\pageref{modbus__core_8c}}{}
|
||||
\item\contentsline{section}{E\+:/.\+WORK/\+STM32/\+Diod\+\_\+\+Test/diode\+\_\+tester/\+Core/\+Modbus/\+Src/\mbox{\hyperlink{modbus__devid_8c}{modbus\+\_\+devid.\+c}} \\*Реализация идентификаторов устройства Modbus }{\pageref{modbus__devid_8c}}{}
|
||||
\item\contentsline{section}{E\+:/.\+WORK/\+STM32/\+Diod\+\_\+\+Test/diode\+\_\+tester/\+Core/\+Modbus/\+Src/\mbox{\hyperlink{modbus__diag_8c}{modbus\+\_\+diag.\+c}} \\*Реализация диагностики устройства Modbus }{\pageref{modbus__diag_8c}}{}
|
||||
\item\contentsline{section}{E\+:/.\+WORK/\+STM32/\+Diod\+\_\+\+Test/diode\+\_\+tester/\+Core/\+Modbus/\+Src/\mbox{\hyperlink{modbus__holdregs_8c}{modbus\+\_\+holdregs.\+c}} \\*Реализация работы с регистрами хранения Modbus }{\pageref{modbus__holdregs_8c}}{}
|
||||
\item\contentsline{section}{E\+:/.\+WORK/\+STM32/\+Diod\+\_\+\+Test/diode\+\_\+tester/\+Core/\+Modbus/\+Src/\mbox{\hyperlink{modbus__inputregs_8c}{modbus\+\_\+inputregs.\+c}} \\*Реализация работы с входными регистрами Modbus }{\pageref{modbus__inputregs_8c}}{}
|
||||
\item\contentsline{section}{E\+:/.\+WORK/\+STM32/\+Diod\+\_\+\+Test/diode\+\_\+tester/\+Core/\+Modbus/\+Src/\mbox{\hyperlink{modbus__master_8c}{modbus\+\_\+master.\+c}} \\*Модуль для реализации мастера MODBUS }{\pageref{modbus__master_8c}}{}
|
||||
\item\contentsline{section}{E\+:/.\+WORK/\+STM32/\+Diod\+\_\+\+Test/diode\+\_\+tester/\+Core/\+Modbus/\+Src/\mbox{\hyperlink{modbus__slave_8c}{modbus\+\_\+slave.\+c}} \\*Модуль для реализации слейв MODBUS }{\pageref{modbus__slave_8c}}{}
|
||||
\item\contentsline{section}{E\+:/.\+WORK/\+STM32/\+Diod\+\_\+\+Test/diode\+\_\+tester/\+Core/\+Modbus/\+Src/\mbox{\hyperlink{rs__message_8c}{rs\+\_\+message.\+c}} \\*Реализация протоколов обмена по RS/\+UART }{\pageref{rs__message_8c}}{}
|
||||
\end{DoxyCompactList}
|
||||
1
AllLibs/Modbus/Doc/latex/group___m_o_d_b_u_s.md5
Normal file
1
AllLibs/Modbus/Doc/latex/group___m_o_d_b_u_s.md5
Normal file
@@ -0,0 +1 @@
|
||||
22930d42a6214fed2ba88471ba491dc9
|
||||
BIN
AllLibs/Modbus/Doc/latex/group___m_o_d_b_u_s.pdf
Normal file
BIN
AllLibs/Modbus/Doc/latex/group___m_o_d_b_u_s.pdf
Normal file
Binary file not shown.
34
AllLibs/Modbus/Doc/latex/group___m_o_d_b_u_s.tex
Normal file
34
AllLibs/Modbus/Doc/latex/group___m_o_d_b_u_s.tex
Normal file
@@ -0,0 +1,34 @@
|
||||
\doxysection{Modbus tools }
|
||||
\hypertarget{group___m_o_d_b_u_s}{}\label{group___m_o_d_b_u_s}\index{Modbus tools@{Modbus tools}}
|
||||
|
||||
|
||||
Библиотека реализующая протокол Modbus.
|
||||
|
||||
|
||||
Collaboration diagram for Modbus tools\+:\nopagebreak
|
||||
\begin{figure}[H]
|
||||
\begin{center}
|
||||
\leavevmode
|
||||
\includegraphics[width=308pt]{group___m_o_d_b_u_s}
|
||||
\end{center}
|
||||
\end{figure}
|
||||
\doxysubsubsection*{Topics}
|
||||
\begin{DoxyCompactItemize}
|
||||
\item
|
||||
\mbox{\hyperlink{group___m_o_d_b_u_s___d_a_t_a}{Modbus Registers Map}}
|
||||
\begin{DoxyCompactList}\small\item\em Определение карты регистров и коилов \end{DoxyCompactList}\item
|
||||
\mbox{\hyperlink{group___m_o_d_b_u_s___f_u_n_c_t_i_o_n_s}{Main API for Modbus Library}}
|
||||
\begin{DoxyCompactList}\small\item\em Публичные функции библиотеки \end{DoxyCompactList}\item
|
||||
\mbox{\hyperlink{group___m_o_d_b_u_s___i_n_t_e_r_n_a_l}{Modbus Internal Tools}}
|
||||
\begin{DoxyCompactList}\small\item\em Внутренние штуки библиотеки \end{DoxyCompactList}\item
|
||||
\mbox{\hyperlink{group___m_o_d_b_u_s___c_o_n_f_i_g_s}{Modbus configs}}
|
||||
\begin{DoxyCompactList}\small\item\em Конфигурация библиотеки \end{DoxyCompactList}\end{DoxyCompactItemize}
|
||||
|
||||
|
||||
\doxysubsection{Detailed Description}
|
||||
Библиотека реализующая протокол Modbus.
|
||||
|
||||
\input{group___m_o_d_b_u_s___d_a_t_a}
|
||||
\input{group___m_o_d_b_u_s___f_u_n_c_t_i_o_n_s}
|
||||
\input{group___m_o_d_b_u_s___i_n_t_e_r_n_a_l}
|
||||
\input{group___m_o_d_b_u_s___c_o_n_f_i_g_s}
|
||||
@@ -0,0 +1 @@
|
||||
a49e80383e9c0836a654c6c6f00fa3e9
|
||||
Binary file not shown.
@@ -0,0 +1,350 @@
|
||||
\doxysubsubsection{Internal Process Functions }
|
||||
\hypertarget{group___m_o_d_b_u_s___c_m_d___p_r_o_c_e_s_s___f_u_n_c_t_i_o_n_s}{}\label{group___m_o_d_b_u_s___c_m_d___p_r_o_c_e_s_s___f_u_n_c_t_i_o_n_s}\index{Internal Process Functions@{Internal Process Functions}}
|
||||
|
||||
|
||||
Функции обработки запросов модбас
|
||||
|
||||
|
||||
Collaboration diagram for Internal Process Functions\+:\nopagebreak
|
||||
\begin{figure}[H]
|
||||
\begin{center}
|
||||
\leavevmode
|
||||
\includegraphics[width=350pt]{group___m_o_d_b_u_s___c_m_d___p_r_o_c_e_s_s___f_u_n_c_t_i_o_n_s}
|
||||
\end{center}
|
||||
\end{figure}
|
||||
\doxysubsubsubsubsection*{Topics}
|
||||
\begin{DoxyCompactItemize}
|
||||
\item
|
||||
\mbox{\hyperlink{group___m_o_d_b_u_s___m_a_s_t_e_r}{Modbus master funtions}}
|
||||
\begin{DoxyCompactList}\small\item\em Функции для работы в режиме Master. \end{DoxyCompactList}\item
|
||||
\mbox{\hyperlink{group___m_o_d_b_u_s___s_l_a_v_e}{Modbus slave funtions}}
|
||||
\begin{DoxyCompactList}\small\item\em Функции для работы в режиме Slave. \end{DoxyCompactList}\end{DoxyCompactItemize}
|
||||
\doxysubsubsubsubsection*{Functions}
|
||||
\begin{DoxyCompactItemize}
|
||||
\item
|
||||
uint8\+\_\+t \mbox{\hyperlink{group___m_o_d_b_u_s___c_m_d___p_r_o_c_e_s_s___f_u_n_c_t_i_o_n_s_ga39a02e8e4911a74a619d2ef29adcbad8}{MB\+\_\+\+Process\+\_\+\+Read\+\_\+\+Coils}} (\mbox{\hyperlink{struct_r_s___msg_type_def}{RS\+\_\+\+Msg\+Type\+Def}} \texorpdfstring{$\ast$}{*}modbus\+\_\+msg)
|
||||
\begin{DoxyCompactList}\small\item\em Обработать функцию Read Coils (01 -\/ 0x01). \end{DoxyCompactList}\item
|
||||
uint8\+\_\+t \mbox{\hyperlink{group___m_o_d_b_u_s___c_m_d___p_r_o_c_e_s_s___f_u_n_c_t_i_o_n_s_ga918102931c9125a5e44a30e103d17e14}{MB\+\_\+\+Process\+\_\+\+Write\+\_\+\+Single\+\_\+\+Coil}} (\mbox{\hyperlink{struct_r_s___msg_type_def}{RS\+\_\+\+Msg\+Type\+Def}} \texorpdfstring{$\ast$}{*}modbus\+\_\+msg)
|
||||
\begin{DoxyCompactList}\small\item\em Обработать функцию Write Single Coils (05 -\/ 0x05). \end{DoxyCompactList}\item
|
||||
uint8\+\_\+t \mbox{\hyperlink{group___m_o_d_b_u_s___c_m_d___p_r_o_c_e_s_s___f_u_n_c_t_i_o_n_s_ga6f4498cec8634820025aaa9c4623ba55}{MB\+\_\+\+Process\+\_\+\+Write\+\_\+\+Miltuple\+\_\+\+Coils}} (\mbox{\hyperlink{struct_r_s___msg_type_def}{RS\+\_\+\+Msg\+Type\+Def}} \texorpdfstring{$\ast$}{*}modbus\+\_\+msg)
|
||||
\begin{DoxyCompactList}\small\item\em Обработать функцию Write Multiple Coils (15 -\/ 0x0F). \end{DoxyCompactList}\item
|
||||
\mbox{\hyperlink{group___m_o_d_b_u_s___m_e_s_s_a_g_e___d_e_f_i_n_e_s_ga4ade64cb3fabf37f010c1e297489980c}{MB\+\_\+\+Exception\+Type\+Def}} \mbox{\hyperlink{group___m_o_d_b_u_s___c_m_d___p_r_o_c_e_s_s___f_u_n_c_t_i_o_n_s_ga278ca9791c69aef8adeb9e7c4b273c50}{MB\+\_\+\+Check\+\_\+\+Address\+\_\+\+For\+\_\+\+Arr}} (uint16\+\_\+t Addr, uint16\+\_\+t Qnt, uint16\+\_\+t R\+\_\+\+ARR\+\_\+\+ADDR, uint16\+\_\+t R\+\_\+\+ARR\+\_\+\+NUMB)
|
||||
\begin{DoxyCompactList}\small\item\em Check is address valid for certain array. \end{DoxyCompactList}\item
|
||||
\mbox{\hyperlink{group___m_o_d_b_u_s___m_e_s_s_a_g_e___d_e_f_i_n_e_s_ga4ade64cb3fabf37f010c1e297489980c}{MB\+\_\+\+Exception\+Type\+Def}} \mbox{\hyperlink{group___m_o_d_b_u_s___c_m_d___p_r_o_c_e_s_s___f_u_n_c_t_i_o_n_s_ga1e90bb28a4cf997250daab6470d5ffe3}{MB\+\_\+\+Define\+Registers\+Address}} (uint16\+\_\+t \texorpdfstring{$\ast$}{*}\texorpdfstring{$\ast$}{*}p\+Regs, uint16\+\_\+t Addr, uint16\+\_\+t Qnt, uint8\+\_\+t Register\+Type)
|
||||
\begin{DoxyCompactList}\small\item\em Define Address Origin for Input/\+Holding Registers. \end{DoxyCompactList}\item
|
||||
\mbox{\hyperlink{group___m_o_d_b_u_s___m_e_s_s_a_g_e___d_e_f_i_n_e_s_ga4ade64cb3fabf37f010c1e297489980c}{MB\+\_\+\+Exception\+Type\+Def}} \mbox{\hyperlink{group___m_o_d_b_u_s___c_m_d___p_r_o_c_e_s_s___f_u_n_c_t_i_o_n_s_gade717a6829a062a8a198bd933c8b2221}{MB\+\_\+\+Define\+Coils\+Address}} (uint16\+\_\+t \texorpdfstring{$\ast$}{*}\texorpdfstring{$\ast$}{*}p\+Coils, uint16\+\_\+t Addr, uint16\+\_\+t Qnt, uint16\+\_\+t \texorpdfstring{$\ast$}{*}start\+\_\+shift, uint8\+\_\+t Write\+Flag)
|
||||
\begin{DoxyCompactList}\small\item\em Define Address Origin for coils. \end{DoxyCompactList}\item
|
||||
uint8\+\_\+t \mbox{\hyperlink{group___m_o_d_b_u_s___c_m_d___p_r_o_c_e_s_s___f_u_n_c_t_i_o_n_s_ga279ce6d9d175a43714862dc6661e7096}{MB\+\_\+\+Process\+\_\+\+Read\+\_\+\+Device\+\_\+\+Identifications}} (\mbox{\hyperlink{struct_r_s___msg_type_def}{RS\+\_\+\+Msg\+Type\+Def}} \texorpdfstring{$\ast$}{*}modbus\+\_\+msg)
|
||||
\begin{DoxyCompactList}\small\item\em Обработать функцию Read Device Identifications (43/14 -\/ 0x2\+B/0E). \end{DoxyCompactList}\item
|
||||
uint8\+\_\+t \mbox{\hyperlink{group___m_o_d_b_u_s___c_m_d___p_r_o_c_e_s_s___f_u_n_c_t_i_o_n_s_ga6bbfc53b20b4698a08d79851b5db65f0}{MB\+\_\+\+Process\+\_\+\+Diagnostics}} (\mbox{\hyperlink{struct_r_s___msg_type_def}{RS\+\_\+\+Msg\+Type\+Def}} \texorpdfstring{$\ast$}{*}modbus\+\_\+msg)
|
||||
\begin{DoxyCompactList}\small\item\em Обработать функцию Diagnostics (Serial Line only) (0x08) \end{DoxyCompactList}\item
|
||||
uint8\+\_\+t \mbox{\hyperlink{group___m_o_d_b_u_s___c_m_d___p_r_o_c_e_s_s___f_u_n_c_t_i_o_n_s_gac28127757ba25fe0b611612a785f663b}{MB\+\_\+\+Process\+\_\+\+Read\+\_\+\+Hold\+\_\+\+Regs}} (\mbox{\hyperlink{struct_r_s___msg_type_def}{RS\+\_\+\+Msg\+Type\+Def}} \texorpdfstring{$\ast$}{*}modbus\+\_\+msg)
|
||||
\begin{DoxyCompactList}\small\item\em Обработать функцию Read Holding Registers (03 -\/ 0x03). \end{DoxyCompactList}\item
|
||||
uint8\+\_\+t \mbox{\hyperlink{group___m_o_d_b_u_s___c_m_d___p_r_o_c_e_s_s___f_u_n_c_t_i_o_n_s_ga02e192a3d9f31737c45f074a04b37648}{MB\+\_\+\+Process\+\_\+\+Write\+\_\+\+Single\+\_\+\+Reg}} (\mbox{\hyperlink{struct_r_s___msg_type_def}{RS\+\_\+\+Msg\+Type\+Def}} \texorpdfstring{$\ast$}{*}modbus\+\_\+msg)
|
||||
\begin{DoxyCompactList}\small\item\em Обработать функцию Write Single Register (06 -\/ 0x06). \end{DoxyCompactList}\item
|
||||
uint8\+\_\+t \mbox{\hyperlink{group___m_o_d_b_u_s___c_m_d___p_r_o_c_e_s_s___f_u_n_c_t_i_o_n_s_ga9c6ab159edb8dda6548b2228773ce919}{MB\+\_\+\+Process\+\_\+\+Write\+\_\+\+Miltuple\+\_\+\+Regs}} (\mbox{\hyperlink{struct_r_s___msg_type_def}{RS\+\_\+\+Msg\+Type\+Def}} \texorpdfstring{$\ast$}{*}modbus\+\_\+msg)
|
||||
\begin{DoxyCompactList}\small\item\em Обработать функцию Write Multiple Registers (16 -\/ 0x10). \end{DoxyCompactList}\item
|
||||
uint8\+\_\+t \mbox{\hyperlink{group___m_o_d_b_u_s___c_m_d___p_r_o_c_e_s_s___f_u_n_c_t_i_o_n_s_gad13d010f43c7ab08a85667b9e1906b7d}{MB\+\_\+\+Process\+\_\+\+Read\+\_\+\+Input\+\_\+\+Regs}} (\mbox{\hyperlink{struct_r_s___msg_type_def}{RS\+\_\+\+Msg\+Type\+Def}} \texorpdfstring{$\ast$}{*}modbus\+\_\+msg)
|
||||
\begin{DoxyCompactList}\small\item\em Обработать функцию Read Input Registers (04 -\/ 0x04). \end{DoxyCompactList}\end{DoxyCompactItemize}
|
||||
|
||||
|
||||
\doxysubsubsubsection{Detailed Description}
|
||||
Функции обработки запросов модбас
|
||||
|
||||
|
||||
|
||||
\label{doc-func-members}
|
||||
\Hypertarget{group___m_o_d_b_u_s___c_m_d___p_r_o_c_e_s_s___f_u_n_c_t_i_o_n_s_doc-func-members}
|
||||
\doxysubsubsubsection{Function Documentation}
|
||||
\Hypertarget{group___m_o_d_b_u_s___c_m_d___p_r_o_c_e_s_s___f_u_n_c_t_i_o_n_s_ga39a02e8e4911a74a619d2ef29adcbad8}\index{Internal Process Functions@{Internal Process Functions}!MB\_Process\_Read\_Coils@{MB\_Process\_Read\_Coils}}
|
||||
\index{MB\_Process\_Read\_Coils@{MB\_Process\_Read\_Coils}!Internal Process Functions@{Internal Process Functions}}
|
||||
\doxysubsubsubsubsection{\texorpdfstring{MB\_Process\_Read\_Coils()}{MB\_Process\_Read\_Coils()}}
|
||||
{\footnotesize\ttfamily \label{group___m_o_d_b_u_s___c_m_d___p_r_o_c_e_s_s___f_u_n_c_t_i_o_n_s_ga39a02e8e4911a74a619d2ef29adcbad8}
|
||||
uint8\+\_\+t MB\+\_\+\+Process\+\_\+\+Read\+\_\+\+Coils (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{struct_r_s___msg_type_def}{RS\+\_\+\+Msg\+Type\+Def}} \texorpdfstring{$\ast$}{*}}]{modbus\+\_\+msg}{}\end{DoxyParamCaption})}
|
||||
|
||||
|
||||
|
||||
Обработать функцию Read Coils (01 -\/ 0x01).
|
||||
|
||||
|
||||
\begin{DoxyParams}{Parameters}
|
||||
{\em modbus\+\_\+msg} & Указатель на структуру собщения modbus. \\
|
||||
\hline
|
||||
\end{DoxyParams}
|
||||
\begin{DoxyReturn}{Returns}
|
||||
f\+Message\+Handled Статус о результате обработки комманды.
|
||||
\end{DoxyReturn}
|
||||
Обработка команды Read Coils.
|
||||
|
||||
Definition at line \mbox{\hyperlink{modbus__coils_8c_source_l00103}{103}} of file \mbox{\hyperlink{modbus__coils_8c_source}{modbus\+\_\+coils.\+c}}.
|
||||
|
||||
\Hypertarget{group___m_o_d_b_u_s___c_m_d___p_r_o_c_e_s_s___f_u_n_c_t_i_o_n_s_ga918102931c9125a5e44a30e103d17e14}\index{Internal Process Functions@{Internal Process Functions}!MB\_Process\_Write\_Single\_Coil@{MB\_Process\_Write\_Single\_Coil}}
|
||||
\index{MB\_Process\_Write\_Single\_Coil@{MB\_Process\_Write\_Single\_Coil}!Internal Process Functions@{Internal Process Functions}}
|
||||
\doxysubsubsubsubsection{\texorpdfstring{MB\_Process\_Write\_Single\_Coil()}{MB\_Process\_Write\_Single\_Coil()}}
|
||||
{\footnotesize\ttfamily \label{group___m_o_d_b_u_s___c_m_d___p_r_o_c_e_s_s___f_u_n_c_t_i_o_n_s_ga918102931c9125a5e44a30e103d17e14}
|
||||
uint8\+\_\+t MB\+\_\+\+Process\+\_\+\+Write\+\_\+\+Single\+\_\+\+Coil (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{struct_r_s___msg_type_def}{RS\+\_\+\+Msg\+Type\+Def}} \texorpdfstring{$\ast$}{*}}]{modbus\+\_\+msg}{}\end{DoxyParamCaption})}
|
||||
|
||||
|
||||
|
||||
Обработать функцию Write Single Coils (05 -\/ 0x05).
|
||||
|
||||
|
||||
\begin{DoxyParams}{Parameters}
|
||||
{\em modbus\+\_\+msg} & Указатель на структуру собщения modbus. \\
|
||||
\hline
|
||||
\end{DoxyParams}
|
||||
\begin{DoxyReturn}{Returns}
|
||||
f\+Message\+Handled Статус о результате обработки комманды.
|
||||
\end{DoxyReturn}
|
||||
Обработка команды Write Single Coils.
|
||||
|
||||
Definition at line \mbox{\hyperlink{modbus__coils_8c_source_l00156}{156}} of file \mbox{\hyperlink{modbus__coils_8c_source}{modbus\+\_\+coils.\+c}}.
|
||||
|
||||
\Hypertarget{group___m_o_d_b_u_s___c_m_d___p_r_o_c_e_s_s___f_u_n_c_t_i_o_n_s_ga6f4498cec8634820025aaa9c4623ba55}\index{Internal Process Functions@{Internal Process Functions}!MB\_Process\_Write\_Miltuple\_Coils@{MB\_Process\_Write\_Miltuple\_Coils}}
|
||||
\index{MB\_Process\_Write\_Miltuple\_Coils@{MB\_Process\_Write\_Miltuple\_Coils}!Internal Process Functions@{Internal Process Functions}}
|
||||
\doxysubsubsubsubsection{\texorpdfstring{MB\_Process\_Write\_Miltuple\_Coils()}{MB\_Process\_Write\_Miltuple\_Coils()}}
|
||||
{\footnotesize\ttfamily \label{group___m_o_d_b_u_s___c_m_d___p_r_o_c_e_s_s___f_u_n_c_t_i_o_n_s_ga6f4498cec8634820025aaa9c4623ba55}
|
||||
uint8\+\_\+t MB\+\_\+\+Process\+\_\+\+Write\+\_\+\+Miltuple\+\_\+\+Coils (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{struct_r_s___msg_type_def}{RS\+\_\+\+Msg\+Type\+Def}} \texorpdfstring{$\ast$}{*}}]{modbus\+\_\+msg}{}\end{DoxyParamCaption})}
|
||||
|
||||
|
||||
|
||||
Обработать функцию Write Multiple Coils (15 -\/ 0x0F).
|
||||
|
||||
|
||||
\begin{DoxyParams}{Parameters}
|
||||
{\em modbus\+\_\+msg} & Указатель на структуру собщения modbus. \\
|
||||
\hline
|
||||
\end{DoxyParams}
|
||||
\begin{DoxyReturn}{Returns}
|
||||
f\+Message\+Handled Статус о результате обработки комманды.
|
||||
\end{DoxyReturn}
|
||||
Обработка команды Write Multiple Coils.
|
||||
|
||||
Definition at line \mbox{\hyperlink{modbus__coils_8c_source_l00187}{187}} of file \mbox{\hyperlink{modbus__coils_8c_source}{modbus\+\_\+coils.\+c}}.
|
||||
|
||||
\Hypertarget{group___m_o_d_b_u_s___c_m_d___p_r_o_c_e_s_s___f_u_n_c_t_i_o_n_s_ga278ca9791c69aef8adeb9e7c4b273c50}\index{Internal Process Functions@{Internal Process Functions}!MB\_Check\_Address\_For\_Arr@{MB\_Check\_Address\_For\_Arr}}
|
||||
\index{MB\_Check\_Address\_For\_Arr@{MB\_Check\_Address\_For\_Arr}!Internal Process Functions@{Internal Process Functions}}
|
||||
\doxysubsubsubsubsection{\texorpdfstring{MB\_Check\_Address\_For\_Arr()}{MB\_Check\_Address\_For\_Arr()}}
|
||||
{\footnotesize\ttfamily \label{group___m_o_d_b_u_s___c_m_d___p_r_o_c_e_s_s___f_u_n_c_t_i_o_n_s_ga278ca9791c69aef8adeb9e7c4b273c50}
|
||||
\mbox{\hyperlink{group___m_o_d_b_u_s___m_e_s_s_a_g_e___d_e_f_i_n_e_s_ga4ade64cb3fabf37f010c1e297489980c}{MB\+\_\+\+Exception\+Type\+Def}} MB\+\_\+\+Check\+\_\+\+Address\+\_\+\+For\+\_\+\+Arr (\begin{DoxyParamCaption}\item[{uint16\+\_\+t}]{Addr}{, }\item[{uint16\+\_\+t}]{Qnt}{, }\item[{uint16\+\_\+t}]{R\+\_\+\+ARR\+\_\+\+ADDR}{, }\item[{uint16\+\_\+t}]{R\+\_\+\+ARR\+\_\+\+NUMB}{}\end{DoxyParamCaption})}
|
||||
|
||||
|
||||
|
||||
Check is address valid for certain array.
|
||||
|
||||
|
||||
\begin{DoxyParams}{Parameters}
|
||||
{\em Addr} & Начальный адресс. \\
|
||||
\hline
|
||||
{\em Qnt} & Количество запрашиваемых элементов. \\
|
||||
\hline
|
||||
{\em R\+\_\+\+ARR\+\_\+\+ADDR} & Начальный адресс массива R\+\_\+\+ARR. \\
|
||||
\hline
|
||||
{\em R\+\_\+\+ARR\+\_\+\+NUMB} & Количество элементов в массиве R\+\_\+\+ARR. \\
|
||||
\hline
|
||||
\end{DoxyParams}
|
||||
\begin{DoxyReturn}{Returns}
|
||||
Exception\+Code -\/ ET\+\_\+\+ILLEGAL\+\_\+\+DATA\+\_\+\+ADRESS если адресс недействителен, и ET\+\_\+\+NO\+\_\+\+ERRORS если все ок.
|
||||
\end{DoxyReturn}
|
||||
Позволяет определить, принадлежит ли адресс Addr массиву R\+\_\+\+ARR\+: Если адресс Addr находится в диапазоне адрессов массива R\+\_\+\+ARR, то возвращаем NO\+\_\+\+ERROR. Если адресс Addr находится за пределами адрессов массива R\+\_\+\+ARR -\/ ET\+\_\+\+ILLEGAL\+\_\+\+DATA\+\_\+\+ADDRESSю.
|
||||
|
||||
Definition at line \mbox{\hyperlink{____modbus__data_8c_source_l00038}{38}} of file \mbox{\hyperlink{____modbus__data_8c_source}{\+\_\+\+\_\+modbus\+\_\+data.\+c}}.
|
||||
|
||||
\Hypertarget{group___m_o_d_b_u_s___c_m_d___p_r_o_c_e_s_s___f_u_n_c_t_i_o_n_s_ga1e90bb28a4cf997250daab6470d5ffe3}\index{Internal Process Functions@{Internal Process Functions}!MB\_DefineRegistersAddress@{MB\_DefineRegistersAddress}}
|
||||
\index{MB\_DefineRegistersAddress@{MB\_DefineRegistersAddress}!Internal Process Functions@{Internal Process Functions}}
|
||||
\doxysubsubsubsubsection{\texorpdfstring{MB\_DefineRegistersAddress()}{MB\_DefineRegistersAddress()}}
|
||||
{\footnotesize\ttfamily \label{group___m_o_d_b_u_s___c_m_d___p_r_o_c_e_s_s___f_u_n_c_t_i_o_n_s_ga1e90bb28a4cf997250daab6470d5ffe3}
|
||||
\mbox{\hyperlink{group___m_o_d_b_u_s___m_e_s_s_a_g_e___d_e_f_i_n_e_s_ga4ade64cb3fabf37f010c1e297489980c}{MB\+\_\+\+Exception\+Type\+Def}} MB\+\_\+\+Define\+Registers\+Address (\begin{DoxyParamCaption}\item[{uint16\+\_\+t \texorpdfstring{$\ast$}{*}\texorpdfstring{$\ast$}{*}}]{p\+Regs}{, }\item[{uint16\+\_\+t}]{Addr}{, }\item[{uint16\+\_\+t}]{Qnt}{, }\item[{uint8\+\_\+t}]{Register\+Type}{}\end{DoxyParamCaption})}
|
||||
|
||||
|
||||
|
||||
Define Address Origin for Input/\+Holding Registers.
|
||||
|
||||
|
||||
\begin{DoxyParams}{Parameters}
|
||||
{\em p\+Regs} & Указатель на указатель регистров. \\
|
||||
\hline
|
||||
{\em Addr} & Адрес начального регистра. \\
|
||||
\hline
|
||||
{\em Qnt} & Количество запрашиваемых регистров. \\
|
||||
\hline
|
||||
{\em Write\+Flag} & Флаг регистр нужны для чтения или записи. \\
|
||||
\hline
|
||||
\end{DoxyParams}
|
||||
\begin{DoxyReturn}{Returns}
|
||||
Exception\+Code Код исключения если есть, и ET\+\_\+\+NO\+\_\+\+ERRORS если нет.
|
||||
\end{DoxyReturn}
|
||||
Определение адреса начального регистра. \begin{DoxyNote}{Note}
|
||||
Write\+Flag пока не используется.
|
||||
\end{DoxyNote}
|
||||
|
||||
|
||||
Definition at line \mbox{\hyperlink{____modbus__data_8c_source_l00066}{66}} of file \mbox{\hyperlink{____modbus__data_8c_source}{\+\_\+\+\_\+modbus\+\_\+data.\+c}}.
|
||||
|
||||
\Hypertarget{group___m_o_d_b_u_s___c_m_d___p_r_o_c_e_s_s___f_u_n_c_t_i_o_n_s_gade717a6829a062a8a198bd933c8b2221}\index{Internal Process Functions@{Internal Process Functions}!MB\_DefineCoilsAddress@{MB\_DefineCoilsAddress}}
|
||||
\index{MB\_DefineCoilsAddress@{MB\_DefineCoilsAddress}!Internal Process Functions@{Internal Process Functions}}
|
||||
\doxysubsubsubsubsection{\texorpdfstring{MB\_DefineCoilsAddress()}{MB\_DefineCoilsAddress()}}
|
||||
{\footnotesize\ttfamily \label{group___m_o_d_b_u_s___c_m_d___p_r_o_c_e_s_s___f_u_n_c_t_i_o_n_s_gade717a6829a062a8a198bd933c8b2221}
|
||||
\mbox{\hyperlink{group___m_o_d_b_u_s___m_e_s_s_a_g_e___d_e_f_i_n_e_s_ga4ade64cb3fabf37f010c1e297489980c}{MB\+\_\+\+Exception\+Type\+Def}} MB\+\_\+\+Define\+Coils\+Address (\begin{DoxyParamCaption}\item[{uint16\+\_\+t \texorpdfstring{$\ast$}{*}\texorpdfstring{$\ast$}{*}}]{p\+Coils}{, }\item[{uint16\+\_\+t}]{Addr}{, }\item[{uint16\+\_\+t}]{Qnt}{, }\item[{uint16\+\_\+t \texorpdfstring{$\ast$}{*}}]{start\+\_\+shift}{, }\item[{uint8\+\_\+t}]{Write\+Flag}{}\end{DoxyParamCaption})}
|
||||
|
||||
|
||||
|
||||
Define Address Origin for coils.
|
||||
|
||||
|
||||
\begin{DoxyParams}{Parameters}
|
||||
{\em p\+Coils} & Указатель на указатель коилов. \\
|
||||
\hline
|
||||
{\em Addr} & Адресс начального коила. \\
|
||||
\hline
|
||||
{\em Qnt} & Количество запрашиваемых коилов. \\
|
||||
\hline
|
||||
{\em start\+\_\+shift} & Указатель на переменную содержащую сдвиг внутри регистра для начального коила. \\
|
||||
\hline
|
||||
{\em Write\+Flag} & Флаг коилы нужны для чтения или записи. \\
|
||||
\hline
|
||||
\end{DoxyParams}
|
||||
\begin{DoxyReturn}{Returns}
|
||||
Exception\+Code Код исключения если есть, и ET\+\_\+\+NO\+\_\+\+ERRORS если нет.
|
||||
\end{DoxyReturn}
|
||||
Определение адреса начального регистра запрашиваемых коилов. \begin{DoxyNote}{Note}
|
||||
Write\+Flag используется для определния регистров GPIO\+: ODR или IDR.
|
||||
\end{DoxyNote}
|
||||
|
||||
|
||||
Definition at line \mbox{\hyperlink{____modbus__data_8c_source_l00119}{119}} of file \mbox{\hyperlink{____modbus__data_8c_source}{\+\_\+\+\_\+modbus\+\_\+data.\+c}}.
|
||||
|
||||
\Hypertarget{group___m_o_d_b_u_s___c_m_d___p_r_o_c_e_s_s___f_u_n_c_t_i_o_n_s_ga279ce6d9d175a43714862dc6661e7096}\index{Internal Process Functions@{Internal Process Functions}!MB\_Process\_Read\_Device\_Identifications@{MB\_Process\_Read\_Device\_Identifications}}
|
||||
\index{MB\_Process\_Read\_Device\_Identifications@{MB\_Process\_Read\_Device\_Identifications}!Internal Process Functions@{Internal Process Functions}}
|
||||
\doxysubsubsubsubsection{\texorpdfstring{MB\_Process\_Read\_Device\_Identifications()}{MB\_Process\_Read\_Device\_Identifications()}}
|
||||
{\footnotesize\ttfamily \label{group___m_o_d_b_u_s___c_m_d___p_r_o_c_e_s_s___f_u_n_c_t_i_o_n_s_ga279ce6d9d175a43714862dc6661e7096}
|
||||
uint8\+\_\+t MB\+\_\+\+Process\+\_\+\+Read\+\_\+\+Device\+\_\+\+Identifications (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{struct_r_s___msg_type_def}{RS\+\_\+\+Msg\+Type\+Def}} \texorpdfstring{$\ast$}{*}}]{modbus\+\_\+msg}{}\end{DoxyParamCaption})}
|
||||
|
||||
|
||||
|
||||
Обработать функцию Read Device Identifications (43/14 -\/ 0x2\+B/0E).
|
||||
|
||||
|
||||
\begin{DoxyParams}{Parameters}
|
||||
{\em modbus\+\_\+msg} & Указатель на структуру собщения modbus. \\
|
||||
\hline
|
||||
\end{DoxyParams}
|
||||
\begin{DoxyReturn}{Returns}
|
||||
f\+Message\+Handled Статус о результате обработки комманды.
|
||||
\end{DoxyReturn}
|
||||
Обработка команды Write Single Register.
|
||||
|
||||
Definition at line \mbox{\hyperlink{modbus__devid_8c_source_l00112}{112}} of file \mbox{\hyperlink{modbus__devid_8c_source}{modbus\+\_\+devid.\+c}}.
|
||||
|
||||
\Hypertarget{group___m_o_d_b_u_s___c_m_d___p_r_o_c_e_s_s___f_u_n_c_t_i_o_n_s_ga6bbfc53b20b4698a08d79851b5db65f0}\index{Internal Process Functions@{Internal Process Functions}!MB\_Process\_Diagnostics@{MB\_Process\_Diagnostics}}
|
||||
\index{MB\_Process\_Diagnostics@{MB\_Process\_Diagnostics}!Internal Process Functions@{Internal Process Functions}}
|
||||
\doxysubsubsubsubsection{\texorpdfstring{MB\_Process\_Diagnostics()}{MB\_Process\_Diagnostics()}}
|
||||
{\footnotesize\ttfamily \label{group___m_o_d_b_u_s___c_m_d___p_r_o_c_e_s_s___f_u_n_c_t_i_o_n_s_ga6bbfc53b20b4698a08d79851b5db65f0}
|
||||
uint8\+\_\+t MB\+\_\+\+Process\+\_\+\+Diagnostics (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{struct_r_s___msg_type_def}{RS\+\_\+\+Msg\+Type\+Def}} \texorpdfstring{$\ast$}{*}}]{modbus\+\_\+msg}{}\end{DoxyParamCaption})}
|
||||
|
||||
|
||||
|
||||
Обработать функцию Diagnostics (Serial Line only) (0x08)
|
||||
|
||||
|
||||
\begin{DoxyParams}{Parameters}
|
||||
{\em modbus\+\_\+msg} & Указатель на структуру сообщения modbus \\
|
||||
\hline
|
||||
\end{DoxyParams}
|
||||
\begin{DoxyReturn}{Returns}
|
||||
f\+Message\+Handled Статус обработки команды
|
||||
\end{DoxyReturn}
|
||||
|
||||
|
||||
Definition at line \mbox{\hyperlink{modbus__diag_8c_source_l00075}{75}} of file \mbox{\hyperlink{modbus__diag_8c_source}{modbus\+\_\+diag.\+c}}.
|
||||
|
||||
\Hypertarget{group___m_o_d_b_u_s___c_m_d___p_r_o_c_e_s_s___f_u_n_c_t_i_o_n_s_gac28127757ba25fe0b611612a785f663b}\index{Internal Process Functions@{Internal Process Functions}!MB\_Process\_Read\_Hold\_Regs@{MB\_Process\_Read\_Hold\_Regs}}
|
||||
\index{MB\_Process\_Read\_Hold\_Regs@{MB\_Process\_Read\_Hold\_Regs}!Internal Process Functions@{Internal Process Functions}}
|
||||
\doxysubsubsubsubsection{\texorpdfstring{MB\_Process\_Read\_Hold\_Regs()}{MB\_Process\_Read\_Hold\_Regs()}}
|
||||
{\footnotesize\ttfamily \label{group___m_o_d_b_u_s___c_m_d___p_r_o_c_e_s_s___f_u_n_c_t_i_o_n_s_gac28127757ba25fe0b611612a785f663b}
|
||||
uint8\+\_\+t MB\+\_\+\+Process\+\_\+\+Read\+\_\+\+Hold\+\_\+\+Regs (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{struct_r_s___msg_type_def}{RS\+\_\+\+Msg\+Type\+Def}} \texorpdfstring{$\ast$}{*}}]{modbus\+\_\+msg}{}\end{DoxyParamCaption})}
|
||||
|
||||
|
||||
|
||||
Обработать функцию Read Holding Registers (03 -\/ 0x03).
|
||||
|
||||
|
||||
\begin{DoxyParams}{Parameters}
|
||||
{\em modbus\+\_\+msg} & Указатель на структуру собщения modbus. \\
|
||||
\hline
|
||||
\end{DoxyParams}
|
||||
\begin{DoxyReturn}{Returns}
|
||||
f\+Message\+Handled Статус о результате обработки комманды.
|
||||
\end{DoxyReturn}
|
||||
Обработка команды Read Holding Registers.
|
||||
|
||||
Definition at line \mbox{\hyperlink{modbus__holdregs_8c_source_l00092}{92}} of file \mbox{\hyperlink{modbus__holdregs_8c_source}{modbus\+\_\+holdregs.\+c}}.
|
||||
|
||||
\Hypertarget{group___m_o_d_b_u_s___c_m_d___p_r_o_c_e_s_s___f_u_n_c_t_i_o_n_s_ga02e192a3d9f31737c45f074a04b37648}\index{Internal Process Functions@{Internal Process Functions}!MB\_Process\_Write\_Single\_Reg@{MB\_Process\_Write\_Single\_Reg}}
|
||||
\index{MB\_Process\_Write\_Single\_Reg@{MB\_Process\_Write\_Single\_Reg}!Internal Process Functions@{Internal Process Functions}}
|
||||
\doxysubsubsubsubsection{\texorpdfstring{MB\_Process\_Write\_Single\_Reg()}{MB\_Process\_Write\_Single\_Reg()}}
|
||||
{\footnotesize\ttfamily \label{group___m_o_d_b_u_s___c_m_d___p_r_o_c_e_s_s___f_u_n_c_t_i_o_n_s_ga02e192a3d9f31737c45f074a04b37648}
|
||||
uint8\+\_\+t MB\+\_\+\+Process\+\_\+\+Write\+\_\+\+Single\+\_\+\+Reg (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{struct_r_s___msg_type_def}{RS\+\_\+\+Msg\+Type\+Def}} \texorpdfstring{$\ast$}{*}}]{modbus\+\_\+msg}{}\end{DoxyParamCaption})}
|
||||
|
||||
|
||||
|
||||
Обработать функцию Write Single Register (06 -\/ 0x06).
|
||||
|
||||
|
||||
\begin{DoxyParams}{Parameters}
|
||||
{\em modbus\+\_\+msg} & Указатель на структуру собщения modbus. \\
|
||||
\hline
|
||||
\end{DoxyParams}
|
||||
\begin{DoxyReturn}{Returns}
|
||||
f\+Message\+Handled Статус о результате обработки комманды.
|
||||
\end{DoxyReturn}
|
||||
Обработка команды Write Single Register.
|
||||
|
||||
Definition at line \mbox{\hyperlink{modbus__holdregs_8c_source_l00120}{120}} of file \mbox{\hyperlink{modbus__holdregs_8c_source}{modbus\+\_\+holdregs.\+c}}.
|
||||
|
||||
\Hypertarget{group___m_o_d_b_u_s___c_m_d___p_r_o_c_e_s_s___f_u_n_c_t_i_o_n_s_ga9c6ab159edb8dda6548b2228773ce919}\index{Internal Process Functions@{Internal Process Functions}!MB\_Process\_Write\_Miltuple\_Regs@{MB\_Process\_Write\_Miltuple\_Regs}}
|
||||
\index{MB\_Process\_Write\_Miltuple\_Regs@{MB\_Process\_Write\_Miltuple\_Regs}!Internal Process Functions@{Internal Process Functions}}
|
||||
\doxysubsubsubsubsection{\texorpdfstring{MB\_Process\_Write\_Miltuple\_Regs()}{MB\_Process\_Write\_Miltuple\_Regs()}}
|
||||
{\footnotesize\ttfamily \label{group___m_o_d_b_u_s___c_m_d___p_r_o_c_e_s_s___f_u_n_c_t_i_o_n_s_ga9c6ab159edb8dda6548b2228773ce919}
|
||||
uint8\+\_\+t MB\+\_\+\+Process\+\_\+\+Write\+\_\+\+Miltuple\+\_\+\+Regs (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{struct_r_s___msg_type_def}{RS\+\_\+\+Msg\+Type\+Def}} \texorpdfstring{$\ast$}{*}}]{modbus\+\_\+msg}{}\end{DoxyParamCaption})}
|
||||
|
||||
|
||||
|
||||
Обработать функцию Write Multiple Registers (16 -\/ 0x10).
|
||||
|
||||
|
||||
\begin{DoxyParams}{Parameters}
|
||||
{\em modbus\+\_\+msg} & Указатель на структуру собщения modbus. \\
|
||||
\hline
|
||||
\end{DoxyParams}
|
||||
\begin{DoxyReturn}{Returns}
|
||||
f\+Message\+Handled Статус о результате обработки комманды.
|
||||
\end{DoxyReturn}
|
||||
Обработка команды Write Multiple Registers.
|
||||
|
||||
Definition at line \mbox{\hyperlink{modbus__holdregs_8c_source_l00139}{139}} of file \mbox{\hyperlink{modbus__holdregs_8c_source}{modbus\+\_\+holdregs.\+c}}.
|
||||
|
||||
\Hypertarget{group___m_o_d_b_u_s___c_m_d___p_r_o_c_e_s_s___f_u_n_c_t_i_o_n_s_gad13d010f43c7ab08a85667b9e1906b7d}\index{Internal Process Functions@{Internal Process Functions}!MB\_Process\_Read\_Input\_Regs@{MB\_Process\_Read\_Input\_Regs}}
|
||||
\index{MB\_Process\_Read\_Input\_Regs@{MB\_Process\_Read\_Input\_Regs}!Internal Process Functions@{Internal Process Functions}}
|
||||
\doxysubsubsubsubsection{\texorpdfstring{MB\_Process\_Read\_Input\_Regs()}{MB\_Process\_Read\_Input\_Regs()}}
|
||||
{\footnotesize\ttfamily \label{group___m_o_d_b_u_s___c_m_d___p_r_o_c_e_s_s___f_u_n_c_t_i_o_n_s_gad13d010f43c7ab08a85667b9e1906b7d}
|
||||
uint8\+\_\+t MB\+\_\+\+Process\+\_\+\+Read\+\_\+\+Input\+\_\+\+Regs (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{struct_r_s___msg_type_def}{RS\+\_\+\+Msg\+Type\+Def}} \texorpdfstring{$\ast$}{*}}]{modbus\+\_\+msg}{}\end{DoxyParamCaption})}
|
||||
|
||||
|
||||
|
||||
Обработать функцию Read Input Registers (04 -\/ 0x04).
|
||||
|
||||
|
||||
\begin{DoxyParams}{Parameters}
|
||||
{\em modbus\+\_\+msg} & Указатель на структуру собщения modbus. \\
|
||||
\hline
|
||||
\end{DoxyParams}
|
||||
\begin{DoxyReturn}{Returns}
|
||||
f\+Message\+Handled Статус о результате обработки комманды.
|
||||
\end{DoxyReturn}
|
||||
Обработка команды Read Input Registers.
|
||||
|
||||
Definition at line \mbox{\hyperlink{modbus__inputregs_8c_source_l00087}{87}} of file \mbox{\hyperlink{modbus__inputregs_8c_source}{modbus\+\_\+inputregs.\+c}}.
|
||||
|
||||
\input{group___m_o_d_b_u_s___m_a_s_t_e_r}
|
||||
\input{group___m_o_d_b_u_s___s_l_a_v_e}
|
||||
@@ -0,0 +1 @@
|
||||
0530937d9612ea6231affb7b2e7d4fcf
|
||||
BIN
AllLibs/Modbus/Doc/latex/group___m_o_d_b_u_s___c_o_i_l_s.pdf
Normal file
BIN
AllLibs/Modbus/Doc/latex/group___m_o_d_b_u_s___c_o_i_l_s.pdf
Normal file
Binary file not shown.
35
AllLibs/Modbus/Doc/latex/group___m_o_d_b_u_s___c_o_i_l_s.tex
Normal file
35
AllLibs/Modbus/Doc/latex/group___m_o_d_b_u_s___c_o_i_l_s.tex
Normal file
@@ -0,0 +1,35 @@
|
||||
\doxysubsubsection{Coils Tools }
|
||||
\hypertarget{group___m_o_d_b_u_s___c_o_i_l_s}{}\label{group___m_o_d_b_u_s___c_o_i_l_s}\index{Coils Tools@{Coils Tools}}
|
||||
|
||||
|
||||
Функции для работы с коилами
|
||||
|
||||
|
||||
Collaboration diagram for Coils Tools\+:\nopagebreak
|
||||
\begin{figure}[H]
|
||||
\begin{center}
|
||||
\leavevmode
|
||||
\includegraphics[width=291pt]{group___m_o_d_b_u_s___c_o_i_l_s}
|
||||
\end{center}
|
||||
\end{figure}
|
||||
Функции для работы с коилами
|
||||
|
||||
Модуль для доступа к coils внутри программы\+:
|
||||
\begin{DoxyItemize}
|
||||
\item Функции для доступа к coils по глобальным адресам
|
||||
\item Макросы для доступа к coils по локальным адресам
|
||||
\end{DoxyItemize}
|
||||
|
||||
Модуль предоставляет функции и макросы для работы с битовыми данными\+:
|
||||
\begin{DoxyItemize}
|
||||
\item Чтение coils (0x01) Упаковка битов в байты
|
||||
\item Запись одиночного coil (0x05) Установка/сброс бита
|
||||
\item Запись множественных coils (0x0F) -\/ распаковка байтов в биты
|
||||
\end{DoxyItemize}\hypertarget{group___m_o_d_b_u_s___c_o_i_l_s_cbits}{}\doxysubsubsubsection{\texorpdfstring{Организация битовых данных\+:}{Организация битовых данных\+:}}\label{group___m_o_d_b_u_s___c_o_i_l_s_cbits}
|
||||
Coils упакованы в 16-\/битные слова для эффективного использования памяти. Биты нумеруются от младшего к старшему внутри каждого слова.\hypertarget{group___m_o_d_b_u_s___c_o_i_l_s_caddr}{}\doxysubsubsubsection{\texorpdfstring{Адресация\+:}{Адресация\+:}}\label{group___m_o_d_b_u_s___c_o_i_l_s_caddr}
|
||||
|
||||
\begin{DoxyItemize}
|
||||
\item Глобальная -\/ абсолютный адрес в пространстве Modbus
|
||||
\item Локальная -\/ относительный адрес внутри массива coils
|
||||
\item Макросы автоматически вычисляют смещения и маски
|
||||
\end{DoxyItemize}
|
||||
@@ -0,0 +1 @@
|
||||
6116efb3628704afb3d3a5646e669147
|
||||
BIN
AllLibs/Modbus/Doc/latex/group___m_o_d_b_u_s___c_o_n_f_i_g_s.pdf
Normal file
BIN
AllLibs/Modbus/Doc/latex/group___m_o_d_b_u_s___c_o_n_f_i_g_s.pdf
Normal file
Binary file not shown.
327
AllLibs/Modbus/Doc/latex/group___m_o_d_b_u_s___c_o_n_f_i_g_s.tex
Normal file
327
AllLibs/Modbus/Doc/latex/group___m_o_d_b_u_s___c_o_n_f_i_g_s.tex
Normal file
@@ -0,0 +1,327 @@
|
||||
\doxysubsection{Modbus configs }
|
||||
\hypertarget{group___m_o_d_b_u_s___c_o_n_f_i_g_s}{}\label{group___m_o_d_b_u_s___c_o_n_f_i_g_s}\index{Modbus configs@{Modbus configs}}
|
||||
|
||||
|
||||
Конфигурация библиотеки
|
||||
|
||||
|
||||
Collaboration diagram for Modbus configs\+:\nopagebreak
|
||||
\begin{figure}[H]
|
||||
\begin{center}
|
||||
\leavevmode
|
||||
\includegraphics[width=276pt]{group___m_o_d_b_u_s___c_o_n_f_i_g_s}
|
||||
\end{center}
|
||||
\end{figure}
|
||||
\doxysubsubsubsection*{Macros}
|
||||
\begin{DoxyCompactItemize}
|
||||
\item
|
||||
\#define \mbox{\hyperlink{group___m_o_d_b_u_s___c_o_n_f_i_g_s_gab9b18e108b98b225a52c5ccca58e7f2b}{MODBUS\+\_\+\+DEVICE\+\_\+\+ID}}~1
|
||||
\begin{DoxyCompactList}\small\item\em Адрес устройства в сети Modbus. \end{DoxyCompactList}\item
|
||||
\#define \mbox{\hyperlink{group___m_o_d_b_u_s___c_o_n_f_i_g_s_ga66f7c59a25c8cca6d5b0991895c26b69}{MODBUS\+\_\+\+TIMEOUT}}~5000
|
||||
\begin{DoxyCompactList}\small\item\em Таймаут в тиках таймера \end{DoxyCompactList}\item
|
||||
\#define \mbox{\hyperlink{group___m_o_d_b_u_s___c_o_n_f_i_g_s_ga0e01f19c79d049b745b28cc708ba0c2f}{MODBUS\+\_\+\+VENDOR\+\_\+\+NAME}}~"{}NIO-\/12"{}
|
||||
\item
|
||||
\#define \mbox{\hyperlink{group___m_o_d_b_u_s___c_o_n_f_i_g_s_ga6e8dea7833243443899787fd7186ab36}{MODBUS\+\_\+\+PRODUCT\+\_\+\+CODE}}~"{}"{}
|
||||
\item
|
||||
\#define \mbox{\hyperlink{group___m_o_d_b_u_s___c_o_n_f_i_g_s_ga270858b2ee3dc5de6666e05ba0b7044a}{MODBUS\+\_\+\+REVISION}}~"{}"{}
|
||||
\item
|
||||
\#define \mbox{\hyperlink{group___m_o_d_b_u_s___c_o_n_f_i_g_s_ga0d4f8c7ad821f1e47c06fca438cc2065}{MODBUS\+\_\+\+VENDOR\+\_\+\+URL}}~"{}"{}
|
||||
\item
|
||||
\#define \mbox{\hyperlink{group___m_o_d_b_u_s___c_o_n_f_i_g_s_ga272ac8bc7eb92d40e731954cc627e28b}{MODBUS\+\_\+\+PRODUCT\+\_\+\+NAME}}~"{}"{}
|
||||
\item
|
||||
\#define \mbox{\hyperlink{group___m_o_d_b_u_s___c_o_n_f_i_g_s_ga94dff4b6008db9de88a18f80507b745c}{MODBUS\+\_\+\+MODEL\+\_\+\+NAME}}~"{}"{}
|
||||
\item
|
||||
\#define \mbox{\hyperlink{group___m_o_d_b_u_s___c_o_n_f_i_g_s_ga197c776ad1235d5f4fa17318e60628a9}{MODBUS\+\_\+\+USER\+\_\+\+APPLICATION\+\_\+\+NAME}}~"{}"{}
|
||||
\item
|
||||
\#define \mbox{\hyperlink{group___m_o_d_b_u_s___c_o_n_f_i_g_s_ga5c7e9c2180ceac1208f4b791d7b70a0a}{MODBUS\+\_\+\+NUMB\+\_\+\+OF\+\_\+\+USEROBJECTS}}~0
|
||||
\begin{DoxyCompactList}\small\item\em Количество пользовательских объектов \end{DoxyCompactList}\item
|
||||
\#define \mbox{\hyperlink{group___m_o_d_b_u_s___c_o_n_f_i_g_s_gac3b162e9af2731742eb3ca8317b37397}{MODBUS\+\_\+\+USEROBJECT\+\_\+0\+\_\+\+NAME}}~"{}"{}
|
||||
\begin{DoxyCompactList}\small\item\em Строка пользовательского идентификатора 0. По аналогии можно определить строки до \texorpdfstring{$<$}{<}=128 USEROBJECT. \end{DoxyCompactList}\item
|
||||
\#define \mbox{\hyperlink{group___m_o_d_b_u_s___c_o_n_f_i_g_s_ga370986118b8227cb6cb33c6b748fbbcb}{mb\+\_\+huart}}~huart1
|
||||
\begin{DoxyCompactList}\small\item\em Удобный дефайн для модбасовского uart. \end{DoxyCompactList}\item
|
||||
\#define \mbox{\hyperlink{group___m_o_d_b_u_s___c_o_n_f_i_g_s_ga6723a1608946a4f86cd7c9c7e614d04e}{mb\+\_\+htim}}~htim3
|
||||
\begin{DoxyCompactList}\small\item\em Удобный дефайн для модбасовского таймера \end{DoxyCompactList}\item
|
||||
\#define \mbox{\hyperlink{group___m_o_d_b_u_s___c_o_n_f_i_g_s_gae11f9ed7ca5e75d332a1187d2a213f9c}{MODBUS\+\_\+\+ENABLE\+\_\+\+SLAVE}}
|
||||
\begin{DoxyCompactList}\small\item\em Включить обработку СЛЕЙВ режима \end{DoxyCompactList}\item
|
||||
\#define \mbox{\hyperlink{group___m_o_d_b_u_s___c_o_n_f_i_g_s_gae4fc30421556e1ee530f13a4b3924f5a}{MODBUS\+\_\+\+ENABLE\+\_\+\+MASTER}}
|
||||
\begin{DoxyCompactList}\small\item\em Включить обработку МАСТЕР режима \end{DoxyCompactList}\item
|
||||
\#define \mbox{\hyperlink{group___m_o_d_b_u_s___c_o_n_f_i_g_s_ga29ce22b8b7f0622bc23171c6ae2dc8d1}{MODBUS\+\_\+\+ENABLE\+\_\+\+COILS}}
|
||||
\begin{DoxyCompactList}\small\item\em Включить обработку коилов \end{DoxyCompactList}\item
|
||||
\#define \mbox{\hyperlink{group___m_o_d_b_u_s___c_o_n_f_i_g_s_gaf6a8dfc090b3915d668d78ee19585344}{MODBUS\+\_\+\+ENABLE\+\_\+\+HOLDINGS}}
|
||||
\begin{DoxyCompactList}\small\item\em Включить обработку регистров хранения \end{DoxyCompactList}\item
|
||||
\#define \mbox{\hyperlink{group___m_o_d_b_u_s___c_o_n_f_i_g_s_ga23d7073c81bedb80a302140afd0d79c0}{MODBUS\+\_\+\+ENABLE\+\_\+\+INPUTS}}
|
||||
\begin{DoxyCompactList}\small\item\em Включить обработку входных регистров \end{DoxyCompactList}\item
|
||||
\#define \mbox{\hyperlink{group___m_o_d_b_u_s___c_o_n_f_i_g_s_ga5bf9f305bd863b10f1b350c5004ddda7}{MODBUS\+\_\+\+ENABLE\+\_\+\+DEVICE\+\_\+\+IDENTIFICATIONS}}
|
||||
\begin{DoxyCompactList}\small\item\em Включить обработку идентификаторы устройства \end{DoxyCompactList}\item
|
||||
\#define \mbox{\hyperlink{group___m_o_d_b_u_s___c_o_n_f_i_g_s_gae68222efbcf3199706bfaef46af97bf8}{MODBUS\+\_\+\+ENABLE\+\_\+\+DIAGNOSTICS}}
|
||||
\begin{DoxyCompactList}\small\item\em Включить обработку диагностики модбас \end{DoxyCompactList}\end{DoxyCompactItemize}
|
||||
|
||||
|
||||
\doxysubsubsection{Detailed Description}
|
||||
Конфигурация библиотеки
|
||||
|
||||
Файл содержит настройки для работы Modbus\+:
|
||||
\begin{DoxyItemize}
|
||||
\item Подключение библиотек контроллера
|
||||
\item ID устройства и таймауты
|
||||
\item Строковые идентификаторы (Vendor, Product, Revision)
|
||||
\item Настройки периферии (UART, TIMER)
|
||||
\item Подключение модулей Modbus
|
||||
\item Опциональные функции (переключение команд 0x03/0x04)
|
||||
\end{DoxyItemize}
|
||||
|
||||
\label{doc-define-members}
|
||||
\Hypertarget{group___m_o_d_b_u_s___c_o_n_f_i_g_s_doc-define-members}
|
||||
\doxysubsubsection{Macro Definition Documentation}
|
||||
\Hypertarget{group___m_o_d_b_u_s___c_o_n_f_i_g_s_gab9b18e108b98b225a52c5ccca58e7f2b}\index{Modbus configs@{Modbus configs}!MODBUS\_DEVICE\_ID@{MODBUS\_DEVICE\_ID}}
|
||||
\index{MODBUS\_DEVICE\_ID@{MODBUS\_DEVICE\_ID}!Modbus configs@{Modbus configs}}
|
||||
\doxysubsubsubsection{\texorpdfstring{MODBUS\_DEVICE\_ID}{MODBUS\_DEVICE\_ID}}
|
||||
{\footnotesize\ttfamily \label{group___m_o_d_b_u_s___c_o_n_f_i_g_s_gab9b18e108b98b225a52c5ccca58e7f2b}
|
||||
\#define MODBUS\+\_\+\+DEVICE\+\_\+\+ID~1}
|
||||
|
||||
|
||||
|
||||
Адрес устройства в сети Modbus.
|
||||
|
||||
|
||||
|
||||
Definition at line \mbox{\hyperlink{modbus__config_8h_source_l00025}{25}} of file \mbox{\hyperlink{modbus__config_8h_source}{modbus\+\_\+config.\+h}}.
|
||||
|
||||
\Hypertarget{group___m_o_d_b_u_s___c_o_n_f_i_g_s_ga66f7c59a25c8cca6d5b0991895c26b69}\index{Modbus configs@{Modbus configs}!MODBUS\_TIMEOUT@{MODBUS\_TIMEOUT}}
|
||||
\index{MODBUS\_TIMEOUT@{MODBUS\_TIMEOUT}!Modbus configs@{Modbus configs}}
|
||||
\doxysubsubsubsection{\texorpdfstring{MODBUS\_TIMEOUT}{MODBUS\_TIMEOUT}}
|
||||
{\footnotesize\ttfamily \label{group___m_o_d_b_u_s___c_o_n_f_i_g_s_ga66f7c59a25c8cca6d5b0991895c26b69}
|
||||
\#define MODBUS\+\_\+\+TIMEOUT~5000}
|
||||
|
||||
|
||||
|
||||
Таймаут в тиках таймера
|
||||
|
||||
|
||||
|
||||
Definition at line \mbox{\hyperlink{modbus__config_8h_source_l00026}{26}} of file \mbox{\hyperlink{modbus__config_8h_source}{modbus\+\_\+config.\+h}}.
|
||||
|
||||
\Hypertarget{group___m_o_d_b_u_s___c_o_n_f_i_g_s_ga0e01f19c79d049b745b28cc708ba0c2f}\index{Modbus configs@{Modbus configs}!MODBUS\_VENDOR\_NAME@{MODBUS\_VENDOR\_NAME}}
|
||||
\index{MODBUS\_VENDOR\_NAME@{MODBUS\_VENDOR\_NAME}!Modbus configs@{Modbus configs}}
|
||||
\doxysubsubsubsection{\texorpdfstring{MODBUS\_VENDOR\_NAME}{MODBUS\_VENDOR\_NAME}}
|
||||
{\footnotesize\ttfamily \label{group___m_o_d_b_u_s___c_o_n_f_i_g_s_ga0e01f19c79d049b745b28cc708ba0c2f}
|
||||
\#define MODBUS\+\_\+\+VENDOR\+\_\+\+NAME~"{}NIO-\/12"{}}
|
||||
|
||||
|
||||
|
||||
Definition at line \mbox{\hyperlink{modbus__config_8h_source_l00029}{29}} of file \mbox{\hyperlink{modbus__config_8h_source}{modbus\+\_\+config.\+h}}.
|
||||
|
||||
\Hypertarget{group___m_o_d_b_u_s___c_o_n_f_i_g_s_ga6e8dea7833243443899787fd7186ab36}\index{Modbus configs@{Modbus configs}!MODBUS\_PRODUCT\_CODE@{MODBUS\_PRODUCT\_CODE}}
|
||||
\index{MODBUS\_PRODUCT\_CODE@{MODBUS\_PRODUCT\_CODE}!Modbus configs@{Modbus configs}}
|
||||
\doxysubsubsubsection{\texorpdfstring{MODBUS\_PRODUCT\_CODE}{MODBUS\_PRODUCT\_CODE}}
|
||||
{\footnotesize\ttfamily \label{group___m_o_d_b_u_s___c_o_n_f_i_g_s_ga6e8dea7833243443899787fd7186ab36}
|
||||
\#define MODBUS\+\_\+\+PRODUCT\+\_\+\+CODE~"{}"{}}
|
||||
|
||||
|
||||
|
||||
Definition at line \mbox{\hyperlink{modbus__config_8h_source_l00030}{30}} of file \mbox{\hyperlink{modbus__config_8h_source}{modbus\+\_\+config.\+h}}.
|
||||
|
||||
\Hypertarget{group___m_o_d_b_u_s___c_o_n_f_i_g_s_ga270858b2ee3dc5de6666e05ba0b7044a}\index{Modbus configs@{Modbus configs}!MODBUS\_REVISION@{MODBUS\_REVISION}}
|
||||
\index{MODBUS\_REVISION@{MODBUS\_REVISION}!Modbus configs@{Modbus configs}}
|
||||
\doxysubsubsubsection{\texorpdfstring{MODBUS\_REVISION}{MODBUS\_REVISION}}
|
||||
{\footnotesize\ttfamily \label{group___m_o_d_b_u_s___c_o_n_f_i_g_s_ga270858b2ee3dc5de6666e05ba0b7044a}
|
||||
\#define MODBUS\+\_\+\+REVISION~"{}"{}}
|
||||
|
||||
|
||||
|
||||
Definition at line \mbox{\hyperlink{modbus__config_8h_source_l00031}{31}} of file \mbox{\hyperlink{modbus__config_8h_source}{modbus\+\_\+config.\+h}}.
|
||||
|
||||
\Hypertarget{group___m_o_d_b_u_s___c_o_n_f_i_g_s_ga0d4f8c7ad821f1e47c06fca438cc2065}\index{Modbus configs@{Modbus configs}!MODBUS\_VENDOR\_URL@{MODBUS\_VENDOR\_URL}}
|
||||
\index{MODBUS\_VENDOR\_URL@{MODBUS\_VENDOR\_URL}!Modbus configs@{Modbus configs}}
|
||||
\doxysubsubsubsection{\texorpdfstring{MODBUS\_VENDOR\_URL}{MODBUS\_VENDOR\_URL}}
|
||||
{\footnotesize\ttfamily \label{group___m_o_d_b_u_s___c_o_n_f_i_g_s_ga0d4f8c7ad821f1e47c06fca438cc2065}
|
||||
\#define MODBUS\+\_\+\+VENDOR\+\_\+\+URL~"{}"{}}
|
||||
|
||||
|
||||
|
||||
Definition at line \mbox{\hyperlink{modbus__config_8h_source_l00032}{32}} of file \mbox{\hyperlink{modbus__config_8h_source}{modbus\+\_\+config.\+h}}.
|
||||
|
||||
\Hypertarget{group___m_o_d_b_u_s___c_o_n_f_i_g_s_ga272ac8bc7eb92d40e731954cc627e28b}\index{Modbus configs@{Modbus configs}!MODBUS\_PRODUCT\_NAME@{MODBUS\_PRODUCT\_NAME}}
|
||||
\index{MODBUS\_PRODUCT\_NAME@{MODBUS\_PRODUCT\_NAME}!Modbus configs@{Modbus configs}}
|
||||
\doxysubsubsubsection{\texorpdfstring{MODBUS\_PRODUCT\_NAME}{MODBUS\_PRODUCT\_NAME}}
|
||||
{\footnotesize\ttfamily \label{group___m_o_d_b_u_s___c_o_n_f_i_g_s_ga272ac8bc7eb92d40e731954cc627e28b}
|
||||
\#define MODBUS\+\_\+\+PRODUCT\+\_\+\+NAME~"{}"{}}
|
||||
|
||||
|
||||
|
||||
Definition at line \mbox{\hyperlink{modbus__config_8h_source_l00033}{33}} of file \mbox{\hyperlink{modbus__config_8h_source}{modbus\+\_\+config.\+h}}.
|
||||
|
||||
\Hypertarget{group___m_o_d_b_u_s___c_o_n_f_i_g_s_ga94dff4b6008db9de88a18f80507b745c}\index{Modbus configs@{Modbus configs}!MODBUS\_MODEL\_NAME@{MODBUS\_MODEL\_NAME}}
|
||||
\index{MODBUS\_MODEL\_NAME@{MODBUS\_MODEL\_NAME}!Modbus configs@{Modbus configs}}
|
||||
\doxysubsubsubsection{\texorpdfstring{MODBUS\_MODEL\_NAME}{MODBUS\_MODEL\_NAME}}
|
||||
{\footnotesize\ttfamily \label{group___m_o_d_b_u_s___c_o_n_f_i_g_s_ga94dff4b6008db9de88a18f80507b745c}
|
||||
\#define MODBUS\+\_\+\+MODEL\+\_\+\+NAME~"{}"{}}
|
||||
|
||||
|
||||
|
||||
Definition at line \mbox{\hyperlink{modbus__config_8h_source_l00034}{34}} of file \mbox{\hyperlink{modbus__config_8h_source}{modbus\+\_\+config.\+h}}.
|
||||
|
||||
\Hypertarget{group___m_o_d_b_u_s___c_o_n_f_i_g_s_ga197c776ad1235d5f4fa17318e60628a9}\index{Modbus configs@{Modbus configs}!MODBUS\_USER\_APPLICATION\_NAME@{MODBUS\_USER\_APPLICATION\_NAME}}
|
||||
\index{MODBUS\_USER\_APPLICATION\_NAME@{MODBUS\_USER\_APPLICATION\_NAME}!Modbus configs@{Modbus configs}}
|
||||
\doxysubsubsubsection{\texorpdfstring{MODBUS\_USER\_APPLICATION\_NAME}{MODBUS\_USER\_APPLICATION\_NAME}}
|
||||
{\footnotesize\ttfamily \label{group___m_o_d_b_u_s___c_o_n_f_i_g_s_ga197c776ad1235d5f4fa17318e60628a9}
|
||||
\#define MODBUS\+\_\+\+USER\+\_\+\+APPLICATION\+\_\+\+NAME~"{}"{}}
|
||||
|
||||
|
||||
|
||||
Definition at line \mbox{\hyperlink{modbus__config_8h_source_l00035}{35}} of file \mbox{\hyperlink{modbus__config_8h_source}{modbus\+\_\+config.\+h}}.
|
||||
|
||||
\Hypertarget{group___m_o_d_b_u_s___c_o_n_f_i_g_s_ga5c7e9c2180ceac1208f4b791d7b70a0a}\index{Modbus configs@{Modbus configs}!MODBUS\_NUMB\_OF\_USEROBJECTS@{MODBUS\_NUMB\_OF\_USEROBJECTS}}
|
||||
\index{MODBUS\_NUMB\_OF\_USEROBJECTS@{MODBUS\_NUMB\_OF\_USEROBJECTS}!Modbus configs@{Modbus configs}}
|
||||
\doxysubsubsubsection{\texorpdfstring{MODBUS\_NUMB\_OF\_USEROBJECTS}{MODBUS\_NUMB\_OF\_USEROBJECTS}}
|
||||
{\footnotesize\ttfamily \label{group___m_o_d_b_u_s___c_o_n_f_i_g_s_ga5c7e9c2180ceac1208f4b791d7b70a0a}
|
||||
\#define MODBUS\+\_\+\+NUMB\+\_\+\+OF\+\_\+\+USEROBJECTS~0}
|
||||
|
||||
|
||||
|
||||
Количество пользовательских объектов
|
||||
|
||||
|
||||
|
||||
Definition at line \mbox{\hyperlink{modbus__config_8h_source_l00037}{37}} of file \mbox{\hyperlink{modbus__config_8h_source}{modbus\+\_\+config.\+h}}.
|
||||
|
||||
\Hypertarget{group___m_o_d_b_u_s___c_o_n_f_i_g_s_gac3b162e9af2731742eb3ca8317b37397}\index{Modbus configs@{Modbus configs}!MODBUS\_USEROBJECT\_0\_NAME@{MODBUS\_USEROBJECT\_0\_NAME}}
|
||||
\index{MODBUS\_USEROBJECT\_0\_NAME@{MODBUS\_USEROBJECT\_0\_NAME}!Modbus configs@{Modbus configs}}
|
||||
\doxysubsubsubsection{\texorpdfstring{MODBUS\_USEROBJECT\_0\_NAME}{MODBUS\_USEROBJECT\_0\_NAME}}
|
||||
{\footnotesize\ttfamily \label{group___m_o_d_b_u_s___c_o_n_f_i_g_s_gac3b162e9af2731742eb3ca8317b37397}
|
||||
\#define MODBUS\+\_\+\+USEROBJECT\+\_\+0\+\_\+\+NAME~"{}"{}}
|
||||
|
||||
|
||||
|
||||
Строка пользовательского идентификатора 0. По аналогии можно определить строки до \texorpdfstring{$<$}{<}=128 USEROBJECT.
|
||||
|
||||
|
||||
|
||||
Definition at line \mbox{\hyperlink{modbus__config_8h_source_l00038}{38}} of file \mbox{\hyperlink{modbus__config_8h_source}{modbus\+\_\+config.\+h}}.
|
||||
|
||||
\Hypertarget{group___m_o_d_b_u_s___c_o_n_f_i_g_s_ga370986118b8227cb6cb33c6b748fbbcb}\index{Modbus configs@{Modbus configs}!mb\_huart@{mb\_huart}}
|
||||
\index{mb\_huart@{mb\_huart}!Modbus configs@{Modbus configs}}
|
||||
\doxysubsubsubsection{\texorpdfstring{mb\_huart}{mb\_huart}}
|
||||
{\footnotesize\ttfamily \label{group___m_o_d_b_u_s___c_o_n_f_i_g_s_ga370986118b8227cb6cb33c6b748fbbcb}
|
||||
\#define mb\+\_\+huart~huart1}
|
||||
|
||||
|
||||
|
||||
Удобный дефайн для модбасовского uart.
|
||||
|
||||
|
||||
|
||||
Definition at line \mbox{\hyperlink{modbus__config_8h_source_l00041}{41}} of file \mbox{\hyperlink{modbus__config_8h_source}{modbus\+\_\+config.\+h}}.
|
||||
|
||||
\Hypertarget{group___m_o_d_b_u_s___c_o_n_f_i_g_s_ga6723a1608946a4f86cd7c9c7e614d04e}\index{Modbus configs@{Modbus configs}!mb\_htim@{mb\_htim}}
|
||||
\index{mb\_htim@{mb\_htim}!Modbus configs@{Modbus configs}}
|
||||
\doxysubsubsubsection{\texorpdfstring{mb\_htim}{mb\_htim}}
|
||||
{\footnotesize\ttfamily \label{group___m_o_d_b_u_s___c_o_n_f_i_g_s_ga6723a1608946a4f86cd7c9c7e614d04e}
|
||||
\#define mb\+\_\+htim~htim3}
|
||||
|
||||
|
||||
|
||||
Удобный дефайн для модбасовского таймера
|
||||
|
||||
|
||||
|
||||
Definition at line \mbox{\hyperlink{modbus__config_8h_source_l00042}{42}} of file \mbox{\hyperlink{modbus__config_8h_source}{modbus\+\_\+config.\+h}}.
|
||||
|
||||
\Hypertarget{group___m_o_d_b_u_s___c_o_n_f_i_g_s_gae11f9ed7ca5e75d332a1187d2a213f9c}\index{Modbus configs@{Modbus configs}!MODBUS\_ENABLE\_SLAVE@{MODBUS\_ENABLE\_SLAVE}}
|
||||
\index{MODBUS\_ENABLE\_SLAVE@{MODBUS\_ENABLE\_SLAVE}!Modbus configs@{Modbus configs}}
|
||||
\doxysubsubsubsection{\texorpdfstring{MODBUS\_ENABLE\_SLAVE}{MODBUS\_ENABLE\_SLAVE}}
|
||||
{\footnotesize\ttfamily \label{group___m_o_d_b_u_s___c_o_n_f_i_g_s_gae11f9ed7ca5e75d332a1187d2a213f9c}
|
||||
\#define MODBUS\+\_\+\+ENABLE\+\_\+\+SLAVE}
|
||||
|
||||
|
||||
|
||||
Включить обработку СЛЕЙВ режима
|
||||
|
||||
|
||||
|
||||
Definition at line \mbox{\hyperlink{modbus__config_8h_source_l00048}{48}} of file \mbox{\hyperlink{modbus__config_8h_source}{modbus\+\_\+config.\+h}}.
|
||||
|
||||
\Hypertarget{group___m_o_d_b_u_s___c_o_n_f_i_g_s_gae4fc30421556e1ee530f13a4b3924f5a}\index{Modbus configs@{Modbus configs}!MODBUS\_ENABLE\_MASTER@{MODBUS\_ENABLE\_MASTER}}
|
||||
\index{MODBUS\_ENABLE\_MASTER@{MODBUS\_ENABLE\_MASTER}!Modbus configs@{Modbus configs}}
|
||||
\doxysubsubsubsection{\texorpdfstring{MODBUS\_ENABLE\_MASTER}{MODBUS\_ENABLE\_MASTER}}
|
||||
{\footnotesize\ttfamily \label{group___m_o_d_b_u_s___c_o_n_f_i_g_s_gae4fc30421556e1ee530f13a4b3924f5a}
|
||||
\#define MODBUS\+\_\+\+ENABLE\+\_\+\+MASTER}
|
||||
|
||||
|
||||
|
||||
Включить обработку МАСТЕР режима
|
||||
|
||||
|
||||
|
||||
Definition at line \mbox{\hyperlink{modbus__config_8h_source_l00049}{49}} of file \mbox{\hyperlink{modbus__config_8h_source}{modbus\+\_\+config.\+h}}.
|
||||
|
||||
\Hypertarget{group___m_o_d_b_u_s___c_o_n_f_i_g_s_ga29ce22b8b7f0622bc23171c6ae2dc8d1}\index{Modbus configs@{Modbus configs}!MODBUS\_ENABLE\_COILS@{MODBUS\_ENABLE\_COILS}}
|
||||
\index{MODBUS\_ENABLE\_COILS@{MODBUS\_ENABLE\_COILS}!Modbus configs@{Modbus configs}}
|
||||
\doxysubsubsubsection{\texorpdfstring{MODBUS\_ENABLE\_COILS}{MODBUS\_ENABLE\_COILS}}
|
||||
{\footnotesize\ttfamily \label{group___m_o_d_b_u_s___c_o_n_f_i_g_s_ga29ce22b8b7f0622bc23171c6ae2dc8d1}
|
||||
\#define MODBUS\+\_\+\+ENABLE\+\_\+\+COILS}
|
||||
|
||||
|
||||
|
||||
Включить обработку коилов
|
||||
|
||||
|
||||
|
||||
Definition at line \mbox{\hyperlink{modbus__config_8h_source_l00051}{51}} of file \mbox{\hyperlink{modbus__config_8h_source}{modbus\+\_\+config.\+h}}.
|
||||
|
||||
\Hypertarget{group___m_o_d_b_u_s___c_o_n_f_i_g_s_gaf6a8dfc090b3915d668d78ee19585344}\index{Modbus configs@{Modbus configs}!MODBUS\_ENABLE\_HOLDINGS@{MODBUS\_ENABLE\_HOLDINGS}}
|
||||
\index{MODBUS\_ENABLE\_HOLDINGS@{MODBUS\_ENABLE\_HOLDINGS}!Modbus configs@{Modbus configs}}
|
||||
\doxysubsubsubsection{\texorpdfstring{MODBUS\_ENABLE\_HOLDINGS}{MODBUS\_ENABLE\_HOLDINGS}}
|
||||
{\footnotesize\ttfamily \label{group___m_o_d_b_u_s___c_o_n_f_i_g_s_gaf6a8dfc090b3915d668d78ee19585344}
|
||||
\#define MODBUS\+\_\+\+ENABLE\+\_\+\+HOLDINGS}
|
||||
|
||||
|
||||
|
||||
Включить обработку регистров хранения
|
||||
|
||||
|
||||
|
||||
Definition at line \mbox{\hyperlink{modbus__config_8h_source_l00052}{52}} of file \mbox{\hyperlink{modbus__config_8h_source}{modbus\+\_\+config.\+h}}.
|
||||
|
||||
\Hypertarget{group___m_o_d_b_u_s___c_o_n_f_i_g_s_ga23d7073c81bedb80a302140afd0d79c0}\index{Modbus configs@{Modbus configs}!MODBUS\_ENABLE\_INPUTS@{MODBUS\_ENABLE\_INPUTS}}
|
||||
\index{MODBUS\_ENABLE\_INPUTS@{MODBUS\_ENABLE\_INPUTS}!Modbus configs@{Modbus configs}}
|
||||
\doxysubsubsubsection{\texorpdfstring{MODBUS\_ENABLE\_INPUTS}{MODBUS\_ENABLE\_INPUTS}}
|
||||
{\footnotesize\ttfamily \label{group___m_o_d_b_u_s___c_o_n_f_i_g_s_ga23d7073c81bedb80a302140afd0d79c0}
|
||||
\#define MODBUS\+\_\+\+ENABLE\+\_\+\+INPUTS}
|
||||
|
||||
|
||||
|
||||
Включить обработку входных регистров
|
||||
|
||||
|
||||
|
||||
Definition at line \mbox{\hyperlink{modbus__config_8h_source_l00053}{53}} of file \mbox{\hyperlink{modbus__config_8h_source}{modbus\+\_\+config.\+h}}.
|
||||
|
||||
\Hypertarget{group___m_o_d_b_u_s___c_o_n_f_i_g_s_ga5bf9f305bd863b10f1b350c5004ddda7}\index{Modbus configs@{Modbus configs}!MODBUS\_ENABLE\_DEVICE\_IDENTIFICATIONS@{MODBUS\_ENABLE\_DEVICE\_IDENTIFICATIONS}}
|
||||
\index{MODBUS\_ENABLE\_DEVICE\_IDENTIFICATIONS@{MODBUS\_ENABLE\_DEVICE\_IDENTIFICATIONS}!Modbus configs@{Modbus configs}}
|
||||
\doxysubsubsubsection{\texorpdfstring{MODBUS\_ENABLE\_DEVICE\_IDENTIFICATIONS}{MODBUS\_ENABLE\_DEVICE\_IDENTIFICATIONS}}
|
||||
{\footnotesize\ttfamily \label{group___m_o_d_b_u_s___c_o_n_f_i_g_s_ga5bf9f305bd863b10f1b350c5004ddda7}
|
||||
\#define MODBUS\+\_\+\+ENABLE\+\_\+\+DEVICE\+\_\+\+IDENTIFICATIONS}
|
||||
|
||||
|
||||
|
||||
Включить обработку идентификаторы устройства
|
||||
|
||||
|
||||
|
||||
Definition at line \mbox{\hyperlink{modbus__config_8h_source_l00054}{54}} of file \mbox{\hyperlink{modbus__config_8h_source}{modbus\+\_\+config.\+h}}.
|
||||
|
||||
\Hypertarget{group___m_o_d_b_u_s___c_o_n_f_i_g_s_gae68222efbcf3199706bfaef46af97bf8}\index{Modbus configs@{Modbus configs}!MODBUS\_ENABLE\_DIAGNOSTICS@{MODBUS\_ENABLE\_DIAGNOSTICS}}
|
||||
\index{MODBUS\_ENABLE\_DIAGNOSTICS@{MODBUS\_ENABLE\_DIAGNOSTICS}!Modbus configs@{Modbus configs}}
|
||||
\doxysubsubsubsection{\texorpdfstring{MODBUS\_ENABLE\_DIAGNOSTICS}{MODBUS\_ENABLE\_DIAGNOSTICS}}
|
||||
{\footnotesize\ttfamily \label{group___m_o_d_b_u_s___c_o_n_f_i_g_s_gae68222efbcf3199706bfaef46af97bf8}
|
||||
\#define MODBUS\+\_\+\+ENABLE\+\_\+\+DIAGNOSTICS}
|
||||
|
||||
|
||||
|
||||
Включить обработку диагностики модбас
|
||||
|
||||
|
||||
|
||||
Definition at line \mbox{\hyperlink{modbus__config_8h_source_l00055}{55}} of file \mbox{\hyperlink{modbus__config_8h_source}{modbus\+\_\+config.\+h}}.
|
||||
|
||||
@@ -0,0 +1 @@
|
||||
61c9835afeea22bde934d75b01e2746f
|
||||
BIN
AllLibs/Modbus/Doc/latex/group___m_o_d_b_u_s___d_a_t_a.pdf
Normal file
BIN
AllLibs/Modbus/Doc/latex/group___m_o_d_b_u_s___d_a_t_a.pdf
Normal file
Binary file not shown.
80
AllLibs/Modbus/Doc/latex/group___m_o_d_b_u_s___d_a_t_a.tex
Normal file
80
AllLibs/Modbus/Doc/latex/group___m_o_d_b_u_s___d_a_t_a.tex
Normal file
@@ -0,0 +1,80 @@
|
||||
\doxysubsection{Modbus Registers Map }
|
||||
\hypertarget{group___m_o_d_b_u_s___d_a_t_a}{}\label{group___m_o_d_b_u_s___d_a_t_a}\index{Modbus Registers Map@{Modbus Registers Map}}
|
||||
|
||||
|
||||
Определение карты регистров и коилов
|
||||
|
||||
|
||||
Collaboration diagram for Modbus Registers Map\+:\nopagebreak
|
||||
\begin{figure}[H]
|
||||
\begin{center}
|
||||
\leavevmode
|
||||
\includegraphics[width=350pt]{group___m_o_d_b_u_s___d_a_t_a}
|
||||
\end{center}
|
||||
\end{figure}
|
||||
\doxysubsubsubsection*{Topics}
|
||||
\begin{DoxyCompactItemize}
|
||||
\item
|
||||
\mbox{\hyperlink{group___m_o_d_b_u_s___d_a_t_a___r_e_r_i_s_t_e_r_s___d_e_f_i_n_e_s}{Registers structures}}
|
||||
\begin{DoxyCompactList}\small\item\em Стуруктура регистров (входных и хранения) \end{DoxyCompactList}\item
|
||||
\mbox{\hyperlink{group___m_o_d_b_u_s___d_a_t_a___c_o_i_l_s___d_e_f_i_n_e_s}{Coils Structure}}
|
||||
\begin{DoxyCompactList}\small\item\em Структура коилов \end{DoxyCompactList}\end{DoxyCompactItemize}
|
||||
\doxysubsubsubsection*{Classes}
|
||||
\begin{DoxyCompactItemize}
|
||||
\item
|
||||
struct \mbox{\hyperlink{struct_m_b___data_structure_type_def}{MB\+\_\+\+Data\+Structure\+Type\+Def}}
|
||||
\begin{DoxyCompactList}\small\item\em Структура со всеми регистрами и коилами модбас \end{DoxyCompactList}\end{DoxyCompactItemize}
|
||||
|
||||
|
||||
\doxysubsubsection{Detailed Description}
|
||||
Определение карты регистров и коилов
|
||||
|
||||
Файл содержит объявления структур данных, доступных через Modbus\+:
|
||||
\begin{DoxyItemize}
|
||||
\item Holding Registers (R/W) -\/ регистры хранения
|
||||
\item Input Registers (R/O) -\/ входные регистры ~\newline
|
||||
|
||||
\item Coils (R/W) -\/ дискретные выходы
|
||||
\end{DoxyItemize}\hypertarget{group___m_o_d_b_u_s___d_a_t_a_datinit}{}\doxysubsubsection{\texorpdfstring{Базовая настройка под устройство\+:}{Базовая настройка под устройство\+:}}\label{group___m_o_d_b_u_s___d_a_t_a_datinit}
|
||||
|
||||
\begin{DoxyEnumerate}
|
||||
\item Настроить диапазоны адресов
|
||||
\begin{DoxyItemize}
|
||||
\item \doxylink{modbus__data_8h_a22bd1273e01d32f90a279b517d1737b6}{R\+\_\+\+INPUT\+\_\+\+ADDR} и \doxylink{modbus__data_8h_a97c0b1e20498bca34f6dfe0ac0d97b30}{R\+\_\+\+INPUT\+\_\+\+QNT} для входных регистров
|
||||
\item \doxylink{modbus__data_8h_a791dfd31cc06338acdd8a2eb3b7032e6}{R\+\_\+\+HOLDING\+\_\+\+ADDR} и \doxylink{modbus__data_8h_acf40437374a3227e661db1a18bcef7d7}{R\+\_\+\+HOLDING\+\_\+\+QNT} для регистров хр анения
|
||||
\item \doxylink{modbus__data_8h_a5057c379abcae88db30ad094eceb952d}{C\+\_\+\+COILS\+\_\+\+ADDR} и \doxylink{modbus__data_8h_a5057c379abcae88db30ad094eceb952d}{C\+\_\+\+COILS\+\_\+\+ADDR} для коилов
|
||||
\end{DoxyItemize}
|
||||
\item Настроить структуры данных\+:
|
||||
\begin{DoxyItemize}
|
||||
\item \doxylink{struct_m_b___data_in_regs_type_def}{MB\+\_\+\+Data\+In\+Regs\+Type\+Def}
|
||||
\item \doxylink{struct_m_b___data_hold_regs_type_def}{MB\+\_\+\+Data\+Hold\+Regs\+Type\+Def}
|
||||
\item \doxylink{struct_m_b___data_coils_type_def}{MB\+\_\+\+Data\+Coils\+Type\+Def}
|
||||
\end{DoxyItemize}
|
||||
\end{DoxyEnumerate}\hypertarget{group___m_o_d_b_u_s___d_a_t_a_datexpert}{}\doxysubsubsection{\texorpdfstring{Расширенная настройка под устройство\+:}{Расширенная настройка под устройство\+:}}\label{group___m_o_d_b_u_s___d_a_t_a_datexpert}
|
||||
|
||||
\begin{DoxyEnumerate}
|
||||
\item Добавить новый массив с нужными данными.
|
||||
\item Добавить дефайны для определения его начального адреса и количества элементов
|
||||
\item Добавить проверку адресов в MB\+\_\+\+Define\+Registers\+Address/\+MB\+\_\+\+Define\+Coils\+Address.
|
||||
|
||||
Пример\+:
|
||||
\begin{DoxyCode}{0}
|
||||
\DoxyCodeLine{\textcolor{preprocessor}{\#define\ \ \ R\_USER\_ADDR\ \ \ \ \ \ \ \ 555}}
|
||||
\DoxyCodeLine{\textcolor{preprocessor}{\#define\ \ \ R\_USER\_QNT\ \ \ \ \ \ \ \ \ 16}}
|
||||
\DoxyCodeLine{uint16\_t\ \ user\_regs[16];}
|
||||
\DoxyCodeLine{}
|
||||
\DoxyCodeLine{\textcolor{comment}{//...}}
|
||||
\DoxyCodeLine{\textcolor{keywordflow}{else}\ \textcolor{keywordflow}{if}(\mbox{\hyperlink{group___m_o_d_b_u_s___c_m_d___p_r_o_c_e_s_s___f_u_n_c_t_i_o_n_s_ga278ca9791c69aef8adeb9e7c4b273c50}{MB\_Check\_Address\_For\_Arr}}(Addr,\ Qnt,\ R\_USER\_ADDR,\ R\_USER\_QNT)\ ==\ \mbox{\hyperlink{group___m_o_d_b_u_s___m_e_s_s_a_g_e___d_e_f_i_n_e_s_gga4ade64cb3fabf37f010c1e297489980caa6980c7a8d924dd975b8fa06a300eb74}{ET\_NO\_ERRORS}})}
|
||||
\DoxyCodeLine{\{}
|
||||
\DoxyCodeLine{\ \ *pRegs\ =\ \mbox{\hyperlink{group___m_o_d_b_u_s___m_e_s_s_a_g_e___d_e_f_i_n_e_s_ga938b632e20454741b2a7f97928583776}{MB\_Set\_Register\_Ptr}}(\&user\_regs,\ Addr-\/R\_USER\_ADDR);\ \textcolor{comment}{//\ ВАЖНО!}}
|
||||
\DoxyCodeLine{\ \ \textcolor{comment}{//\ -\/R\_USER\_ADDR\ нужен\ чтобы\ взять\ адрес\ относительно\ начала\ массива}}
|
||||
\DoxyCodeLine{\}}
|
||||
\DoxyCodeLine{\textcolor{keywordflow}{else}\ \ }
|
||||
\DoxyCodeLine{\{}
|
||||
\DoxyCodeLine{\ \ \textcolor{keywordflow}{return}\ \mbox{\hyperlink{group___m_o_d_b_u_s___m_e_s_s_a_g_e___d_e_f_i_n_e_s_gga4ade64cb3fabf37f010c1e297489980caea312adaf18aa7ebd17aca8883550425}{ET\_ILLEGAL\_DATA\_ADDRESS}};}
|
||||
\DoxyCodeLine{\}}
|
||||
|
||||
\end{DoxyCode}
|
||||
|
||||
\end{DoxyEnumerate}\input{group___m_o_d_b_u_s___d_a_t_a___r_e_r_i_s_t_e_r_s___d_e_f_i_n_e_s}
|
||||
\input{group___m_o_d_b_u_s___d_a_t_a___c_o_i_l_s___d_e_f_i_n_e_s}
|
||||
@@ -0,0 +1 @@
|
||||
267e24e8cddb8bf32b8b2ec633d10e2d
|
||||
Binary file not shown.
@@ -0,0 +1,530 @@
|
||||
\doxysubsubsection{API for Data Access }
|
||||
\hypertarget{group___m_o_d_b_u_s___d_a_t_a___a_c_c_e_s_s___f_u_n_c_t_i_o_n_s}{}\label{group___m_o_d_b_u_s___d_a_t_a___a_c_c_e_s_s___f_u_n_c_t_i_o_n_s}\index{API for Data Access@{API for Data Access}}
|
||||
|
||||
|
||||
API для доступа к данным модбас внутри программы
|
||||
|
||||
|
||||
Collaboration diagram for API for Data Access\+:\nopagebreak
|
||||
\begin{figure}[H]
|
||||
\begin{center}
|
||||
\leavevmode
|
||||
\includegraphics[width=330pt]{group___m_o_d_b_u_s___d_a_t_a___a_c_c_e_s_s___f_u_n_c_t_i_o_n_s}
|
||||
\end{center}
|
||||
\end{figure}
|
||||
\doxysubsubsubsubsection*{Macros}
|
||||
\begin{DoxyCompactItemize}
|
||||
\item
|
||||
\#define \mbox{\hyperlink{group___m_o_d_b_u_s___d_a_t_a___a_c_c_e_s_s___f_u_n_c_t_i_o_n_s_ga0f8474120df77dc5f334d60d6a5f6f8f}{MB\+\_\+\+Coil\+\_\+\+Read\+\_\+\+Local}}(\+\_\+parr\+\_\+, \+\_\+coil\+\_\+)
|
||||
\begin{DoxyCompactList}\small\item\em Считать коил по локальному адресу. \end{DoxyCompactList}\item
|
||||
\#define \mbox{\hyperlink{group___m_o_d_b_u_s___d_a_t_a___a_c_c_e_s_s___f_u_n_c_t_i_o_n_s_ga635a6c4fbce49bd1e6797642b36dae7e}{MB\+\_\+\+Coil\+\_\+\+Set\+\_\+\+Local}}(\+\_\+parr\+\_\+, \+\_\+coil\+\_\+)
|
||||
\begin{DoxyCompactList}\small\item\em Выставить коил по локальному адресу. \end{DoxyCompactList}\item
|
||||
\#define \mbox{\hyperlink{group___m_o_d_b_u_s___d_a_t_a___a_c_c_e_s_s___f_u_n_c_t_i_o_n_s_gabc4efb5e2a6aaa021ef5fe6c69476927}{MB\+\_\+\+Coil\+\_\+\+Reset\+\_\+\+Local}}(\+\_\+parr\+\_\+, \+\_\+coil\+\_\+)
|
||||
\begin{DoxyCompactList}\small\item\em Сбросить коил по локальному адресу. \end{DoxyCompactList}\item
|
||||
\#define \mbox{\hyperlink{group___m_o_d_b_u_s___d_a_t_a___a_c_c_e_s_s___f_u_n_c_t_i_o_n_s_gac5f409526055c3d98458ada3d3ab630c}{MB\+\_\+\+Coil\+\_\+\+Toogle\+\_\+\+Local}}(\+\_\+parr\+\_\+, \+\_\+coil\+\_\+)
|
||||
\begin{DoxyCompactList}\small\item\em Переключить состояние коила по локальному адресу. \end{DoxyCompactList}\end{DoxyCompactItemize}
|
||||
\doxysubsubsubsubsection*{Enumerations}
|
||||
\begin{DoxyCompactItemize}
|
||||
\item
|
||||
enum \mbox{\hyperlink{group___m_o_d_b_u_s___d_a_t_a___a_c_c_e_s_s___f_u_n_c_t_i_o_n_s_ga8ccf569b78a17a10ac7c80d52730753a}{MB\+\_\+\+Coils\+Op\+Type\+Def}} \{ {\bfseries SET\+\_\+\+COIL}
|
||||
, {\bfseries RESET\+\_\+\+COIL}
|
||||
, {\bfseries TOOGLE\+\_\+\+COIL}
|
||||
\}
|
||||
\begin{DoxyCompactList}\small\item\em Enum for coils operation. \end{DoxyCompactList}\end{DoxyCompactItemize}
|
||||
\doxysubsubsubsubsection*{Functions}
|
||||
\begin{DoxyCompactItemize}
|
||||
\item
|
||||
\mbox{\hyperlink{group___m_o_d_b_u_s___m_e_s_s_a_g_e___d_e_f_i_n_e_s_ga4ade64cb3fabf37f010c1e297489980c}{MB\+\_\+\+Exception\+Type\+Def}} \mbox{\hyperlink{group___m_o_d_b_u_s___d_a_t_a___a_c_c_e_s_s___f_u_n_c_t_i_o_n_s_gae9b8595911d93cfbf8597f3356a494cc}{MB\+\_\+\+Coil\+\_\+\+Write\+\_\+\+Global}} (uint16\+\_\+t Addr, \mbox{\hyperlink{group___m_o_d_b_u_s___d_a_t_a___a_c_c_e_s_s___f_u_n_c_t_i_o_n_s_ga8ccf569b78a17a10ac7c80d52730753a}{MB\+\_\+\+Coils\+Op\+Type\+Def}} Write\+Val)
|
||||
\begin{DoxyCompactList}\small\item\em Выставить/сбросить коил по глобальному адресу. \end{DoxyCompactList}\item
|
||||
uint16\+\_\+t \mbox{\hyperlink{group___m_o_d_b_u_s___d_a_t_a___a_c_c_e_s_s___f_u_n_c_t_i_o_n_s_ga82334048256e266170a4b3373be59b59}{MB\+\_\+\+Coil\+\_\+\+Read\+\_\+\+Global}} (uint16\+\_\+t Addr, \mbox{\hyperlink{group___m_o_d_b_u_s___m_e_s_s_a_g_e___d_e_f_i_n_e_s_ga4ade64cb3fabf37f010c1e297489980c}{MB\+\_\+\+Exception\+Type\+Def}} \texorpdfstring{$\ast$}{*}Exception)
|
||||
\begin{DoxyCompactList}\small\item\em Считать коил по глобальному адресу. \end{DoxyCompactList}\item
|
||||
int \mbox{\hyperlink{group___m_o_d_b_u_s___d_a_t_a___a_c_c_e_s_s___f_u_n_c_t_i_o_n_s_gab1237f28e2db2cd2e8a93b31cd9a61be}{MB\+\_\+\+Diagnostics\+\_\+\+Write\+Bit}} (int bit\+\_\+num, int bit\+\_\+state)
|
||||
\begin{DoxyCompactList}\small\item\em Выставить бит в регистре диагностике \end{DoxyCompactList}\item
|
||||
int \mbox{\hyperlink{group___m_o_d_b_u_s___d_a_t_a___a_c_c_e_s_s___f_u_n_c_t_i_o_n_s_ga5588ddb15ee2580e7659701e5e671e8f}{MB\+\_\+\+Diagnostics\+\_\+\+Get\+Bit}} (int bit\+\_\+num)
|
||||
\begin{DoxyCompactList}\small\item\em Прочитать состояние бита диагностического регистра \end{DoxyCompactList}\item
|
||||
\mbox{\hyperlink{group___m_o_d_b_u_s___d_i_a_g_ga9d139168bb88bfa1ba1597eeff9ebf6a}{MB\+\_\+\+Device\+Mode\+Type\+Def}} \mbox{\hyperlink{group___m_o_d_b_u_s___d_a_t_a___a_c_c_e_s_s___f_u_n_c_t_i_o_n_s_gae7b613f24e9e3d9d95a789c404a3a485}{MB\+\_\+\+Get\+Device\+Mode}} (void)
|
||||
\begin{DoxyCompactList}\small\item\em Получение текущего режима устройства \end{DoxyCompactList}\item
|
||||
void \mbox{\hyperlink{group___m_o_d_b_u_s___d_a_t_a___a_c_c_e_s_s___f_u_n_c_t_i_o_n_s_gae379458fa9cea50d5e313a68e716cb83}{MB\+\_\+\+Diagnostics\+\_\+\+Bus\+Message\+Cnt}} (void)
|
||||
\begin{DoxyCompactList}\small\item\em Увеличивает счетчик сообщений на шине \end{DoxyCompactList}\item
|
||||
void \mbox{\hyperlink{group___m_o_d_b_u_s___d_a_t_a___a_c_c_e_s_s___f_u_n_c_t_i_o_n_s_ga10f9e4dd9f3dda4bb0f66c323d6b29d7}{MB\+\_\+\+Diagnostics\+\_\+\+Communication\+Error\+Cnt}} (void)
|
||||
\begin{DoxyCompactList}\small\item\em Увеличивает счетчик ошибок связи \end{DoxyCompactList}\item
|
||||
void \mbox{\hyperlink{group___m_o_d_b_u_s___d_a_t_a___a_c_c_e_s_s___f_u_n_c_t_i_o_n_s_ga82e0bf0c4452c25bf3f05a20abb7cc74}{MB\+\_\+\+Diagnostics\+\_\+\+Exception\+Error\+Cnt}} (void)
|
||||
\begin{DoxyCompactList}\small\item\em Увеличивает счетчик исключений \end{DoxyCompactList}\item
|
||||
void \mbox{\hyperlink{group___m_o_d_b_u_s___d_a_t_a___a_c_c_e_s_s___f_u_n_c_t_i_o_n_s_gaff7c464d7d66399232770bac78b653a4}{MB\+\_\+\+Diagnostics\+\_\+\+Character\+Overrun\+Cnt}} (void)
|
||||
\begin{DoxyCompactList}\small\item\em Увеличивает счетчик переполнения символов \end{DoxyCompactList}\item
|
||||
void \mbox{\hyperlink{group___m_o_d_b_u_s___d_a_t_a___a_c_c_e_s_s___f_u_n_c_t_i_o_n_s_ga22a48a04ef64f74b5974c4fdb1445936}{MB\+\_\+\+Diagnostics\+\_\+\+Slave\+Message\+Cnt}} (void)
|
||||
\begin{DoxyCompactList}\small\item\em Увеличивает счетчик отсутствия ответов \end{DoxyCompactList}\item
|
||||
void \mbox{\hyperlink{group___m_o_d_b_u_s___d_a_t_a___a_c_c_e_s_s___f_u_n_c_t_i_o_n_s_gabf80c0e24a0ed3736338218c003d001d}{MB\+\_\+\+Diagnostics\+\_\+\+Slave\+No\+Response\+Cnt}} (void)
|
||||
\begin{DoxyCompactList}\small\item\em Увеличивает счетчик отсутствия ответов \end{DoxyCompactList}\item
|
||||
void \mbox{\hyperlink{group___m_o_d_b_u_s___d_a_t_a___a_c_c_e_s_s___f_u_n_c_t_i_o_n_s_ga2585ebac184f7fa56059c81419c614b9}{MB\+\_\+\+Diagnostics\+\_\+\+Slave\+NAKCnt}} (void)
|
||||
\begin{DoxyCompactList}\small\item\em Увеличивает счетчик NAK ответов \end{DoxyCompactList}\item
|
||||
void \mbox{\hyperlink{group___m_o_d_b_u_s___d_a_t_a___a_c_c_e_s_s___f_u_n_c_t_i_o_n_s_ga4baad1102ba3f09cf3cc121b8d548ddb}{MB\+\_\+\+Diagnostics\+\_\+\+Slave\+Busy\+Cnt}} (void)
|
||||
\begin{DoxyCompactList}\small\item\em Увеличивает счетчик занятости устройства \end{DoxyCompactList}\item
|
||||
\mbox{\hyperlink{group___m_o_d_b_u_s___m_e_s_s_a_g_e___d_e_f_i_n_e_s_ga4ade64cb3fabf37f010c1e297489980c}{MB\+\_\+\+Exception\+Type\+Def}} \mbox{\hyperlink{group___m_o_d_b_u_s___d_a_t_a___a_c_c_e_s_s___f_u_n_c_t_i_o_n_s_ga8b7134e2fc1b65111d536c5590321b80}{MB\+\_\+\+Holding\+\_\+\+Write\+\_\+\+Global}} (uint16\+\_\+t Addr, uint16\+\_\+t Write\+Val)
|
||||
\begin{DoxyCompactList}\small\item\em Записать регистр хранения по глобальному адресу. \end{DoxyCompactList}\item
|
||||
uint16\+\_\+t \mbox{\hyperlink{group___m_o_d_b_u_s___d_a_t_a___a_c_c_e_s_s___f_u_n_c_t_i_o_n_s_ga0198b337d6944329b78c59521baf5738}{MB\+\_\+\+Holding\+\_\+\+Read\+\_\+\+Global}} (uint16\+\_\+t Addr, \mbox{\hyperlink{group___m_o_d_b_u_s___m_e_s_s_a_g_e___d_e_f_i_n_e_s_ga4ade64cb3fabf37f010c1e297489980c}{MB\+\_\+\+Exception\+Type\+Def}} \texorpdfstring{$\ast$}{*}Exception)
|
||||
\begin{DoxyCompactList}\small\item\em Считать регистр хранения по глобальному адресу. \end{DoxyCompactList}\item
|
||||
\mbox{\hyperlink{group___m_o_d_b_u_s___m_e_s_s_a_g_e___d_e_f_i_n_e_s_ga4ade64cb3fabf37f010c1e297489980c}{MB\+\_\+\+Exception\+Type\+Def}} \mbox{\hyperlink{group___m_o_d_b_u_s___d_a_t_a___a_c_c_e_s_s___f_u_n_c_t_i_o_n_s_gafb57a29488a549d1c585234945549f2e}{MB\+\_\+\+Input\+\_\+\+Write\+\_\+\+Global}} (uint16\+\_\+t Addr, uint16\+\_\+t Write\+Val)
|
||||
\begin{DoxyCompactList}\small\item\em Записать входной регистр по глобальному адресу. \end{DoxyCompactList}\item
|
||||
uint16\+\_\+t \mbox{\hyperlink{group___m_o_d_b_u_s___d_a_t_a___a_c_c_e_s_s___f_u_n_c_t_i_o_n_s_ga28d00cd1df2a46a7a9a6a1b1fce99826}{MB\+\_\+\+Input\+\_\+\+Read\+\_\+\+Global}} (uint16\+\_\+t Addr, \mbox{\hyperlink{group___m_o_d_b_u_s___m_e_s_s_a_g_e___d_e_f_i_n_e_s_ga4ade64cb3fabf37f010c1e297489980c}{MB\+\_\+\+Exception\+Type\+Def}} \texorpdfstring{$\ast$}{*}Exception)
|
||||
\begin{DoxyCompactList}\small\item\em Считать входной регистр по глобальному адресу. \end{DoxyCompactList}\end{DoxyCompactItemize}
|
||||
|
||||
|
||||
\doxysubsubsubsection{Detailed Description}
|
||||
API для доступа к данным модбас внутри программы
|
||||
|
||||
|
||||
|
||||
\label{doc-define-members}
|
||||
\Hypertarget{group___m_o_d_b_u_s___d_a_t_a___a_c_c_e_s_s___f_u_n_c_t_i_o_n_s_doc-define-members}
|
||||
\doxysubsubsubsection{Macro Definition Documentation}
|
||||
\Hypertarget{group___m_o_d_b_u_s___d_a_t_a___a_c_c_e_s_s___f_u_n_c_t_i_o_n_s_ga0f8474120df77dc5f334d60d6a5f6f8f}\index{API for Data Access@{API for Data Access}!MB\_Coil\_Read\_Local@{MB\_Coil\_Read\_Local}}
|
||||
\index{MB\_Coil\_Read\_Local@{MB\_Coil\_Read\_Local}!API for Data Access@{API for Data Access}}
|
||||
\doxysubsubsubsubsection{\texorpdfstring{MB\_Coil\_Read\_Local}{MB\_Coil\_Read\_Local}}
|
||||
{\footnotesize\ttfamily \label{group___m_o_d_b_u_s___d_a_t_a___a_c_c_e_s_s___f_u_n_c_t_i_o_n_s_ga0f8474120df77dc5f334d60d6a5f6f8f}
|
||||
\#define MB\+\_\+\+Coil\+\_\+\+Read\+\_\+\+Local(\begin{DoxyParamCaption}\item[{}]{\+\_\+parr\+\_\+}{, }\item[{}]{\+\_\+coil\+\_\+}{}\end{DoxyParamCaption})}
|
||||
|
||||
{\bfseries Value\+:}
|
||||
\begin{DoxyCode}{0}
|
||||
\DoxyCodeLine{((\ \ *\mbox{\hyperlink{group___m_o_d_b_u_s___m_e_s_s_a_g_e___d_e_f_i_n_e_s_ga9648b00f955b16e107b901812031cee3}{MB\_Set\_Coil\_Reg\_Ptr}}(\_parr\_,\ \_coil\_)\ \ \&\ \ \ \mbox{\hyperlink{group___m_o_d_b_u_s___m_e_s_s_a_g_e___d_e_f_i_n_e_s_ga6ab08ed18663bc72f80e4e60b30ab429}{MB\_Set\_Coil\_Mask}}(\_coil\_)\ )\ >>\ (\_coil\_))}
|
||||
|
||||
\end{DoxyCode}
|
||||
|
||||
|
||||
Считать коил по локальному адресу.
|
||||
|
||||
|
||||
\begin{DoxyParams}{Parameters}
|
||||
{\em \+\_\+parr\+\_\+} & -\/ массив коилов. \\
|
||||
\hline
|
||||
{\em \+\_\+coil\+\_\+} & -\/ Номер коила от начала массива {\itshape arr}. \\
|
||||
\hline
|
||||
\end{DoxyParams}
|
||||
\begin{DoxyReturn}{Returns}
|
||||
uint16\+\_\+t Возвращает запрошенный коил на 0м бите.
|
||||
\end{DoxyReturn}
|
||||
Позволяет обратиться к коилу по адресу относительно {\itshape arr}.
|
||||
|
||||
Definition at line \mbox{\hyperlink{modbus__coils_8h_source_l00071}{71}} of file \mbox{\hyperlink{modbus__coils_8h_source}{modbus\+\_\+coils.\+h}}.
|
||||
|
||||
\Hypertarget{group___m_o_d_b_u_s___d_a_t_a___a_c_c_e_s_s___f_u_n_c_t_i_o_n_s_ga635a6c4fbce49bd1e6797642b36dae7e}\index{API for Data Access@{API for Data Access}!MB\_Coil\_Set\_Local@{MB\_Coil\_Set\_Local}}
|
||||
\index{MB\_Coil\_Set\_Local@{MB\_Coil\_Set\_Local}!API for Data Access@{API for Data Access}}
|
||||
\doxysubsubsubsubsection{\texorpdfstring{MB\_Coil\_Set\_Local}{MB\_Coil\_Set\_Local}}
|
||||
{\footnotesize\ttfamily \label{group___m_o_d_b_u_s___d_a_t_a___a_c_c_e_s_s___f_u_n_c_t_i_o_n_s_ga635a6c4fbce49bd1e6797642b36dae7e}
|
||||
\#define MB\+\_\+\+Coil\+\_\+\+Set\+\_\+\+Local(\begin{DoxyParamCaption}\item[{}]{\+\_\+parr\+\_\+}{, }\item[{}]{\+\_\+coil\+\_\+}{}\end{DoxyParamCaption})}
|
||||
|
||||
{\bfseries Value\+:}
|
||||
\begin{DoxyCode}{0}
|
||||
\DoxyCodeLine{*\mbox{\hyperlink{group___m_o_d_b_u_s___m_e_s_s_a_g_e___d_e_f_i_n_e_s_ga9648b00f955b16e107b901812031cee3}{MB\_Set\_Coil\_Reg\_Ptr}}(\_parr\_,\ \_coil\_)\ \ |=\ \ \mbox{\hyperlink{group___m_o_d_b_u_s___m_e_s_s_a_g_e___d_e_f_i_n_e_s_ga6ab08ed18663bc72f80e4e60b30ab429}{MB\_Set\_Coil\_Mask}}(\_coil\_)}
|
||||
|
||||
\end{DoxyCode}
|
||||
|
||||
|
||||
Выставить коил по локальному адресу.
|
||||
|
||||
|
||||
\begin{DoxyParams}{Parameters}
|
||||
{\em \+\_\+parr\+\_\+} & Указатель на массив коилов. \\
|
||||
\hline
|
||||
{\em \+\_\+coil\+\_\+} & -\/ Номер коила от начала массива {\itshape arr}.\\
|
||||
\hline
|
||||
\end{DoxyParams}
|
||||
Позволяет обратиться к коилу по адресу относительно {\itshape arr}.
|
||||
|
||||
Definition at line \mbox{\hyperlink{modbus__coils_8h_source_l00079}{79}} of file \mbox{\hyperlink{modbus__coils_8h_source}{modbus\+\_\+coils.\+h}}.
|
||||
|
||||
\Hypertarget{group___m_o_d_b_u_s___d_a_t_a___a_c_c_e_s_s___f_u_n_c_t_i_o_n_s_gabc4efb5e2a6aaa021ef5fe6c69476927}\index{API for Data Access@{API for Data Access}!MB\_Coil\_Reset\_Local@{MB\_Coil\_Reset\_Local}}
|
||||
\index{MB\_Coil\_Reset\_Local@{MB\_Coil\_Reset\_Local}!API for Data Access@{API for Data Access}}
|
||||
\doxysubsubsubsubsection{\texorpdfstring{MB\_Coil\_Reset\_Local}{MB\_Coil\_Reset\_Local}}
|
||||
{\footnotesize\ttfamily \label{group___m_o_d_b_u_s___d_a_t_a___a_c_c_e_s_s___f_u_n_c_t_i_o_n_s_gabc4efb5e2a6aaa021ef5fe6c69476927}
|
||||
\#define MB\+\_\+\+Coil\+\_\+\+Reset\+\_\+\+Local(\begin{DoxyParamCaption}\item[{}]{\+\_\+parr\+\_\+}{, }\item[{}]{\+\_\+coil\+\_\+}{}\end{DoxyParamCaption})}
|
||||
|
||||
{\bfseries Value\+:}
|
||||
\begin{DoxyCode}{0}
|
||||
\DoxyCodeLine{*\mbox{\hyperlink{group___m_o_d_b_u_s___m_e_s_s_a_g_e___d_e_f_i_n_e_s_ga9648b00f955b16e107b901812031cee3}{MB\_Set\_Coil\_Reg\_Ptr}}(\_parr\_,\ \_coil\_)\ \ \&=\ \string~(\mbox{\hyperlink{group___m_o_d_b_u_s___m_e_s_s_a_g_e___d_e_f_i_n_e_s_ga6ab08ed18663bc72f80e4e60b30ab429}{MB\_Set\_Coil\_Mask}}(\_coil\_))}
|
||||
|
||||
\end{DoxyCode}
|
||||
|
||||
|
||||
Сбросить коил по локальному адресу.
|
||||
|
||||
|
||||
\begin{DoxyParams}{Parameters}
|
||||
{\em \+\_\+parr\+\_\+} & Указатель на массив коилов. \\
|
||||
\hline
|
||||
{\em \+\_\+coil\+\_\+} & -\/ Номер коила от начала массива {\itshape arr}.\\
|
||||
\hline
|
||||
\end{DoxyParams}
|
||||
Позволяет обратиться к коилу по адресу относительно {\itshape arr}.
|
||||
|
||||
Definition at line \mbox{\hyperlink{modbus__coils_8h_source_l00087}{87}} of file \mbox{\hyperlink{modbus__coils_8h_source}{modbus\+\_\+coils.\+h}}.
|
||||
|
||||
\Hypertarget{group___m_o_d_b_u_s___d_a_t_a___a_c_c_e_s_s___f_u_n_c_t_i_o_n_s_gac5f409526055c3d98458ada3d3ab630c}\index{API for Data Access@{API for Data Access}!MB\_Coil\_Toogle\_Local@{MB\_Coil\_Toogle\_Local}}
|
||||
\index{MB\_Coil\_Toogle\_Local@{MB\_Coil\_Toogle\_Local}!API for Data Access@{API for Data Access}}
|
||||
\doxysubsubsubsubsection{\texorpdfstring{MB\_Coil\_Toogle\_Local}{MB\_Coil\_Toogle\_Local}}
|
||||
{\footnotesize\ttfamily \label{group___m_o_d_b_u_s___d_a_t_a___a_c_c_e_s_s___f_u_n_c_t_i_o_n_s_gac5f409526055c3d98458ada3d3ab630c}
|
||||
\#define MB\+\_\+\+Coil\+\_\+\+Toogle\+\_\+\+Local(\begin{DoxyParamCaption}\item[{}]{\+\_\+parr\+\_\+}{, }\item[{}]{\+\_\+coil\+\_\+}{}\end{DoxyParamCaption})}
|
||||
|
||||
{\bfseries Value\+:}
|
||||
\begin{DoxyCode}{0}
|
||||
\DoxyCodeLine{*\mbox{\hyperlink{group___m_o_d_b_u_s___m_e_s_s_a_g_e___d_e_f_i_n_e_s_ga9648b00f955b16e107b901812031cee3}{MB\_Set\_Coil\_Reg\_Ptr}}(\_parr\_,\ \_coil\_)\ \ \string^=\ \ \mbox{\hyperlink{group___m_o_d_b_u_s___m_e_s_s_a_g_e___d_e_f_i_n_e_s_ga6ab08ed18663bc72f80e4e60b30ab429}{MB\_Set\_Coil\_Mask}}(\_coil\_)}
|
||||
|
||||
\end{DoxyCode}
|
||||
|
||||
|
||||
Переключить состояние коила по локальному адресу.
|
||||
|
||||
|
||||
\begin{DoxyParams}{Parameters}
|
||||
{\em \+\_\+parr\+\_\+} & Указатель на массив коилов. \\
|
||||
\hline
|
||||
{\em \+\_\+coil\+\_\+} & -\/ Номер коила от начала массива {\itshape arr}.\\
|
||||
\hline
|
||||
\end{DoxyParams}
|
||||
Позволяет обратиться к коилу по адресу относительно {\itshape arr}.
|
||||
|
||||
Definition at line \mbox{\hyperlink{modbus__coils_8h_source_l00095}{95}} of file \mbox{\hyperlink{modbus__coils_8h_source}{modbus\+\_\+coils.\+h}}.
|
||||
|
||||
|
||||
|
||||
\label{doc-enum-members}
|
||||
\Hypertarget{group___m_o_d_b_u_s___d_a_t_a___a_c_c_e_s_s___f_u_n_c_t_i_o_n_s_doc-enum-members}
|
||||
\doxysubsubsubsection{Enumeration Type Documentation}
|
||||
\Hypertarget{group___m_o_d_b_u_s___d_a_t_a___a_c_c_e_s_s___f_u_n_c_t_i_o_n_s_ga8ccf569b78a17a10ac7c80d52730753a}\index{API for Data Access@{API for Data Access}!MB\_CoilsOpTypeDef@{MB\_CoilsOpTypeDef}}
|
||||
\index{MB\_CoilsOpTypeDef@{MB\_CoilsOpTypeDef}!API for Data Access@{API for Data Access}}
|
||||
\doxysubsubsubsubsection{\texorpdfstring{MB\_CoilsOpTypeDef}{MB\_CoilsOpTypeDef}}
|
||||
{\footnotesize\ttfamily \label{group___m_o_d_b_u_s___d_a_t_a___a_c_c_e_s_s___f_u_n_c_t_i_o_n_s_ga8ccf569b78a17a10ac7c80d52730753a}
|
||||
enum \mbox{\hyperlink{group___m_o_d_b_u_s___d_a_t_a___a_c_c_e_s_s___f_u_n_c_t_i_o_n_s_ga8ccf569b78a17a10ac7c80d52730753a}{MB\+\_\+\+Coils\+Op\+Type\+Def}}}
|
||||
|
||||
|
||||
|
||||
Enum for coils operation.
|
||||
|
||||
|
||||
|
||||
Definition at line \mbox{\hyperlink{modbus__coils_8h_source_l00056}{56}} of file \mbox{\hyperlink{modbus__coils_8h_source}{modbus\+\_\+coils.\+h}}.
|
||||
|
||||
|
||||
|
||||
\label{doc-func-members}
|
||||
\Hypertarget{group___m_o_d_b_u_s___d_a_t_a___a_c_c_e_s_s___f_u_n_c_t_i_o_n_s_doc-func-members}
|
||||
\doxysubsubsubsection{Function Documentation}
|
||||
\Hypertarget{group___m_o_d_b_u_s___d_a_t_a___a_c_c_e_s_s___f_u_n_c_t_i_o_n_s_gae9b8595911d93cfbf8597f3356a494cc}\index{API for Data Access@{API for Data Access}!MB\_Coil\_Write\_Global@{MB\_Coil\_Write\_Global}}
|
||||
\index{MB\_Coil\_Write\_Global@{MB\_Coil\_Write\_Global}!API for Data Access@{API for Data Access}}
|
||||
\doxysubsubsubsubsection{\texorpdfstring{MB\_Coil\_Write\_Global()}{MB\_Coil\_Write\_Global()}}
|
||||
{\footnotesize\ttfamily \label{group___m_o_d_b_u_s___d_a_t_a___a_c_c_e_s_s___f_u_n_c_t_i_o_n_s_gae9b8595911d93cfbf8597f3356a494cc}
|
||||
\mbox{\hyperlink{group___m_o_d_b_u_s___m_e_s_s_a_g_e___d_e_f_i_n_e_s_ga4ade64cb3fabf37f010c1e297489980c}{MB\+\_\+\+Exception\+Type\+Def}} MB\+\_\+\+Coil\+\_\+\+Write\+\_\+\+Global (\begin{DoxyParamCaption}\item[{uint16\+\_\+t}]{Addr}{, }\item[{\mbox{\hyperlink{group___m_o_d_b_u_s___d_a_t_a___a_c_c_e_s_s___f_u_n_c_t_i_o_n_s_ga8ccf569b78a17a10ac7c80d52730753a}{MB\+\_\+\+Coils\+Op\+Type\+Def}}}]{Write\+Val}{}\end{DoxyParamCaption})}
|
||||
|
||||
|
||||
|
||||
Выставить/сбросить коил по глобальному адресу.
|
||||
|
||||
|
||||
\begin{DoxyParams}{Parameters}
|
||||
{\em Addr} & Адрес коила. \\
|
||||
\hline
|
||||
{\em Write\+Val} & Что записать в коил\+: 0 или 1. \\
|
||||
\hline
|
||||
\end{DoxyParams}
|
||||
\begin{DoxyReturn}{Returns}
|
||||
Exception\+Code Код исключения если коила по адресу не существует, и ET\+\_\+\+NO\+\_\+\+ERRORS если все ок.
|
||||
\end{DoxyReturn}
|
||||
Позволяет обратиться к любому коилу по его глобальному адрессу. Вне зависимости от того как коилы размещены в памяти.
|
||||
|
||||
Definition at line \mbox{\hyperlink{modbus__coils_8c_source_l00034}{34}} of file \mbox{\hyperlink{modbus__coils_8c_source}{modbus\+\_\+coils.\+c}}.
|
||||
|
||||
\Hypertarget{group___m_o_d_b_u_s___d_a_t_a___a_c_c_e_s_s___f_u_n_c_t_i_o_n_s_ga82334048256e266170a4b3373be59b59}\index{API for Data Access@{API for Data Access}!MB\_Coil\_Read\_Global@{MB\_Coil\_Read\_Global}}
|
||||
\index{MB\_Coil\_Read\_Global@{MB\_Coil\_Read\_Global}!API for Data Access@{API for Data Access}}
|
||||
\doxysubsubsubsubsection{\texorpdfstring{MB\_Coil\_Read\_Global()}{MB\_Coil\_Read\_Global()}}
|
||||
{\footnotesize\ttfamily \label{group___m_o_d_b_u_s___d_a_t_a___a_c_c_e_s_s___f_u_n_c_t_i_o_n_s_ga82334048256e266170a4b3373be59b59}
|
||||
uint16\+\_\+t MB\+\_\+\+Coil\+\_\+\+Read\+\_\+\+Global (\begin{DoxyParamCaption}\item[{uint16\+\_\+t}]{Addr}{, }\item[{\mbox{\hyperlink{group___m_o_d_b_u_s___m_e_s_s_a_g_e___d_e_f_i_n_e_s_ga4ade64cb3fabf37f010c1e297489980c}{MB\+\_\+\+Exception\+Type\+Def}} \texorpdfstring{$\ast$}{*}}]{Exception}{}\end{DoxyParamCaption})}
|
||||
|
||||
|
||||
|
||||
Считать коил по глобальному адресу.
|
||||
|
||||
|
||||
\begin{DoxyParams}{Parameters}
|
||||
{\em Addr} & Адрес коила. \\
|
||||
\hline
|
||||
{\em Exception} & Указатель на переменную для кода исключения, в случае неудачи при чтении. \\
|
||||
\hline
|
||||
\end{DoxyParams}
|
||||
\begin{DoxyReturn}{Returns}
|
||||
uint16\+\_\+t Возвращает весь регистр с маской на запрошенном коиле.
|
||||
\end{DoxyReturn}
|
||||
Позволяет обратиться к любому коилу по его глобальному адрессу. Вне зависимости от того как коилы размещены в памяти.
|
||||
|
||||
Definition at line \mbox{\hyperlink{modbus__coils_8c_source_l00074}{74}} of file \mbox{\hyperlink{modbus__coils_8c_source}{modbus\+\_\+coils.\+c}}.
|
||||
|
||||
\Hypertarget{group___m_o_d_b_u_s___d_a_t_a___a_c_c_e_s_s___f_u_n_c_t_i_o_n_s_gab1237f28e2db2cd2e8a93b31cd9a61be}\index{API for Data Access@{API for Data Access}!MB\_Diagnostics\_WriteBit@{MB\_Diagnostics\_WriteBit}}
|
||||
\index{MB\_Diagnostics\_WriteBit@{MB\_Diagnostics\_WriteBit}!API for Data Access@{API for Data Access}}
|
||||
\doxysubsubsubsubsection{\texorpdfstring{MB\_Diagnostics\_WriteBit()}{MB\_Diagnostics\_WriteBit()}}
|
||||
{\footnotesize\ttfamily \label{group___m_o_d_b_u_s___d_a_t_a___a_c_c_e_s_s___f_u_n_c_t_i_o_n_s_gab1237f28e2db2cd2e8a93b31cd9a61be}
|
||||
int MB\+\_\+\+Diagnostics\+\_\+\+Write\+Bit (\begin{DoxyParamCaption}\item[{int}]{bit\+\_\+num}{, }\item[{int}]{bit\+\_\+state}{}\end{DoxyParamCaption})}
|
||||
|
||||
|
||||
|
||||
Выставить бит в регистре диагностике
|
||||
|
||||
|
||||
\begin{DoxyParams}{Parameters}
|
||||
{\em bit\+\_\+num} & Номер бита для выставления (1-\/15, 0 бит нельзя выставить) \\
|
||||
\hline
|
||||
{\em bit\+\_\+state} & Состояние бита для выставления (Выставить/Сбросить) \\
|
||||
\hline
|
||||
\end{DoxyParams}
|
||||
\begin{DoxyReturn}{Returns}
|
||||
\texorpdfstring{$>$}{>}0 -\/ номер выставленного бита, 0 -\/ ошибка
|
||||
\end{DoxyReturn}
|
||||
|
||||
|
||||
Definition at line \mbox{\hyperlink{modbus__diag_8c_source_l00045}{45}} of file \mbox{\hyperlink{modbus__diag_8c_source}{modbus\+\_\+diag.\+c}}.
|
||||
|
||||
\Hypertarget{group___m_o_d_b_u_s___d_a_t_a___a_c_c_e_s_s___f_u_n_c_t_i_o_n_s_ga5588ddb15ee2580e7659701e5e671e8f}\index{API for Data Access@{API for Data Access}!MB\_Diagnostics\_GetBit@{MB\_Diagnostics\_GetBit}}
|
||||
\index{MB\_Diagnostics\_GetBit@{MB\_Diagnostics\_GetBit}!API for Data Access@{API for Data Access}}
|
||||
\doxysubsubsubsubsection{\texorpdfstring{MB\_Diagnostics\_GetBit()}{MB\_Diagnostics\_GetBit()}}
|
||||
{\footnotesize\ttfamily \label{group___m_o_d_b_u_s___d_a_t_a___a_c_c_e_s_s___f_u_n_c_t_i_o_n_s_ga5588ddb15ee2580e7659701e5e671e8f}
|
||||
int MB\+\_\+\+Diagnostics\+\_\+\+Get\+Bit (\begin{DoxyParamCaption}\item[{int}]{bit\+\_\+num}{}\end{DoxyParamCaption})}
|
||||
|
||||
|
||||
|
||||
Прочитать состояние бита диагностического регистра
|
||||
|
||||
|
||||
\begin{DoxyParams}{Parameters}
|
||||
{\em bit\+\_\+num} & Номер бита (0-\/15) \\
|
||||
\hline
|
||||
\end{DoxyParams}
|
||||
\begin{DoxyReturn}{Returns}
|
||||
1 -\/ бит установлен, 0 -\/ бит сброшен или ошибка
|
||||
\end{DoxyReturn}
|
||||
|
||||
|
||||
Definition at line \mbox{\hyperlink{modbus__diag_8c_source_l00062}{62}} of file \mbox{\hyperlink{modbus__diag_8c_source}{modbus\+\_\+diag.\+c}}.
|
||||
|
||||
\Hypertarget{group___m_o_d_b_u_s___d_a_t_a___a_c_c_e_s_s___f_u_n_c_t_i_o_n_s_gae7b613f24e9e3d9d95a789c404a3a485}\index{API for Data Access@{API for Data Access}!MB\_GetDeviceMode@{MB\_GetDeviceMode}}
|
||||
\index{MB\_GetDeviceMode@{MB\_GetDeviceMode}!API for Data Access@{API for Data Access}}
|
||||
\doxysubsubsubsubsection{\texorpdfstring{MB\_GetDeviceMode()}{MB\_GetDeviceMode()}}
|
||||
{\footnotesize\ttfamily \label{group___m_o_d_b_u_s___d_a_t_a___a_c_c_e_s_s___f_u_n_c_t_i_o_n_s_gae7b613f24e9e3d9d95a789c404a3a485}
|
||||
\mbox{\hyperlink{group___m_o_d_b_u_s___d_i_a_g_ga9d139168bb88bfa1ba1597eeff9ebf6a}{MB\+\_\+\+Device\+Mode\+Type\+Def}} MB\+\_\+\+Get\+Device\+Mode (\begin{DoxyParamCaption}\item[{void}]{}{}\end{DoxyParamCaption})}
|
||||
|
||||
|
||||
|
||||
Получение текущего режима устройства
|
||||
|
||||
\begin{DoxyReturn}{Returns}
|
||||
Текущий режим работы устройства
|
||||
\end{DoxyReturn}
|
||||
|
||||
|
||||
Definition at line \mbox{\hyperlink{modbus__diag_8c_source_l00291}{291}} of file \mbox{\hyperlink{modbus__diag_8c_source}{modbus\+\_\+diag.\+c}}.
|
||||
|
||||
\Hypertarget{group___m_o_d_b_u_s___d_a_t_a___a_c_c_e_s_s___f_u_n_c_t_i_o_n_s_gae379458fa9cea50d5e313a68e716cb83}\index{API for Data Access@{API for Data Access}!MB\_Diagnostics\_BusMessageCnt@{MB\_Diagnostics\_BusMessageCnt}}
|
||||
\index{MB\_Diagnostics\_BusMessageCnt@{MB\_Diagnostics\_BusMessageCnt}!API for Data Access@{API for Data Access}}
|
||||
\doxysubsubsubsubsection{\texorpdfstring{MB\_Diagnostics\_BusMessageCnt()}{MB\_Diagnostics\_BusMessageCnt()}}
|
||||
{\footnotesize\ttfamily \label{group___m_o_d_b_u_s___d_a_t_a___a_c_c_e_s_s___f_u_n_c_t_i_o_n_s_gae379458fa9cea50d5e313a68e716cb83}
|
||||
void MB\+\_\+\+Diagnostics\+\_\+\+Bus\+Message\+Cnt (\begin{DoxyParamCaption}\item[{void}]{}{}\end{DoxyParamCaption})}
|
||||
|
||||
|
||||
|
||||
Увеличивает счетчик сообщений на шине
|
||||
|
||||
|
||||
|
||||
Definition at line \mbox{\hyperlink{modbus__diag_8c_source_l00215}{215}} of file \mbox{\hyperlink{modbus__diag_8c_source}{modbus\+\_\+diag.\+c}}.
|
||||
|
||||
\Hypertarget{group___m_o_d_b_u_s___d_a_t_a___a_c_c_e_s_s___f_u_n_c_t_i_o_n_s_ga10f9e4dd9f3dda4bb0f66c323d6b29d7}\index{API for Data Access@{API for Data Access}!MB\_Diagnostics\_CommunicationErrorCnt@{MB\_Diagnostics\_CommunicationErrorCnt}}
|
||||
\index{MB\_Diagnostics\_CommunicationErrorCnt@{MB\_Diagnostics\_CommunicationErrorCnt}!API for Data Access@{API for Data Access}}
|
||||
\doxysubsubsubsubsection{\texorpdfstring{MB\_Diagnostics\_CommunicationErrorCnt()}{MB\_Diagnostics\_CommunicationErrorCnt()}}
|
||||
{\footnotesize\ttfamily \label{group___m_o_d_b_u_s___d_a_t_a___a_c_c_e_s_s___f_u_n_c_t_i_o_n_s_ga10f9e4dd9f3dda4bb0f66c323d6b29d7}
|
||||
void MB\+\_\+\+Diagnostics\+\_\+\+Communication\+Error\+Cnt (\begin{DoxyParamCaption}\item[{void}]{}{}\end{DoxyParamCaption})}
|
||||
|
||||
|
||||
|
||||
Увеличивает счетчик ошибок связи
|
||||
|
||||
|
||||
|
||||
Definition at line \mbox{\hyperlink{modbus__diag_8c_source_l00223}{223}} of file \mbox{\hyperlink{modbus__diag_8c_source}{modbus\+\_\+diag.\+c}}.
|
||||
|
||||
\Hypertarget{group___m_o_d_b_u_s___d_a_t_a___a_c_c_e_s_s___f_u_n_c_t_i_o_n_s_ga82e0bf0c4452c25bf3f05a20abb7cc74}\index{API for Data Access@{API for Data Access}!MB\_Diagnostics\_ExceptionErrorCnt@{MB\_Diagnostics\_ExceptionErrorCnt}}
|
||||
\index{MB\_Diagnostics\_ExceptionErrorCnt@{MB\_Diagnostics\_ExceptionErrorCnt}!API for Data Access@{API for Data Access}}
|
||||
\doxysubsubsubsubsection{\texorpdfstring{MB\_Diagnostics\_ExceptionErrorCnt()}{MB\_Diagnostics\_ExceptionErrorCnt()}}
|
||||
{\footnotesize\ttfamily \label{group___m_o_d_b_u_s___d_a_t_a___a_c_c_e_s_s___f_u_n_c_t_i_o_n_s_ga82e0bf0c4452c25bf3f05a20abb7cc74}
|
||||
void MB\+\_\+\+Diagnostics\+\_\+\+Exception\+Error\+Cnt (\begin{DoxyParamCaption}\item[{void}]{}{}\end{DoxyParamCaption})}
|
||||
|
||||
|
||||
|
||||
Увеличивает счетчик исключений
|
||||
|
||||
|
||||
|
||||
Definition at line \mbox{\hyperlink{modbus__diag_8c_source_l00232}{232}} of file \mbox{\hyperlink{modbus__diag_8c_source}{modbus\+\_\+diag.\+c}}.
|
||||
|
||||
\Hypertarget{group___m_o_d_b_u_s___d_a_t_a___a_c_c_e_s_s___f_u_n_c_t_i_o_n_s_gaff7c464d7d66399232770bac78b653a4}\index{API for Data Access@{API for Data Access}!MB\_Diagnostics\_CharacterOverrunCnt@{MB\_Diagnostics\_CharacterOverrunCnt}}
|
||||
\index{MB\_Diagnostics\_CharacterOverrunCnt@{MB\_Diagnostics\_CharacterOverrunCnt}!API for Data Access@{API for Data Access}}
|
||||
\doxysubsubsubsubsection{\texorpdfstring{MB\_Diagnostics\_CharacterOverrunCnt()}{MB\_Diagnostics\_CharacterOverrunCnt()}}
|
||||
{\footnotesize\ttfamily \label{group___m_o_d_b_u_s___d_a_t_a___a_c_c_e_s_s___f_u_n_c_t_i_o_n_s_gaff7c464d7d66399232770bac78b653a4}
|
||||
void MB\+\_\+\+Diagnostics\+\_\+\+Character\+Overrun\+Cnt (\begin{DoxyParamCaption}\item[{void}]{}{}\end{DoxyParamCaption})}
|
||||
|
||||
|
||||
|
||||
Увеличивает счетчик переполнения символов
|
||||
|
||||
|
||||
|
||||
Definition at line \mbox{\hyperlink{modbus__diag_8c_source_l00241}{241}} of file \mbox{\hyperlink{modbus__diag_8c_source}{modbus\+\_\+diag.\+c}}.
|
||||
|
||||
\Hypertarget{group___m_o_d_b_u_s___d_a_t_a___a_c_c_e_s_s___f_u_n_c_t_i_o_n_s_ga22a48a04ef64f74b5974c4fdb1445936}\index{API for Data Access@{API for Data Access}!MB\_Diagnostics\_SlaveMessageCnt@{MB\_Diagnostics\_SlaveMessageCnt}}
|
||||
\index{MB\_Diagnostics\_SlaveMessageCnt@{MB\_Diagnostics\_SlaveMessageCnt}!API for Data Access@{API for Data Access}}
|
||||
\doxysubsubsubsubsection{\texorpdfstring{MB\_Diagnostics\_SlaveMessageCnt()}{MB\_Diagnostics\_SlaveMessageCnt()}}
|
||||
{\footnotesize\ttfamily \label{group___m_o_d_b_u_s___d_a_t_a___a_c_c_e_s_s___f_u_n_c_t_i_o_n_s_ga22a48a04ef64f74b5974c4fdb1445936}
|
||||
void MB\+\_\+\+Diagnostics\+\_\+\+Slave\+Message\+Cnt (\begin{DoxyParamCaption}\item[{void}]{}{}\end{DoxyParamCaption})}
|
||||
|
||||
|
||||
|
||||
Увеличивает счетчик отсутствия ответов
|
||||
|
||||
|
||||
|
||||
Definition at line \mbox{\hyperlink{modbus__diag_8c_source_l00254}{254}} of file \mbox{\hyperlink{modbus__diag_8c_source}{modbus\+\_\+diag.\+c}}.
|
||||
|
||||
\Hypertarget{group___m_o_d_b_u_s___d_a_t_a___a_c_c_e_s_s___f_u_n_c_t_i_o_n_s_gabf80c0e24a0ed3736338218c003d001d}\index{API for Data Access@{API for Data Access}!MB\_Diagnostics\_SlaveNoResponseCnt@{MB\_Diagnostics\_SlaveNoResponseCnt}}
|
||||
\index{MB\_Diagnostics\_SlaveNoResponseCnt@{MB\_Diagnostics\_SlaveNoResponseCnt}!API for Data Access@{API for Data Access}}
|
||||
\doxysubsubsubsubsection{\texorpdfstring{MB\_Diagnostics\_SlaveNoResponseCnt()}{MB\_Diagnostics\_SlaveNoResponseCnt()}}
|
||||
{\footnotesize\ttfamily \label{group___m_o_d_b_u_s___d_a_t_a___a_c_c_e_s_s___f_u_n_c_t_i_o_n_s_gabf80c0e24a0ed3736338218c003d001d}
|
||||
void MB\+\_\+\+Diagnostics\+\_\+\+Slave\+No\+Response\+Cnt (\begin{DoxyParamCaption}\item[{void}]{}{}\end{DoxyParamCaption})}
|
||||
|
||||
|
||||
|
||||
Увеличивает счетчик отсутствия ответов
|
||||
|
||||
|
||||
|
||||
Definition at line \mbox{\hyperlink{modbus__diag_8c_source_l00263}{263}} of file \mbox{\hyperlink{modbus__diag_8c_source}{modbus\+\_\+diag.\+c}}.
|
||||
|
||||
\Hypertarget{group___m_o_d_b_u_s___d_a_t_a___a_c_c_e_s_s___f_u_n_c_t_i_o_n_s_ga2585ebac184f7fa56059c81419c614b9}\index{API for Data Access@{API for Data Access}!MB\_Diagnostics\_SlaveNAKCnt@{MB\_Diagnostics\_SlaveNAKCnt}}
|
||||
\index{MB\_Diagnostics\_SlaveNAKCnt@{MB\_Diagnostics\_SlaveNAKCnt}!API for Data Access@{API for Data Access}}
|
||||
\doxysubsubsubsubsection{\texorpdfstring{MB\_Diagnostics\_SlaveNAKCnt()}{MB\_Diagnostics\_SlaveNAKCnt()}}
|
||||
{\footnotesize\ttfamily \label{group___m_o_d_b_u_s___d_a_t_a___a_c_c_e_s_s___f_u_n_c_t_i_o_n_s_ga2585ebac184f7fa56059c81419c614b9}
|
||||
void MB\+\_\+\+Diagnostics\+\_\+\+Slave\+NAKCnt (\begin{DoxyParamCaption}\item[{void}]{}{}\end{DoxyParamCaption})}
|
||||
|
||||
|
||||
|
||||
Увеличивает счетчик NAK ответов
|
||||
|
||||
|
||||
|
||||
Definition at line \mbox{\hyperlink{modbus__diag_8c_source_l00272}{272}} of file \mbox{\hyperlink{modbus__diag_8c_source}{modbus\+\_\+diag.\+c}}.
|
||||
|
||||
\Hypertarget{group___m_o_d_b_u_s___d_a_t_a___a_c_c_e_s_s___f_u_n_c_t_i_o_n_s_ga4baad1102ba3f09cf3cc121b8d548ddb}\index{API for Data Access@{API for Data Access}!MB\_Diagnostics\_SlaveBusyCnt@{MB\_Diagnostics\_SlaveBusyCnt}}
|
||||
\index{MB\_Diagnostics\_SlaveBusyCnt@{MB\_Diagnostics\_SlaveBusyCnt}!API for Data Access@{API for Data Access}}
|
||||
\doxysubsubsubsubsection{\texorpdfstring{MB\_Diagnostics\_SlaveBusyCnt()}{MB\_Diagnostics\_SlaveBusyCnt()}}
|
||||
{\footnotesize\ttfamily \label{group___m_o_d_b_u_s___d_a_t_a___a_c_c_e_s_s___f_u_n_c_t_i_o_n_s_ga4baad1102ba3f09cf3cc121b8d548ddb}
|
||||
void MB\+\_\+\+Diagnostics\+\_\+\+Slave\+Busy\+Cnt (\begin{DoxyParamCaption}\item[{void}]{}{}\end{DoxyParamCaption})}
|
||||
|
||||
|
||||
|
||||
Увеличивает счетчик занятости устройства
|
||||
|
||||
|
||||
|
||||
Definition at line \mbox{\hyperlink{modbus__diag_8c_source_l00281}{281}} of file \mbox{\hyperlink{modbus__diag_8c_source}{modbus\+\_\+diag.\+c}}.
|
||||
|
||||
\Hypertarget{group___m_o_d_b_u_s___d_a_t_a___a_c_c_e_s_s___f_u_n_c_t_i_o_n_s_ga8b7134e2fc1b65111d536c5590321b80}\index{API for Data Access@{API for Data Access}!MB\_Holding\_Write\_Global@{MB\_Holding\_Write\_Global}}
|
||||
\index{MB\_Holding\_Write\_Global@{MB\_Holding\_Write\_Global}!API for Data Access@{API for Data Access}}
|
||||
\doxysubsubsubsubsection{\texorpdfstring{MB\_Holding\_Write\_Global()}{MB\_Holding\_Write\_Global()}}
|
||||
{\footnotesize\ttfamily \label{group___m_o_d_b_u_s___d_a_t_a___a_c_c_e_s_s___f_u_n_c_t_i_o_n_s_ga8b7134e2fc1b65111d536c5590321b80}
|
||||
\mbox{\hyperlink{group___m_o_d_b_u_s___m_e_s_s_a_g_e___d_e_f_i_n_e_s_ga4ade64cb3fabf37f010c1e297489980c}{MB\+\_\+\+Exception\+Type\+Def}} MB\+\_\+\+Holding\+\_\+\+Write\+\_\+\+Global (\begin{DoxyParamCaption}\item[{uint16\+\_\+t}]{Addr}{, }\item[{uint16\+\_\+t}]{Write\+Val}{}\end{DoxyParamCaption})}
|
||||
|
||||
|
||||
|
||||
Записать регистр хранения по глобальному адресу.
|
||||
|
||||
|
||||
\begin{DoxyParams}{Parameters}
|
||||
{\em Addr} & Адрес регистра. \\
|
||||
\hline
|
||||
{\em Write\+Val} & Число для записи. \\
|
||||
\hline
|
||||
\end{DoxyParams}
|
||||
\begin{DoxyReturn}{Returns}
|
||||
Exception\+Code Код исключения если регистра по адресу не существует, и ET\+\_\+\+NO\+\_\+\+ERRORS если все ок.
|
||||
\end{DoxyReturn}
|
||||
Позволяет обратиться к любому регистру по его глобальному адрессу. Вне зависимости от того как регистры размещены в памяти.
|
||||
|
||||
Definition at line \mbox{\hyperlink{modbus__holdregs_8c_source_l00036}{36}} of file \mbox{\hyperlink{modbus__holdregs_8c_source}{modbus\+\_\+holdregs.\+c}}.
|
||||
|
||||
\Hypertarget{group___m_o_d_b_u_s___d_a_t_a___a_c_c_e_s_s___f_u_n_c_t_i_o_n_s_ga0198b337d6944329b78c59521baf5738}\index{API for Data Access@{API for Data Access}!MB\_Holding\_Read\_Global@{MB\_Holding\_Read\_Global}}
|
||||
\index{MB\_Holding\_Read\_Global@{MB\_Holding\_Read\_Global}!API for Data Access@{API for Data Access}}
|
||||
\doxysubsubsubsubsection{\texorpdfstring{MB\_Holding\_Read\_Global()}{MB\_Holding\_Read\_Global()}}
|
||||
{\footnotesize\ttfamily \label{group___m_o_d_b_u_s___d_a_t_a___a_c_c_e_s_s___f_u_n_c_t_i_o_n_s_ga0198b337d6944329b78c59521baf5738}
|
||||
uint16\+\_\+t MB\+\_\+\+Holding\+\_\+\+Read\+\_\+\+Global (\begin{DoxyParamCaption}\item[{uint16\+\_\+t}]{Addr}{, }\item[{\mbox{\hyperlink{group___m_o_d_b_u_s___m_e_s_s_a_g_e___d_e_f_i_n_e_s_ga4ade64cb3fabf37f010c1e297489980c}{MB\+\_\+\+Exception\+Type\+Def}} \texorpdfstring{$\ast$}{*}}]{Exception}{}\end{DoxyParamCaption})}
|
||||
|
||||
|
||||
|
||||
Считать регистр хранения по глобальному адресу.
|
||||
|
||||
|
||||
\begin{DoxyParams}{Parameters}
|
||||
{\em Addr} & Адрес регистра. \\
|
||||
\hline
|
||||
{\em Exception} & Указатель на переменную для кода исключения, в случае неудачи при чтении. \\
|
||||
\hline
|
||||
\end{DoxyParams}
|
||||
\begin{DoxyReturn}{Returns}
|
||||
uint16\+\_\+t Возвращает значение регистра.
|
||||
\end{DoxyReturn}
|
||||
Позволяет обратиться к любому регистру по его глобальному адрессу. Вне зависимости от того как регистры размещены в памяти.
|
||||
|
||||
Definition at line \mbox{\hyperlink{modbus__holdregs_8c_source_l00061}{61}} of file \mbox{\hyperlink{modbus__holdregs_8c_source}{modbus\+\_\+holdregs.\+c}}.
|
||||
|
||||
\Hypertarget{group___m_o_d_b_u_s___d_a_t_a___a_c_c_e_s_s___f_u_n_c_t_i_o_n_s_gafb57a29488a549d1c585234945549f2e}\index{API for Data Access@{API for Data Access}!MB\_Input\_Write\_Global@{MB\_Input\_Write\_Global}}
|
||||
\index{MB\_Input\_Write\_Global@{MB\_Input\_Write\_Global}!API for Data Access@{API for Data Access}}
|
||||
\doxysubsubsubsubsection{\texorpdfstring{MB\_Input\_Write\_Global()}{MB\_Input\_Write\_Global()}}
|
||||
{\footnotesize\ttfamily \label{group___m_o_d_b_u_s___d_a_t_a___a_c_c_e_s_s___f_u_n_c_t_i_o_n_s_gafb57a29488a549d1c585234945549f2e}
|
||||
\mbox{\hyperlink{group___m_o_d_b_u_s___m_e_s_s_a_g_e___d_e_f_i_n_e_s_ga4ade64cb3fabf37f010c1e297489980c}{MB\+\_\+\+Exception\+Type\+Def}} MB\+\_\+\+Input\+\_\+\+Write\+\_\+\+Global (\begin{DoxyParamCaption}\item[{uint16\+\_\+t}]{Addr}{, }\item[{uint16\+\_\+t}]{Write\+Val}{}\end{DoxyParamCaption})}
|
||||
|
||||
|
||||
|
||||
Записать входной регистр по глобальному адресу.
|
||||
|
||||
|
||||
\begin{DoxyParams}{Parameters}
|
||||
{\em Addr} & Адрес регистра. \\
|
||||
\hline
|
||||
{\em Write\+Val} & Число для записи. \\
|
||||
\hline
|
||||
\end{DoxyParams}
|
||||
\begin{DoxyReturn}{Returns}
|
||||
Exception\+Code Код исключения если регистра по адресу не существует, и ET\+\_\+\+NO\+\_\+\+ERRORS если все ок.
|
||||
\end{DoxyReturn}
|
||||
Позволяет обратиться к любому регистру по его глобальному адрессу. Вне зависимости от того как регистры размещены в памяти.
|
||||
|
||||
Definition at line \mbox{\hyperlink{modbus__inputregs_8c_source_l00032}{32}} of file \mbox{\hyperlink{modbus__inputregs_8c_source}{modbus\+\_\+inputregs.\+c}}.
|
||||
|
||||
\Hypertarget{group___m_o_d_b_u_s___d_a_t_a___a_c_c_e_s_s___f_u_n_c_t_i_o_n_s_ga28d00cd1df2a46a7a9a6a1b1fce99826}\index{API for Data Access@{API for Data Access}!MB\_Input\_Read\_Global@{MB\_Input\_Read\_Global}}
|
||||
\index{MB\_Input\_Read\_Global@{MB\_Input\_Read\_Global}!API for Data Access@{API for Data Access}}
|
||||
\doxysubsubsubsubsection{\texorpdfstring{MB\_Input\_Read\_Global()}{MB\_Input\_Read\_Global()}}
|
||||
{\footnotesize\ttfamily \label{group___m_o_d_b_u_s___d_a_t_a___a_c_c_e_s_s___f_u_n_c_t_i_o_n_s_ga28d00cd1df2a46a7a9a6a1b1fce99826}
|
||||
uint16\+\_\+t MB\+\_\+\+Input\+\_\+\+Read\+\_\+\+Global (\begin{DoxyParamCaption}\item[{uint16\+\_\+t}]{Addr}{, }\item[{\mbox{\hyperlink{group___m_o_d_b_u_s___m_e_s_s_a_g_e___d_e_f_i_n_e_s_ga4ade64cb3fabf37f010c1e297489980c}{MB\+\_\+\+Exception\+Type\+Def}} \texorpdfstring{$\ast$}{*}}]{Exception}{}\end{DoxyParamCaption})}
|
||||
|
||||
|
||||
|
||||
Считать входной регистр по глобальному адресу.
|
||||
|
||||
|
||||
\begin{DoxyParams}{Parameters}
|
||||
{\em Addr} & Адрес регистра. \\
|
||||
\hline
|
||||
{\em Exception} & Указатель на переменную для кода исключения, в случае неудачи при чтении. \\
|
||||
\hline
|
||||
\end{DoxyParams}
|
||||
\begin{DoxyReturn}{Returns}
|
||||
uint16\+\_\+t Возвращает значение регистра.
|
||||
\end{DoxyReturn}
|
||||
Позволяет обратиться к любому регистру по его глобальному адрессу. Вне зависимости от того как регистры размещены в памяти.
|
||||
|
||||
Definition at line \mbox{\hyperlink{modbus__inputregs_8c_source_l00057}{57}} of file \mbox{\hyperlink{modbus__inputregs_8c_source}{modbus\+\_\+inputregs.\+c}}.
|
||||
|
||||
@@ -0,0 +1 @@
|
||||
4d1ce3cd7bbd24ad05d65c90615e896d
|
||||
Binary file not shown.
@@ -0,0 +1,33 @@
|
||||
\doxysubsubsection{Coils Structure }
|
||||
\hypertarget{group___m_o_d_b_u_s___d_a_t_a___c_o_i_l_s___d_e_f_i_n_e_s}{}\label{group___m_o_d_b_u_s___d_a_t_a___c_o_i_l_s___d_e_f_i_n_e_s}\index{Coils Structure@{Coils Structure}}
|
||||
|
||||
|
||||
Структура коилов
|
||||
|
||||
|
||||
Collaboration diagram for Coils Structure\+:\nopagebreak
|
||||
\begin{figure}[H]
|
||||
\begin{center}
|
||||
\leavevmode
|
||||
\includegraphics[width=315pt]{group___m_o_d_b_u_s___d_a_t_a___c_o_i_l_s___d_e_f_i_n_e_s}
|
||||
\end{center}
|
||||
\end{figure}
|
||||
\doxysubsubsubsubsection*{Classes}
|
||||
\begin{DoxyCompactItemize}
|
||||
\item
|
||||
struct \mbox{\hyperlink{struct_m_b___data_coils_type_def}{MB\+\_\+\+Data\+Coils\+Type\+Def}}
|
||||
\begin{DoxyCompactList}\small\item\em Коилы \end{DoxyCompactList}\end{DoxyCompactItemize}
|
||||
|
||||
|
||||
\doxysubsubsubsection{Detailed Description}
|
||||
Структура коилов
|
||||
|
||||
|
||||
\begin{DoxyCode}{0}
|
||||
\DoxyCodeLine{Структура\ дефайна}
|
||||
\DoxyCodeLine{Для\ массивов\ коилов:}
|
||||
\DoxyCodeLine{\ \ C\_<NAME\_ARRAY>\_ADDR\ \ \ -\/\ модбас\ адресс\ первого\ коила\ в\ массиве}
|
||||
\DoxyCodeLine{\ \ C\_<NAME\_ARRAY>\_QNT\ \ \ \ -\/\ количество\ коилов\ в\ массиве\ (минимум\ 16)}
|
||||
|
||||
\end{DoxyCode}
|
||||
|
||||
@@ -0,0 +1 @@
|
||||
d321a96090790becf038d85695ade05b
|
||||
Binary file not shown.
@@ -0,0 +1,34 @@
|
||||
\doxysubsubsection{Registers structures }
|
||||
\hypertarget{group___m_o_d_b_u_s___d_a_t_a___r_e_r_i_s_t_e_r_s___d_e_f_i_n_e_s}{}\label{group___m_o_d_b_u_s___d_a_t_a___r_e_r_i_s_t_e_r_s___d_e_f_i_n_e_s}\index{Registers structures@{Registers structures}}
|
||||
|
||||
|
||||
Стуруктура регистров (входных и хранения)
|
||||
|
||||
|
||||
Collaboration diagram for Registers structures\+:\nopagebreak
|
||||
\begin{figure}[H]
|
||||
\begin{center}
|
||||
\leavevmode
|
||||
\includegraphics[width=338pt]{group___m_o_d_b_u_s___d_a_t_a___r_e_r_i_s_t_e_r_s___d_e_f_i_n_e_s}
|
||||
\end{center}
|
||||
\end{figure}
|
||||
\doxysubsubsubsubsection*{Classes}
|
||||
\begin{DoxyCompactItemize}
|
||||
\item
|
||||
struct \mbox{\hyperlink{struct_m_b___data_in_regs_type_def}{MB\+\_\+\+Data\+In\+Regs\+Type\+Def}}
|
||||
\begin{DoxyCompactList}\small\item\em Регистры хранения \end{DoxyCompactList}\item
|
||||
struct \mbox{\hyperlink{struct_m_b___data_hold_regs_type_def}{MB\+\_\+\+Data\+Hold\+Regs\+Type\+Def}}
|
||||
\begin{DoxyCompactList}\small\item\em Входные регистры \end{DoxyCompactList}\end{DoxyCompactItemize}
|
||||
|
||||
|
||||
\doxysubsubsubsection{Detailed Description}
|
||||
Стуруктура регистров (входных и хранения)
|
||||
|
||||
|
||||
\begin{DoxyCode}{0}
|
||||
\DoxyCodeLine{Для\ массивов\ регистров:}
|
||||
\DoxyCodeLine{\ \ R\_<NAME\_ARRAY>\_ADDR\ \ \ -\/\ \ модбас\ адресс\ первого\ регистра\ в\ массиве}
|
||||
\DoxyCodeLine{\ \ R\_<NAME\_ARRAY>\_QNT\ \ \ \ -\/\ \ количество\ регистров\ в\ массиве}
|
||||
|
||||
\end{DoxyCode}
|
||||
|
||||
@@ -0,0 +1 @@
|
||||
76871839154cae8b0fbbd5c157281dbd
|
||||
BIN
AllLibs/Modbus/Doc/latex/group___m_o_d_b_u_s___d_e_v_i_d.pdf
Normal file
BIN
AllLibs/Modbus/Doc/latex/group___m_o_d_b_u_s___d_e_v_i_d.pdf
Normal file
Binary file not shown.
197
AllLibs/Modbus/Doc/latex/group___m_o_d_b_u_s___d_e_v_i_d.tex
Normal file
197
AllLibs/Modbus/Doc/latex/group___m_o_d_b_u_s___d_e_v_i_d.tex
Normal file
@@ -0,0 +1,197 @@
|
||||
\doxysubsubsection{Device Identifications Tools }
|
||||
\hypertarget{group___m_o_d_b_u_s___d_e_v_i_d}{}\label{group___m_o_d_b_u_s___d_e_v_i_d}\index{Device Identifications Tools@{Device Identifications Tools}}
|
||||
|
||||
|
||||
Функции для работы с идентификаторами устройства
|
||||
|
||||
|
||||
Collaboration diagram for Device Identifications Tools\+:\nopagebreak
|
||||
\begin{figure}[H]
|
||||
\begin{center}
|
||||
\leavevmode
|
||||
\includegraphics[width=338pt]{group___m_o_d_b_u_s___d_e_v_i_d}
|
||||
\end{center}
|
||||
\end{figure}
|
||||
\doxysubsubsubsubsection*{Classes}
|
||||
\begin{DoxyCompactItemize}
|
||||
\item
|
||||
struct \mbox{\hyperlink{struct_m_b___device_object_type_def}{MB\+\_\+\+Device\+Object\+Type\+Def}}
|
||||
\begin{DoxyCompactList}\small\item\em Структура для объекта (идентификатора устройства модбас) \end{DoxyCompactList}\item
|
||||
struct \mbox{\hyperlink{struct_m_b___device_identifications_type_def}{MB\+\_\+\+Device\+Identifications\+Type\+Def}}
|
||||
\begin{DoxyCompactList}\small\item\em Структура со идентификаторами устройства модбас \end{DoxyCompactList}\end{DoxyCompactItemize}
|
||||
\doxysubsubsubsubsection*{Macros}
|
||||
\begin{DoxyCompactItemize}
|
||||
\item
|
||||
\#define \mbox{\hyperlink{group___m_o_d_b_u_s___d_e_v_i_d_gaaa2e116d48e6ffb2fa17b4be128930a9}{MODBUS\+\_\+\+DEVICE\+\_\+\+CONFORMITY}}~0x82
|
||||
\item
|
||||
\#define \mbox{\hyperlink{group___m_o_d_b_u_s___d_e_v_i_d_gae5e66049f0dc66382999cf52cdeba38e}{MB\+\_\+\+Object\+Init}}(\+\_\+p\+\_\+obj\+\_\+, \+\_\+userstring\+\_\+)
|
||||
\begin{DoxyCompactList}\small\item\em Инициализация объектов \end{DoxyCompactList}\item
|
||||
\#define \mbox{\hyperlink{group___m_o_d_b_u_s___d_e_v_i_d_ga090d04bdaee6827a9a620d149efd4978}{MB\+\_\+\+User\+Object\+Init}}(\+\_\+pinfostruct\+\_\+, \+\_\+user\+\_\+numb\+\_\+)
|
||||
\begin{DoxyCompactList}\small\item\em Инициализация пользовательских объектов \end{DoxyCompactList}\end{DoxyCompactItemize}
|
||||
\doxysubsubsubsubsection*{Functions}
|
||||
\begin{DoxyCompactItemize}
|
||||
\item
|
||||
void \mbox{\hyperlink{group___m_o_d_b_u_s___d_e_v_i_d_ga2b93352920bf3c6da0f67cfbaef3d572}{MB\+\_\+\+Device\+Inentification\+Init}} (void)
|
||||
\begin{DoxyCompactList}\small\item\em Инициализация идентификаторов. \end{DoxyCompactList}\item
|
||||
void \mbox{\hyperlink{group___m_o_d_b_u_s___d_e_v_i_d_ga7c0638d252c74d0c1ef047ff23e43b3f}{MB\+\_\+\+Write\+Single\+Object\+To\+Message}} (char \texorpdfstring{$\ast$}{*}mbdata, unsigned \texorpdfstring{$\ast$}{*}ind, \mbox{\hyperlink{struct_m_b___device_object_type_def}{MB\+\_\+\+Device\+Object\+Type\+Def}} \texorpdfstring{$\ast$}{*}obj)
|
||||
\begin{DoxyCompactList}\small\item\em Записать Один Объект Идентификатора в массив данных \end{DoxyCompactList}\item
|
||||
void \mbox{\hyperlink{group___m_o_d_b_u_s___d_e_v_i_d_gaf864599c95934d63f854a038e3bdccb0}{MB\+\_\+\+Write\+Objects\+To\+Message}} (\mbox{\hyperlink{struct_r_s___msg_type_def}{RS\+\_\+\+Msg\+Type\+Def}} \texorpdfstring{$\ast$}{*}modbus\+\_\+msg, unsigned maxidofobj)
|
||||
\begin{DoxyCompactList}\small\item\em Записать Массив Объектов Идентификатора в массив данных \end{DoxyCompactList}\end{DoxyCompactItemize}
|
||||
\doxysubsubsubsubsection*{Variables}
|
||||
\begin{DoxyCompactItemize}
|
||||
\item
|
||||
\mbox{\hyperlink{struct_m_b___device_identifications_type_def}{MB\+\_\+\+Device\+Identifications\+Type\+Def}} \mbox{\hyperlink{group___m_o_d_b_u_s___d_e_v_i_d_ga0aaf735fcb26fa61af6f7f4895802b90}{MB\+\_\+\+DEVID}}
|
||||
\begin{DoxyCompactList}\small\item\em Глобальная структура идентификаторов устройства \end{DoxyCompactList}\end{DoxyCompactItemize}
|
||||
|
||||
|
||||
\doxysubsubsubsection{Detailed Description}
|
||||
Функции для работы с идентификаторами устройства
|
||||
|
||||
Модуль реализации функции Read Device Identifications (0x2B)\+:
|
||||
\begin{DoxyItemize}
|
||||
\item Базовая идентификация (Vendor, Product, Revision)
|
||||
\item Расширенная идентификация (URL, Model, User fields)
|
||||
\item Поддержка потоковой передачи больших объектов
|
||||
\end{DoxyItemize}\hypertarget{group___m_o_d_b_u_s___d_e_v_i_d_devobj}{}\doxysubsubsubsection{\texorpdfstring{Объекты идентификации\+:}{Объекты идентификации\+:}}\label{group___m_o_d_b_u_s___d_e_v_i_d_devobj}
|
||||
|
||||
\begin{DoxyItemize}
|
||||
\item Vendor\+Name, Product\+Code, Revision -\/ обязательные
|
||||
\item Vendor\+Url, Product\+Name, Model\+Name -\/ опциональные
|
||||
\item User objects -\/ пользовательские поля
|
||||
\item Поддержка до 128 пользовательских объектов
|
||||
\end{DoxyItemize}
|
||||
|
||||
\label{doc-define-members}
|
||||
\Hypertarget{group___m_o_d_b_u_s___d_e_v_i_d_doc-define-members}
|
||||
\doxysubsubsubsection{Macro Definition Documentation}
|
||||
\Hypertarget{group___m_o_d_b_u_s___d_e_v_i_d_gaaa2e116d48e6ffb2fa17b4be128930a9}\index{Device Identifications Tools@{Device Identifications Tools}!MODBUS\_DEVICE\_CONFORMITY@{MODBUS\_DEVICE\_CONFORMITY}}
|
||||
\index{MODBUS\_DEVICE\_CONFORMITY@{MODBUS\_DEVICE\_CONFORMITY}!Device Identifications Tools@{Device Identifications Tools}}
|
||||
\doxysubsubsubsubsection{\texorpdfstring{MODBUS\_DEVICE\_CONFORMITY}{MODBUS\_DEVICE\_CONFORMITY}}
|
||||
{\footnotesize\ttfamily \label{group___m_o_d_b_u_s___d_e_v_i_d_gaaa2e116d48e6ffb2fa17b4be128930a9}
|
||||
\#define MODBUS\+\_\+\+DEVICE\+\_\+\+CONFORMITY~0x82}
|
||||
|
||||
|
||||
|
||||
Definition at line \mbox{\hyperlink{modbus__devid_8h_source_l00038}{38}} of file \mbox{\hyperlink{modbus__devid_8h_source}{modbus\+\_\+devid.\+h}}.
|
||||
|
||||
\Hypertarget{group___m_o_d_b_u_s___d_e_v_i_d_gae5e66049f0dc66382999cf52cdeba38e}\index{Device Identifications Tools@{Device Identifications Tools}!MB\_ObjectInit@{MB\_ObjectInit}}
|
||||
\index{MB\_ObjectInit@{MB\_ObjectInit}!Device Identifications Tools@{Device Identifications Tools}}
|
||||
\doxysubsubsubsubsection{\texorpdfstring{MB\_ObjectInit}{MB\_ObjectInit}}
|
||||
{\footnotesize\ttfamily \label{group___m_o_d_b_u_s___d_e_v_i_d_gae5e66049f0dc66382999cf52cdeba38e}
|
||||
\#define MB\+\_\+\+Object\+Init(\begin{DoxyParamCaption}\item[{}]{\+\_\+p\+\_\+obj\+\_\+}{, }\item[{}]{\+\_\+userstring\+\_\+}{}\end{DoxyParamCaption})}
|
||||
|
||||
{\bfseries Value\+:}
|
||||
\begin{DoxyCode}{0}
|
||||
\DoxyCodeLine{(\_p\_obj\_)-\/>length\ \ =\ \textcolor{keyword}{sizeof}(\_userstring\_);\(\backslash\)}
|
||||
\DoxyCodeLine{(\_p\_obj\_)-\/>name\ \ \ \ =\ \_userstring\_;}
|
||||
|
||||
\end{DoxyCode}
|
||||
|
||||
|
||||
Инициализация объектов
|
||||
|
||||
С помозью этого дефайна инициализируются объекты в \doxylink{group___m_o_d_b_u_s___d_e_v_i_d_ga2b93352920bf3c6da0f67cfbaef3d572}{MB\+\_\+\+Device\+Inentification\+Init}
|
||||
|
||||
Definition at line \mbox{\hyperlink{modbus__devid_8h_source_l00075}{75}} of file \mbox{\hyperlink{modbus__devid_8h_source}{modbus\+\_\+devid.\+h}}.
|
||||
|
||||
\Hypertarget{group___m_o_d_b_u_s___d_e_v_i_d_ga090d04bdaee6827a9a620d149efd4978}\index{Device Identifications Tools@{Device Identifications Tools}!MB\_UserObjectInit@{MB\_UserObjectInit}}
|
||||
\index{MB\_UserObjectInit@{MB\_UserObjectInit}!Device Identifications Tools@{Device Identifications Tools}}
|
||||
\doxysubsubsubsubsection{\texorpdfstring{MB\_UserObjectInit}{MB\_UserObjectInit}}
|
||||
{\footnotesize\ttfamily \label{group___m_o_d_b_u_s___d_e_v_i_d_ga090d04bdaee6827a9a620d149efd4978}
|
||||
\#define MB\+\_\+\+User\+Object\+Init(\begin{DoxyParamCaption}\item[{}]{\+\_\+pinfostruct\+\_\+}{, }\item[{}]{\+\_\+user\+\_\+numb\+\_\+}{}\end{DoxyParamCaption})}
|
||||
|
||||
{\bfseries Value\+:}
|
||||
\begin{DoxyCode}{0}
|
||||
\DoxyCodeLine{\mbox{\hyperlink{group___m_o_d_b_u_s___d_e_v_i_d_gae5e66049f0dc66382999cf52cdeba38e}{MB\_ObjectInit}}(\&(\_pinfostruct\_)-\/>User[\_user\_numb\_],\ MODBUS\_USEROBJECT\#\#\_user\_numb\_\#\#\_NAME)}
|
||||
|
||||
\end{DoxyCode}
|
||||
|
||||
|
||||
Инициализация пользовательских объектов
|
||||
|
||||
С помозью этого дефайна инициализируются пользовательские объекты в MB\+\_\+\+Device\+Inentification\+Init
|
||||
|
||||
Definition at line \mbox{\hyperlink{modbus__devid_8h_source_l00082}{82}} of file \mbox{\hyperlink{modbus__devid_8h_source}{modbus\+\_\+devid.\+h}}.
|
||||
|
||||
|
||||
|
||||
\label{doc-func-members}
|
||||
\Hypertarget{group___m_o_d_b_u_s___d_e_v_i_d_doc-func-members}
|
||||
\doxysubsubsubsection{Function Documentation}
|
||||
\Hypertarget{group___m_o_d_b_u_s___d_e_v_i_d_ga2b93352920bf3c6da0f67cfbaef3d572}\index{Device Identifications Tools@{Device Identifications Tools}!MB\_DeviceInentificationInit@{MB\_DeviceInentificationInit}}
|
||||
\index{MB\_DeviceInentificationInit@{MB\_DeviceInentificationInit}!Device Identifications Tools@{Device Identifications Tools}}
|
||||
\doxysubsubsubsubsection{\texorpdfstring{MB\_DeviceInentificationInit()}{MB\_DeviceInentificationInit()}}
|
||||
{\footnotesize\ttfamily \label{group___m_o_d_b_u_s___d_e_v_i_d_ga2b93352920bf3c6da0f67cfbaef3d572}
|
||||
void MB\+\_\+\+Device\+Inentification\+Init (\begin{DoxyParamCaption}\item[{void}]{}{}\end{DoxyParamCaption})}
|
||||
|
||||
|
||||
|
||||
Инициализация идентификаторов.
|
||||
|
||||
|
||||
|
||||
Definition at line \mbox{\hyperlink{modbus__devid_8c_source_l00177}{177}} of file \mbox{\hyperlink{modbus__devid_8c_source}{modbus\+\_\+devid.\+c}}.
|
||||
|
||||
\Hypertarget{group___m_o_d_b_u_s___d_e_v_i_d_ga7c0638d252c74d0c1ef047ff23e43b3f}\index{Device Identifications Tools@{Device Identifications Tools}!MB\_WriteSingleObjectToMessage@{MB\_WriteSingleObjectToMessage}}
|
||||
\index{MB\_WriteSingleObjectToMessage@{MB\_WriteSingleObjectToMessage}!Device Identifications Tools@{Device Identifications Tools}}
|
||||
\doxysubsubsubsubsection{\texorpdfstring{MB\_WriteSingleObjectToMessage()}{MB\_WriteSingleObjectToMessage()}}
|
||||
{\footnotesize\ttfamily \label{group___m_o_d_b_u_s___d_e_v_i_d_ga7c0638d252c74d0c1ef047ff23e43b3f}
|
||||
void MB\+\_\+\+Write\+Single\+Object\+To\+Message (\begin{DoxyParamCaption}\item[{char \texorpdfstring{$\ast$}{*}}]{mbdata}{, }\item[{unsigned \texorpdfstring{$\ast$}{*}}]{ind}{, }\item[{\mbox{\hyperlink{struct_m_b___device_object_type_def}{MB\+\_\+\+Device\+Object\+Type\+Def}} \texorpdfstring{$\ast$}{*}}]{obj}{}\end{DoxyParamCaption})}
|
||||
|
||||
|
||||
|
||||
Записать Один Объект Идентификатора в массив данных
|
||||
|
||||
|
||||
\begin{DoxyParams}{Parameters}
|
||||
{\em mbdata} & Указатель на массив данных в структуре \doxylink{struct_r_s___msg_type_def}{RS\+\_\+\+Msg\+Type\+Def}. \\
|
||||
\hline
|
||||
\end{DoxyParams}
|
||||
\begin{DoxyReturn}{Returns}
|
||||
obj Объект для записи.
|
||||
\end{DoxyReturn}
|
||||
|
||||
|
||||
Definition at line \mbox{\hyperlink{modbus__devid_8c_source_l00031}{31}} of file \mbox{\hyperlink{modbus__devid_8c_source}{modbus\+\_\+devid.\+c}}.
|
||||
|
||||
\Hypertarget{group___m_o_d_b_u_s___d_e_v_i_d_gaf864599c95934d63f854a038e3bdccb0}\index{Device Identifications Tools@{Device Identifications Tools}!MB\_WriteObjectsToMessage@{MB\_WriteObjectsToMessage}}
|
||||
\index{MB\_WriteObjectsToMessage@{MB\_WriteObjectsToMessage}!Device Identifications Tools@{Device Identifications Tools}}
|
||||
\doxysubsubsubsubsection{\texorpdfstring{MB\_WriteObjectsToMessage()}{MB\_WriteObjectsToMessage()}}
|
||||
{\footnotesize\ttfamily \label{group___m_o_d_b_u_s___d_e_v_i_d_gaf864599c95934d63f854a038e3bdccb0}
|
||||
void MB\+\_\+\+Write\+Objects\+To\+Message (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{struct_r_s___msg_type_def}{RS\+\_\+\+Msg\+Type\+Def}} \texorpdfstring{$\ast$}{*}}]{modbus\+\_\+msg}{, }\item[{unsigned}]{maxidofobj}{}\end{DoxyParamCaption})}
|
||||
|
||||
|
||||
|
||||
Записать Массив Объектов Идентификатора в массив данных
|
||||
|
||||
|
||||
\begin{DoxyParams}{Parameters}
|
||||
{\em mbdata} & Указатель на массив данных в структуре \doxylink{struct_r_s___msg_type_def}{RS\+\_\+\+Msg\+Type\+Def}. \\
|
||||
\hline
|
||||
\end{DoxyParams}
|
||||
\begin{DoxyReturn}{Returns}
|
||||
obj Объект для записи.
|
||||
\end{DoxyReturn}
|
||||
|
||||
|
||||
Definition at line \mbox{\hyperlink{modbus__devid_8c_source_l00046}{46}} of file \mbox{\hyperlink{modbus__devid_8c_source}{modbus\+\_\+devid.\+c}}.
|
||||
|
||||
|
||||
|
||||
\label{doc-var-members}
|
||||
\Hypertarget{group___m_o_d_b_u_s___d_e_v_i_d_doc-var-members}
|
||||
\doxysubsubsubsection{Variable Documentation}
|
||||
\Hypertarget{group___m_o_d_b_u_s___d_e_v_i_d_ga0aaf735fcb26fa61af6f7f4895802b90}\index{Device Identifications Tools@{Device Identifications Tools}!MB\_DEVID@{MB\_DEVID}}
|
||||
\index{MB\_DEVID@{MB\_DEVID}!Device Identifications Tools@{Device Identifications Tools}}
|
||||
\doxysubsubsubsubsection{\texorpdfstring{MB\_DEVID}{MB\_DEVID}}
|
||||
{\footnotesize\ttfamily \label{group___m_o_d_b_u_s___d_e_v_i_d_ga0aaf735fcb26fa61af6f7f4895802b90}
|
||||
\mbox{\hyperlink{struct_m_b___device_identifications_type_def}{MB\+\_\+\+Device\+Identifications\+Type\+Def}} MB\+\_\+\+DEVID\hspace{0.3cm}{\ttfamily [extern]}}
|
||||
|
||||
|
||||
|
||||
Глобальная структура идентификаторов устройства
|
||||
|
||||
|
||||
|
||||
Definition at line \mbox{\hyperlink{modbus__devid_8c_source_l00021}{21}} of file \mbox{\hyperlink{modbus__devid_8c_source}{modbus\+\_\+devid.\+c}}.
|
||||
|
||||
@@ -0,0 +1 @@
|
||||
93d8ecdbae6295dcdba35fcc34fc59b2
|
||||
BIN
AllLibs/Modbus/Doc/latex/group___m_o_d_b_u_s___d_i_a_g.pdf
Normal file
BIN
AllLibs/Modbus/Doc/latex/group___m_o_d_b_u_s___d_i_a_g.pdf
Normal file
Binary file not shown.
104
AllLibs/Modbus/Doc/latex/group___m_o_d_b_u_s___d_i_a_g.tex
Normal file
104
AllLibs/Modbus/Doc/latex/group___m_o_d_b_u_s___d_i_a_g.tex
Normal file
@@ -0,0 +1,104 @@
|
||||
\doxysubsubsection{Diagnostics Tools }
|
||||
\hypertarget{group___m_o_d_b_u_s___d_i_a_g}{}\label{group___m_o_d_b_u_s___d_i_a_g}\index{Diagnostics Tools@{Diagnostics Tools}}
|
||||
|
||||
|
||||
Функции для работы с диагностикой
|
||||
|
||||
|
||||
Collaboration diagram for Diagnostics Tools\+:\nopagebreak
|
||||
\begin{figure}[H]
|
||||
\begin{center}
|
||||
\leavevmode
|
||||
\includegraphics[width=321pt]{group___m_o_d_b_u_s___d_i_a_g}
|
||||
\end{center}
|
||||
\end{figure}
|
||||
\doxysubsubsubsubsection*{Classes}
|
||||
\begin{DoxyCompactItemize}
|
||||
\item
|
||||
struct \mbox{\hyperlink{struct_m_b___diagnostics_info_type_def}{MB\+\_\+\+Diagnostics\+Info\+Type\+Def}}
|
||||
\begin{DoxyCompactList}\small\item\em Структура со диагностической информацией устройства модбас \end{DoxyCompactList}\end{DoxyCompactItemize}
|
||||
\doxysubsubsubsubsection*{Enumerations}
|
||||
\begin{DoxyCompactItemize}
|
||||
\item
|
||||
enum \mbox{\hyperlink{group___m_o_d_b_u_s___d_i_a_g_ga9d139168bb88bfa1ba1597eeff9ebf6a}{MB\+\_\+\+Device\+Mode\+Type\+Def}} \{ {\bfseries MODBUS\+\_\+\+NORMAL\+\_\+\+MODE} = 0
|
||||
, {\bfseries MODBUS\+\_\+\+LISTEN\+\_\+\+ONLY\+\_\+\+MODE} = 1
|
||||
\}
|
||||
\begin{DoxyCompactList}\small\item\em Режимы работы устройства \end{DoxyCompactList}\end{DoxyCompactItemize}
|
||||
\doxysubsubsubsubsection*{Functions}
|
||||
\begin{DoxyCompactItemize}
|
||||
\item
|
||||
void \mbox{\hyperlink{group___m_o_d_b_u_s___d_i_a_g_ga9b61a6d4139bac318868e93f03cd82c7}{MB\+\_\+\+Diagnostics\+Init}} (void)
|
||||
\begin{DoxyCompactList}\small\item\em Инициализация диагностических счетчиков \end{DoxyCompactList}\end{DoxyCompactItemize}
|
||||
\doxysubsubsubsubsection*{Variables}
|
||||
\begin{DoxyCompactItemize}
|
||||
\item
|
||||
\mbox{\hyperlink{struct_m_b___diagnostics_info_type_def}{MB\+\_\+\+Diagnostics\+Info\+Type\+Def}} \mbox{\hyperlink{group___m_o_d_b_u_s___d_i_a_g_ga4ba6111ac80e342396f9703239323936}{MB\+\_\+\+DIAG}}
|
||||
\begin{DoxyCompactList}\small\item\em Глобальная структура диагностики \end{DoxyCompactList}\end{DoxyCompactItemize}
|
||||
|
||||
|
||||
\doxysubsubsubsection{Detailed Description}
|
||||
Функции для работы с диагностикой
|
||||
|
||||
Модуль реализации Diagnostics (Serial Line only) (0x08)\+:
|
||||
\begin{DoxyItemize}
|
||||
\item Полная поддержка всех подфункций диагностики
|
||||
\item Возможность выставить/сбросить любой бит в диагностическом регистре
|
||||
\item Сбор статистики работы устройства
|
||||
\item Управление режимами работы
|
||||
\end{DoxyItemize}
|
||||
|
||||
\label{doc-enum-members}
|
||||
\Hypertarget{group___m_o_d_b_u_s___d_i_a_g_doc-enum-members}
|
||||
\doxysubsubsubsection{Enumeration Type Documentation}
|
||||
\Hypertarget{group___m_o_d_b_u_s___d_i_a_g_ga9d139168bb88bfa1ba1597eeff9ebf6a}\index{Diagnostics Tools@{Diagnostics Tools}!MB\_DeviceModeTypeDef@{MB\_DeviceModeTypeDef}}
|
||||
\index{MB\_DeviceModeTypeDef@{MB\_DeviceModeTypeDef}!Diagnostics Tools@{Diagnostics Tools}}
|
||||
\doxysubsubsubsubsection{\texorpdfstring{MB\_DeviceModeTypeDef}{MB\_DeviceModeTypeDef}}
|
||||
{\footnotesize\ttfamily \label{group___m_o_d_b_u_s___d_i_a_g_ga9d139168bb88bfa1ba1597eeff9ebf6a}
|
||||
enum \mbox{\hyperlink{group___m_o_d_b_u_s___d_i_a_g_ga9d139168bb88bfa1ba1597eeff9ebf6a}{MB\+\_\+\+Device\+Mode\+Type\+Def}}}
|
||||
|
||||
|
||||
|
||||
Режимы работы устройства
|
||||
|
||||
|
||||
|
||||
Definition at line \mbox{\hyperlink{modbus__diag_8h_source_l00030}{30}} of file \mbox{\hyperlink{modbus__diag_8h_source}{modbus\+\_\+diag.\+h}}.
|
||||
|
||||
|
||||
|
||||
\label{doc-func-members}
|
||||
\Hypertarget{group___m_o_d_b_u_s___d_i_a_g_doc-func-members}
|
||||
\doxysubsubsubsection{Function Documentation}
|
||||
\Hypertarget{group___m_o_d_b_u_s___d_i_a_g_ga9b61a6d4139bac318868e93f03cd82c7}\index{Diagnostics Tools@{Diagnostics Tools}!MB\_DiagnosticsInit@{MB\_DiagnosticsInit}}
|
||||
\index{MB\_DiagnosticsInit@{MB\_DiagnosticsInit}!Diagnostics Tools@{Diagnostics Tools}}
|
||||
\doxysubsubsubsubsection{\texorpdfstring{MB\_DiagnosticsInit()}{MB\_DiagnosticsInit()}}
|
||||
{\footnotesize\ttfamily \label{group___m_o_d_b_u_s___d_i_a_g_ga9b61a6d4139bac318868e93f03cd82c7}
|
||||
void MB\+\_\+\+Diagnostics\+Init (\begin{DoxyParamCaption}\item[{void}]{}{}\end{DoxyParamCaption})}
|
||||
|
||||
|
||||
|
||||
Инициализация диагностических счетчиков
|
||||
|
||||
|
||||
|
||||
Definition at line \mbox{\hyperlink{modbus__diag_8c_source_l00022}{22}} of file \mbox{\hyperlink{modbus__diag_8c_source}{modbus\+\_\+diag.\+c}}.
|
||||
|
||||
|
||||
|
||||
\label{doc-var-members}
|
||||
\Hypertarget{group___m_o_d_b_u_s___d_i_a_g_doc-var-members}
|
||||
\doxysubsubsubsection{Variable Documentation}
|
||||
\Hypertarget{group___m_o_d_b_u_s___d_i_a_g_ga4ba6111ac80e342396f9703239323936}\index{Diagnostics Tools@{Diagnostics Tools}!MB\_DIAG@{MB\_DIAG}}
|
||||
\index{MB\_DIAG@{MB\_DIAG}!Diagnostics Tools@{Diagnostics Tools}}
|
||||
\doxysubsubsubsubsection{\texorpdfstring{MB\_DIAG}{MB\_DIAG}}
|
||||
{\footnotesize\ttfamily \label{group___m_o_d_b_u_s___d_i_a_g_ga4ba6111ac80e342396f9703239323936}
|
||||
\mbox{\hyperlink{struct_m_b___diagnostics_info_type_def}{MB\+\_\+\+Diagnostics\+Info\+Type\+Def}} MB\+\_\+\+DIAG\hspace{0.3cm}{\ttfamily [extern]}}
|
||||
|
||||
|
||||
|
||||
Глобальная структура диагностики
|
||||
|
||||
|
||||
|
||||
Definition at line \mbox{\hyperlink{modbus__diag_8c_source_l00017}{17}} of file \mbox{\hyperlink{modbus__diag_8c_source}{modbus\+\_\+diag.\+c}}.
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user