104 lines
12 KiB
XML
104 lines
12 KiB
XML
<?xml version='1.0' encoding='UTF-8' standalone='no'?>
|
|
<doxygen xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="compound.xsd" version="1.9.5" xml:lang="zh">
|
|
<compounddef id="bsp___print_art_8cpp" kind="file" language="C++">
|
|
<compoundname>bsp_PrintArt.cpp</compoundname>
|
|
<includes refid="bsp___print_art_8h" local="yes">bsp_PrintArt.h</includes>
|
|
<incdepgraph>
|
|
<node id="1">
|
|
<label>D:/gitt/MicrochipFor32/bsp_Device/bsp_PrintArt.cpp</label>
|
|
<link refid="bsp___print_art_8cpp"/>
|
|
<childnode refid="2" relation="include">
|
|
</childnode>
|
|
</node>
|
|
<node id="2">
|
|
<label>bsp_PrintArt.h</label>
|
|
<link refid="bsp___print_art_8h"/>
|
|
<childnode refid="3" relation="include">
|
|
</childnode>
|
|
<childnode refid="4" relation="include">
|
|
</childnode>
|
|
<childnode refid="5" relation="include">
|
|
</childnode>
|
|
<childnode refid="6" relation="include">
|
|
</childnode>
|
|
<childnode refid="7" relation="include">
|
|
</childnode>
|
|
</node>
|
|
<node id="7">
|
|
<label>varint.h</label>
|
|
<link refid="varint_8h"/>
|
|
<childnode refid="8" relation="include">
|
|
</childnode>
|
|
</node>
|
|
<node id="4">
|
|
<label>stdarg.h</label>
|
|
</node>
|
|
<node id="8">
|
|
<label>stdint.h</label>
|
|
</node>
|
|
<node id="3">
|
|
<label>stdio.h</label>
|
|
</node>
|
|
<node id="6">
|
|
<label>stdlib.h</label>
|
|
</node>
|
|
<node id="5">
|
|
<label>string.h</label>
|
|
</node>
|
|
</incdepgraph>
|
|
<briefdescription>
|
|
<para>print重定向的艺术 </para>
|
|
</briefdescription>
|
|
<detaileddescription>
|
|
</detaileddescription>
|
|
<programlisting>
|
|
<codeline lineno="1"><highlight class="comment">/*----------------------------------------------------------------------------------------------------</highlight></codeline>
|
|
<codeline lineno="2"><highlight class="comment"><sp/>#</highlight></codeline>
|
|
<codeline lineno="3"><highlight class="comment"><sp/>#<sp/><sp/>Copyright<sp/>(c)<sp/>2022<sp/>Yuankang<sp/>Liang(XerolySkinner)</highlight></codeline>
|
|
<codeline lineno="4"><highlight class="comment"><sp/>#</highlight></codeline>
|
|
<codeline lineno="5"><highlight class="comment"><sp/>#<sp/><sp/>本软件按原样提供,无任何明示或暗示</highlight></codeline>
|
|
<codeline lineno="6"><highlight class="comment"><sp/>#<sp/><sp/>在任何情况下,作者都不承担任何损害赔偿责任</highlight></codeline>
|
|
<codeline lineno="7"><highlight class="comment"><sp/>#</highlight></codeline>
|
|
<codeline lineno="8"><highlight class="comment"><sp/>#<sp/><sp/>使用的许可声明:</highlight></codeline>
|
|
<codeline lineno="9"><highlight class="comment"><sp/>#<sp/><sp/>1.<sp/><sp/>不得歪曲本软件的来源,你不能声称你编写了原始软件.</highlight></codeline>
|
|
<codeline lineno="10"><highlight class="comment"><sp/>#<sp/><sp/>2.<sp/><sp/>免费授予以任何目的,前提是版权声明出现在所有副本中.</highlight></codeline>
|
|
<codeline lineno="11"><highlight class="comment"><sp/>#<sp/><sp/><sp/><sp/><sp/><sp/>并且版权声明和许可声明同时出现.</highlight></codeline>
|
|
<codeline lineno="12"><highlight class="comment"><sp/>#<sp/><sp/>3.<sp/><sp/>你有使用,复制,修改,分发,和销售本软件的许可.</highlight></codeline>
|
|
<codeline lineno="13"><highlight class="comment"><sp/>#<sp/><sp/>4.<sp/><sp/>如果你在产品中使用,产品文档中的声明是赞赏的但不是必须的.</highlight></codeline>
|
|
<codeline lineno="14"><highlight class="comment"><sp/>#<sp/><sp/>5.<sp/><sp/>本通知不得从任何来源删除或更改.</highlight></codeline>
|
|
<codeline lineno="15"><highlight class="comment"><sp/>#</highlight></codeline>
|
|
<codeline lineno="16"><highlight class="comment"><sp/>#<sp/><sp/>Yuankang<sp/>Liang(XerolySkinner)</highlight></codeline>
|
|
<codeline lineno="17"><highlight class="comment"><sp/>#<sp/><sp/><sp/><sp/><sp/><sp/>E-mail:zabbcccbbaz@163.com</highlight></codeline>
|
|
<codeline lineno="18"><highlight class="comment"><sp/>#<sp/><sp/><sp/><sp/><sp/><sp/>QQ:2715099320</highlight></codeline>
|
|
<codeline lineno="19"><highlight class="comment"><sp/>#<sp/><sp/><sp/><sp/><sp/><sp/>Mobile<sp/>Phone:13005636215</highlight></codeline>
|
|
<codeline lineno="20"><highlight class="comment"><sp/>#</highlight></codeline>
|
|
<codeline lineno="21"><highlight class="comment"><sp/>#<sp/><sp/>All<sp/>rights<sp/>reserved.</highlight></codeline>
|
|
<codeline lineno="22"><highlight class="comment"><sp/>*/</highlight><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="23"><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="34"><highlight class="comment">//----------------------------------------------------------------------------------------------------</highlight><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="35"><highlight class="normal"></highlight><highlight class="comment">//<sp/><sp/>类声明</highlight><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="36"><highlight class="normal"></highlight><highlight class="preprocessor">#include<sp/>"<ref refid="bsp___print_art_8h" kindref="compound">bsp_PrintArt.h</ref>"</highlight></codeline>
|
|
<codeline lineno="38"><highlight class="comment">//----------------------------------------------------------------------------------------------------</highlight><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="39"><highlight class="normal"></highlight><highlight class="comment">//<sp/><sp/>类函数</highlight></codeline>
|
|
<codeline lineno="46" refid="classbsp___print_art_1a5b89d4eeaeca9f91f9b554ffeea0d272" refkind="member"><highlight class="comment"></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/><ref refid="classbsp___print_art_1a5b89d4eeaeca9f91f9b554ffeea0d272" kindref="member">bsp_PrintArt::print</ref>(</highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal">*<sp/>format,<sp/>...)<sp/>{</highlight></codeline>
|
|
<codeline lineno="47"><highlight class="normal"><sp/><sp/><sp/><sp/><ref refid="varint_8h_1a92c50087ca0e64fa93fc59402c55f8ca" kindref="member">u8</ref>*<sp/>dat<sp/>=<sp/>(<ref refid="varint_8h_1a92c50087ca0e64fa93fc59402c55f8ca" kindref="member">u8</ref>*)malloc(<ref refid="classbsp___print_art_1a7b7764b6a699a75f10a6caa85330cbe2" kindref="member">Bufflen</ref>);<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/><sp/>分配内存</highlight><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="48"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal">(dat==NULL)</highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>1;<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/><sp/>判断分配成功与否</highlight><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="49"><highlight class="normal"><sp/><sp/><sp/><sp/><ref refid="varint_8h_1afaa62991928fb9fb18ff0db62a040aba" kindref="member">u32</ref><sp/>res;<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/><sp/>返回状态码</highlight><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="50"><highlight class="normal"><sp/><sp/><sp/><sp/>va_list<sp/>args;<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/><sp/>不定长变量</highlight><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="51"><highlight class="normal"><sp/><sp/><sp/><sp/>va_start(args,<sp/>format);<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/><sp/>初始化不定长变量</highlight><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="52"><highlight class="normal"><sp/><sp/><sp/><sp/>res=vsprintf((</highlight><highlight class="keywordtype">char</highlight><highlight class="normal">*)dat,(</highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal">*)format,<sp/>args);<sp/></highlight><highlight class="comment">//<sp/><sp/>组合</highlight><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="53"><highlight class="normal"><sp/><sp/><sp/><sp/><ref refid="classbsp___print_art_1a548aa058fedb64e031d91c48480b527e" kindref="member">Transmit</ref>(dat,<sp/>strlen((</highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal">*)dat));<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/><sp/>发送</highlight><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="54"><highlight class="normal"><sp/><sp/><sp/><sp/>va_end(args);<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/><sp/>收尸</highlight><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="55"><highlight class="normal"><sp/><sp/><sp/><sp/>free(dat);<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/><sp/>回收内存</highlight><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="56"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>res;}</highlight></codeline>
|
|
<codeline lineno="58"><highlight class="comment">//----------------------------------------------------------------------------------------------------</highlight><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="59"><highlight class="normal"></highlight><highlight class="comment">//<sp/><sp/>构造函数</highlight><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="60" refid="classbsp___print_art_1a93c7cc212617232dcfd5e57a5d4f3521" refkind="member"><highlight class="normal"><ref refid="classbsp___print_art_1a93c7cc212617232dcfd5e57a5d4f3521" kindref="member">bsp_PrintArt::bsp_PrintArt</ref>(</highlight><highlight class="keywordtype">void</highlight><highlight class="normal">)<sp/>{</highlight></codeline>
|
|
<codeline lineno="61"><highlight class="normal"><sp/><sp/><sp/><sp/><ref refid="classbsp___print_art_1a7b7764b6a699a75f10a6caa85330cbe2" kindref="member">Bufflen</ref><sp/>=<sp/>128;}</highlight></codeline>
|
|
<codeline lineno="66" refid="classbsp___print_art_1a269df30feafe08cc3803aa9bf88b2a8e" refkind="member"><highlight class="normal"><ref refid="classbsp___print_art_1a93c7cc212617232dcfd5e57a5d4f3521" kindref="member">bsp_PrintArt::bsp_PrintArt</ref>(<ref refid="varint_8h_1afaa62991928fb9fb18ff0db62a040aba" kindref="member">u32</ref><sp/>len)<sp/>{</highlight></codeline>
|
|
<codeline lineno="67"><highlight class="normal"><sp/><sp/><sp/><sp/><ref refid="classbsp___print_art_1a7b7764b6a699a75f10a6caa85330cbe2" kindref="member">Bufflen</ref><sp/>=<sp/>len;}</highlight></codeline>
|
|
</programlisting>
|
|
<location file="D:/gitt/MicrochipFor32/bsp_Device/bsp_PrintArt.cpp"/>
|
|
</compounddef>
|
|
</doxygen>
|