⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 cgi_8c-source.html

📁 针对AVR单片机开发的嵌入式操作系统
💻 HTML
📖 第 1 页 / 共 4 页
字号:
00546 <span class="comment"> */</span><a name="l00547"></a><a class="code" href="group__xg_c_g_i.html#ga13">00547</a> <span class="keywordtype">int</span> <a class="code" href="group__xg_c_g_i.html#ga13">SpiOptoStatus</a>(FILE * stream, REQUEST * req)00548 {00549     u_long status;00550     u_char i;00551     <span class="keyword">static</span> prog_char title[] = <span class="stringliteral">"&lt;title&gt;Ethernut Shift Register Input&lt;/title&gt;"</span>   <span class="comment">/* */</span>00552         <span class="stringliteral">"&lt;/head&gt;&lt;body bgcolor=\"#C7D0D9\"&gt;&lt;a href=\"/\"&gt;"</span>       <span class="comment">/* */</span>00553         <span class="stringliteral">"&lt;img src=\"/enmini.gif\" border=\"0\" width=\"70\" height=\"17\"&gt;"</span>     <span class="comment">/* */</span>00554         <span class="stringliteral">"&lt;/a&gt;&lt;div align=\"center\"&gt;"</span>;00555 00556     <span class="keywordflow">if</span> (<a class="code" href="group__xg_c_g_i.html#ga0">spi_ni</a> == 255)00557         SpiDigitalInit(&amp;<a class="code" href="group__xg_c_g_i.html#ga0">spi_ni</a>, &amp;<a class="code" href="group__xg_c_g_i.html#ga1">spi_no</a>);00558 00559     NutHttpSendHeaderTop(stream, req, 200, <span class="stringliteral">"Ok"</span>);00560     NutHttpSendHeaderBot(stream, <span class="stringliteral">"text/html"</span>, -1);00561 00562     fputs(<span class="stringliteral">"&lt;html&gt;&lt;head&gt;"</span>, stream);00563     <span class="keywordflow">if</span> (<a class="code" href="group__xg_c_g_i.html#ga0">spi_ni</a>)00564         fputs(<span class="stringliteral">"&lt;meta http-equiv=\"refresh\" content=\"5; URL="</span> <a class="code" href="group__xg_w_p_defs.html#ga11">OPTO_STATUS_CGI</a> <span class="stringliteral">"\"&gt;"</span>, stream);00565     fputs_P(title, stream);00566     <span class="keywordflow">if</span> (<a class="code" href="group__xg_c_g_i.html#ga0">spi_ni</a>) {00567         fputs(<span class="stringliteral">"&lt;table border=\"1\" cellspacing=\"0\"&gt;\r\n"</span>      <span class="comment">/* */</span>00568               <span class="stringliteral">"&lt;thead&gt;&lt;tr&gt;&lt;th colspan=\""</span>, stream);00569         fprintf(stream, <span class="stringliteral">"%u"</span>, <a class="code" href="group__xg_c_g_i.html#ga0">spi_ni</a>);00570         fputs(<span class="stringliteral">"\"&gt;Input&lt;/th&gt;&lt;/tr&gt;&lt;tr&gt;"</span>, stream);00571         <span class="keywordflow">for</span> (i = 1; i &lt;= <a class="code" href="group__xg_c_g_i.html#ga0">spi_ni</a>; i++)00572             fprintf(stream, <span class="stringliteral">"&lt;th&gt;%u&lt;/th&gt;"</span>, i);00573         fputs(<span class="stringliteral">"&lt;/tr&gt;&lt;/thead&gt;&lt;tfoot&gt;&lt;tr&gt;\r\n"</span>, stream);00574         status = SpiDigitalGet(<a class="code" href="group__xg_c_g_i.html#ga0">spi_ni</a>);00575         <a class="code" href="group__xg_c_g_i.html#ga4">HtmlLedRow</a>(stream, <a class="code" href="group__xg_c_g_i.html#ga0">spi_ni</a>, 0, status, status, 0);00576         fputs(<span class="stringliteral">"&lt;/tfoot&gt;&lt;/table&gt;&lt;br&gt;"</span>, stream);00577     } <span class="keywordflow">else</span>00578         fputs(<span class="stringliteral">"No Inputs"</span>, stream);00579     fputs(<span class="stringliteral">"&lt;/div&gt;&lt;/body&gt;\r\n&lt;/html&gt;"</span>, stream);00580     fflush(stream);00581     <span class="keywordflow">return</span> 0;00582 }00583 00584 <span class="comment"></span>00585 <span class="comment">/*!</span>00586 <span class="comment"> * \brief CGI callback function to control the Charon II LEDs.</span>00587 <span class="comment"> *</span>00588 <span class="comment"> * Creates HTML code to show the status of any attached shift register</span>00589 <span class="comment"> * output board plus a HTML form to modify the current relay status</span>00590 <span class="comment"> * via checkboxes.</span>00591 <span class="comment"> *</span>00592 <span class="comment"> * The resulting HTML code is send back to the browser. If the submit</span>00593 <span class="comment"> * button is clicked on this page, this function will be called again</span>00594 <span class="comment"> * to process the checkboxes and display the updated status.</span>00595 <span class="comment"> *</span>00596 <span class="comment"> * \image html relay.gif</span>00597 <span class="comment"> *</span>00598 <span class="comment"> *</span>00599 <span class="comment"> *</span>00600 <span class="comment"> * This function is called by the HTTP module when a browser requests</span>00601 <span class="comment"> * a CGI function, for which this routine has been registered via</span>00602 <span class="comment"> * NutRegisterCgi().</span>00603 <span class="comment"> *</span>00604 <span class="comment"> * \param stream Stream device of the HTTP connection.</span>00605 <span class="comment"> * \param req    Pointer to the CGI REQUEST structure. Detailed information</span>00606 <span class="comment"> *               is available in the Nut/OS API documentation.</span>00607 <span class="comment"> *</span>00608 <span class="comment"> * \return 0 on success or -1 in case of any failure.</span>00609 <span class="comment"> */</span><a name="l00610"></a><a class="code" href="group__xg_c_g_i.html#ga14">00610</a> <span class="keywordtype">int</span> <a class="code" href="group__xg_c_g_i.html#ga14">CharonLedControl</a>(FILE * stream, REQUEST * req)00611 {00612     <span class="keyword">static</span> u_char led_status;00613     u_char i;00614     <span class="keywordtype">char</span> *name;00615     <span class="keywordtype">char</span> *value;00616     <span class="keywordtype">int</span> pcount = NutHttpGetParameterCount(req);00617     <span class="keyword">static</span> prog_char head[] = <span class="stringliteral">"&lt;html&gt;"</span>  <span class="comment">/* */</span>00618         <span class="stringliteral">"&lt;head&gt;"</span>                <span class="comment">/* */</span>00619         <span class="stringliteral">"&lt;meta http-equiv=\"expires\" content=\"0\"&gt;"</span>   <span class="comment">/* */</span>00620         <span class="stringliteral">"&lt;title&gt;Charon II LEDs&lt;/title&gt;"</span> <span class="comment">/* */</span>00621         <span class="stringliteral">"&lt;/head&gt;"</span>               <span class="comment">/* */</span>00622         <span class="stringliteral">"&lt;body bgcolor=\"#C7D0D9\"&gt;&lt;a href=\"/\"&gt;"</span>      <span class="comment">/* */</span>00623         <span class="stringliteral">"&lt;img src=\"/enmini.gif\" border=\"0\" width=\"70\" height=\"17\"&gt;"</span>     <span class="comment">/* */</span>00624         <span class="stringliteral">"&lt;/a&gt;&lt;div align=\"center\"&gt;"</span>;00625     <span class="keyword">static</span> prog_char foot[] = <span class="stringliteral">"&lt;/tfoot&gt;&lt;/table&gt;&lt;br&gt;"</span>    <span class="comment">/* */</span>00626         <span class="stringliteral">" &lt;input type=\"submit\" value=\" Set \"&gt; "</span>     <span class="comment">/* */</span>00627         <span class="stringliteral">" &lt;input type=\"reset\" value=\" Cancel \"&gt; "</span>   <span class="comment">/* */</span>00628         <span class="stringliteral">"&lt;/form&gt;\r\n"</span>;00629 00630     NutHttpSendHeaderTop(stream, req, 200, <span class="stringliteral">"Ok"</span>);00631     NutHttpSendHeaderBot(stream, <span class="stringliteral">"text/html"</span>, -1);00632 00633     fputs_P(head, stream);00634 00635     led_status = 0;00636     <span class="keywordflow">for</span> (i = 0; i &lt; pcount; i++) {00637         name = NutHttpGetParameterName(req, i);00638         value = NutHttpGetParameterValue(req, i);00639         <span class="keywordflow">if</span> (*name == <span class="charliteral">'S'</span>) {00640             led_status |= 1 &lt;&lt; (7 - (*value - <span class="charliteral">'0'</span>));00641         }00642     }00643     <span class="keywordflow">if</span> (pcount &gt; 0)00644         DevBoardShiftLedOut(~led_status);00645     fputs(<span class="stringliteral">"&lt;form action=\""</span> <a class="code" href="group__xg_w_p_defs.html#ga12">CHARON_CONTROL_CGI</a> <span class="stringliteral">"\" enctype=\"text/plain\"&gt;"</span>     <span class="comment">/* */</span>00646           <span class="stringliteral">"&lt;table border=\"1\" cellspacing=\"0\"&gt;\r\n"</span>  <span class="comment">/* */</span>00647           <span class="stringliteral">"&lt;thead&gt;&lt;tr&gt;&lt;th&gt; &lt;/th&gt;&lt;th colspan=\"8\"&gt;"</span>     <span class="comment">/* */</span>00648           <span class="stringliteral">"LED&lt;/th&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt; &lt;/td&gt;"</span>, stream);00649     <span class="keywordflow">for</span> (i = 1; i &lt;= 8; i++) {00650         fprintf(stream, <span class="stringliteral">"&lt;th&gt;%u&lt;/th&gt;"</span>, i);00651     }00652     fputs(<span class="stringliteral">"&lt;/tr&gt;&lt;/thead&gt;&lt;tfoot&gt;\r\n"</span>, stream);00653 00654     fputs(<span class="stringliteral">"&lt;tr&gt;&lt;td&gt; &lt;/td&gt;"</span>, stream);00655     <a class="code" href="group__xg_c_g_i.html#ga4">HtmlLedRow</a>(stream, 8, 0, led_status, led_status, 0xFFFFFFFF);00656     fputs(<span class="stringliteral">"&lt;/tr&gt;\r\n"</span>, stream);00657 00658     fputs(<span class="stringliteral">"&lt;tr&gt;&lt;td&gt;On&lt;/td&gt;"</span>, stream);00659     <a class="code" href="group__xg_c_g_i.html#ga5">HtmlCheckboxRow</a>(stream, 8, 0, <span class="stringliteral">"S"</span>, led_status, 0xFFFFFFFF);00660     fputs(<span class="stringliteral">"&lt;/tr&gt;\r\n"</span>, stream);00661 00662     fputs_P(foot, stream);00663     fputs(<span class="stringliteral">"&lt;/div&gt;&lt;/body&gt;\r\n&lt;/html&gt;"</span>, stream);00664     fflush(stream);00665     <span class="keywordflow">return</span> 0;00666 }00667 <span class="comment"></span>00668 <span class="comment">/*!</span>00669 <span class="comment"> * \brief CGI callback function to query the Charon II switches.</span>00670 <span class="comment"> *</span>00671 <span class="comment"> * This function is called by the HTTP helper routines when a browser requests</span>00672 <span class="comment"> * a CGI function, for which this routine has been registered via</span>00673 <span class="comment"> * NutRegisterCgi().</span>00674 <span class="comment"> *</span>00675 <span class="comment"> * \image html opto.gif</span>00676 <span class="comment"> *</span>00677 <span class="comment"> *</span>00678 <span class="comment"> *</span>00679 <span class="comment"> * Creates HTML code to show the status of the optically isolated inputs</span>00680 <span class="comment"> * of an attached SPI input board. The page will be automatically refreshed </span>00681 <span class="comment"> * every 5 seconds.</span>00682 <span class="comment"> *</span>00683 <span class="comment"> * \param stream Stream device of the HTTP connection.</span>00684 <span class="comment"> * \param req    Pointer to the CGI REQUEST structure. Detailed information</span>00685 <span class="comment"> *               is available in the Nut/OS API documentation.</span>00686 <span class="comment"> *</span>00687 <span class="comment"> * \return 0 on success or -1 in case of any failure.</span>00688 <span class="comment"> */</span><a name="l00689"></a><a class="code" href="group__xg_c_g_i.html#ga15">00689</a> <span class="keywordtype">int</span> <a class="code" href="group__xg_c_g_i.html#ga15">CharonSwitchStatus</a>(FILE * stream, REQUEST * req)00690 {00691     u_char status;00692     u_char i;00693     <span class="keyword">static</span> prog_char title[] = <span class="stringliteral">"&lt;title&gt;Charon II Switches&lt;/title&gt;"</span>      <span class="comment">/* */</span>00694         <span class="stringliteral">"&lt;/head&gt;&lt;body bgcolor=\"#C7D0D9\"&gt;&lt;a href=\"/\"&gt;"</span>       <span class="comment">/* */</span>00695         <span class="stringliteral">"&lt;img src=\"/enmini.gif\" border=\"0\" width=\"70\" height=\"17\"&gt;"</span>     <span class="comment">/* */</span>00696         <span class="stringliteral">"&lt;/a&gt;&lt;div align=\"center\"&gt;"</span>;00697 00698     NutHttpSendHeaderTop(stream, req, 200, <span class="stringliteral">"Ok"</span>);00699     NutHttpSendHeaderBot(stream, <span class="stringliteral">"text/html"</span>, -1);00700 00701     fputs(<span class="stringliteral">"&lt;html&gt;&lt;head&gt;"</span>, stream);00702     fputs(<span class="stringliteral">"&lt;meta http-equiv=\"refresh\" content=\"5; URL="</span> <a class="code" href="group__xg_w_p_defs.html#ga13">CHARON_STATUS_CGI</a> <span class="stringliteral">"\"&gt;"</span>, stream);00703     fputs_P(title, stream);00704     fputs(<span class="stringliteral">"&lt;table border=\"1\" cellspacing=\"0\"&gt;\r\n"</span>  <span class="comment">/* */</span>00705           <span class="stringliteral">"&lt;thead&gt;&lt;tr&gt;&lt;th colspan=\"8\"&gt;"</span>       <span class="comment">/* */</span>00706           <span class="stringliteral">"Switches&lt;/th&gt;&lt;/tr&gt;&lt;tr&gt;"</span>, stream);00707     <span class="keywordflow">for</span> (i = 1; i &lt;= 8; i++) {00708         fprintf(stream, <span class="stringliteral">"&lt;th&gt;%u&lt;/th&gt;"</span>, i);00709     }00710     fputs(<span class="stringliteral">"&lt;/tr&gt;&lt;/thead&gt;&lt;tfoot&gt;&lt;tr&gt;\r\n"</span>, stream);00711     status = ~DevBoardShiftByteIn();00712     <a class="code" href="group__xg_c_g_i.html#ga4">HtmlLedRow</a>(stream, 8, 0, status, status, 0);00713     fputs(<span class="stringliteral">"&lt;/tfoot&gt;&lt;/table&gt;&lt;br&gt;"</span>, stream);00714     fputs(<span class="stringliteral">"&lt;/div&gt;&lt;/body&gt;\r\n&lt;/html&gt;"</span>, stream);00715     fflush(stream);00716     <span class="keywordflow">return</span> 0;00717 }00718 00719 <span class="comment"></span>00720 <span class="comment">/*@}*/</span></pre></div><hr><address>  <small>    &copy;&nbsp;2002-2004 by egnite Software GmbH -     visit <a href="http://www.ethernut.de/">http://www.ethernut.de/</a>  </small></address></body></html>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -