📄 cgi_8c-source.html
字号:
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">"<title>Ethernut Shift Register Input</title>"</span> <span class="comment">/* */</span>00552 <span class="stringliteral">"</head><body bgcolor=\"#C7D0D9\"><a href=\"/\">"</span> <span class="comment">/* */</span>00553 <span class="stringliteral">"<img src=\"/enmini.gif\" border=\"0\" width=\"70\" height=\"17\">"</span> <span class="comment">/* */</span>00554 <span class="stringliteral">"</a><div align=\"center\">"</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(&<a class="code" href="group__xg_c_g_i.html#ga0">spi_ni</a>, &<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">"<html><head>"</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">"<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">"\">"</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">"<table border=\"1\" cellspacing=\"0\">\r\n"</span> <span class="comment">/* */</span>00568 <span class="stringliteral">"<thead><tr><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">"\">Input</th></tr><tr>"</span>, stream);00571 <span class="keywordflow">for</span> (i = 1; i <= <a class="code" href="group__xg_c_g_i.html#ga0">spi_ni</a>; i++)00572 fprintf(stream, <span class="stringliteral">"<th>%u</th>"</span>, i);00573 fputs(<span class="stringliteral">"</tr></thead><tfoot><tr>\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">"</tfoot></table><br>"</span>, stream);00577 } <span class="keywordflow">else</span>00578 fputs(<span class="stringliteral">"No Inputs"</span>, stream);00579 fputs(<span class="stringliteral">"</div></body>\r\n</html>"</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">"<html>"</span> <span class="comment">/* */</span>00618 <span class="stringliteral">"<head>"</span> <span class="comment">/* */</span>00619 <span class="stringliteral">"<meta http-equiv=\"expires\" content=\"0\">"</span> <span class="comment">/* */</span>00620 <span class="stringliteral">"<title>Charon II LEDs</title>"</span> <span class="comment">/* */</span>00621 <span class="stringliteral">"</head>"</span> <span class="comment">/* */</span>00622 <span class="stringliteral">"<body bgcolor=\"#C7D0D9\"><a href=\"/\">"</span> <span class="comment">/* */</span>00623 <span class="stringliteral">"<img src=\"/enmini.gif\" border=\"0\" width=\"70\" height=\"17\">"</span> <span class="comment">/* */</span>00624 <span class="stringliteral">"</a><div align=\"center\">"</span>;00625 <span class="keyword">static</span> prog_char foot[] = <span class="stringliteral">"</tfoot></table><br>"</span> <span class="comment">/* */</span>00626 <span class="stringliteral">" <input type=\"submit\" value=\" Set \"> "</span> <span class="comment">/* */</span>00627 <span class="stringliteral">" <input type=\"reset\" value=\" Cancel \"> "</span> <span class="comment">/* */</span>00628 <span class="stringliteral">"</form>\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 < 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 << (7 - (*value - <span class="charliteral">'0'</span>));00641 }00642 }00643 <span class="keywordflow">if</span> (pcount > 0)00644 DevBoardShiftLedOut(~led_status);00645 fputs(<span class="stringliteral">"<form action=\""</span> <a class="code" href="group__xg_w_p_defs.html#ga12">CHARON_CONTROL_CGI</a> <span class="stringliteral">"\" enctype=\"text/plain\">"</span> <span class="comment">/* */</span>00646 <span class="stringliteral">"<table border=\"1\" cellspacing=\"0\">\r\n"</span> <span class="comment">/* */</span>00647 <span class="stringliteral">"<thead><tr><th> </th><th colspan=\"8\">"</span> <span class="comment">/* */</span>00648 <span class="stringliteral">"LED</th></tr><tr><td> </td>"</span>, stream);00649 <span class="keywordflow">for</span> (i = 1; i <= 8; i++) {00650 fprintf(stream, <span class="stringliteral">"<th>%u</th>"</span>, i);00651 }00652 fputs(<span class="stringliteral">"</tr></thead><tfoot>\r\n"</span>, stream);00653 00654 fputs(<span class="stringliteral">"<tr><td> </td>"</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">"</tr>\r\n"</span>, stream);00657 00658 fputs(<span class="stringliteral">"<tr><td>On</td>"</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">"</tr>\r\n"</span>, stream);00661 00662 fputs_P(foot, stream);00663 fputs(<span class="stringliteral">"</div></body>\r\n</html>"</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">"<title>Charon II Switches</title>"</span> <span class="comment">/* */</span>00694 <span class="stringliteral">"</head><body bgcolor=\"#C7D0D9\"><a href=\"/\">"</span> <span class="comment">/* */</span>00695 <span class="stringliteral">"<img src=\"/enmini.gif\" border=\"0\" width=\"70\" height=\"17\">"</span> <span class="comment">/* */</span>00696 <span class="stringliteral">"</a><div align=\"center\">"</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">"<html><head>"</span>, stream);00702 fputs(<span class="stringliteral">"<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">"\">"</span>, stream);00703 fputs_P(title, stream);00704 fputs(<span class="stringliteral">"<table border=\"1\" cellspacing=\"0\">\r\n"</span> <span class="comment">/* */</span>00705 <span class="stringliteral">"<thead><tr><th colspan=\"8\">"</span> <span class="comment">/* */</span>00706 <span class="stringliteral">"Switches</th></tr><tr>"</span>, stream);00707 <span class="keywordflow">for</span> (i = 1; i <= 8; i++) {00708 fprintf(stream, <span class="stringliteral">"<th>%u</th>"</span>, i);00709 }00710 fputs(<span class="stringliteral">"</tr></thead><tfoot><tr>\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">"</tfoot></table><br>"</span>, stream);00714 fputs(<span class="stringliteral">"</div></body>\r\n</html>"</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> © 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 + -