<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>http://www.ethernut.de/nutwiki/index.php?action=history&amp;feed=atom&amp;title=Discovery_Service</id>
		<title>Discovery Service - Revision history</title>
		<link rel="self" type="application/atom+xml" href="http://www.ethernut.de/nutwiki/index.php?action=history&amp;feed=atom&amp;title=Discovery_Service"/>
		<link rel="alternate" type="text/html" href="http://www.ethernut.de/nutwiki/index.php?title=Discovery_Service&amp;action=history"/>
		<updated>2026-04-18T20:04:12Z</updated>
		<subtitle>Revision history for this page on the wiki</subtitle>
		<generator>MediaWiki 1.26.2</generator>

	<entry>
		<id>http://www.ethernut.de/nutwiki/index.php?title=Discovery_Service&amp;diff=66&amp;oldid=prev</id>
		<title>Harald: 1 revision imported</title>
		<link rel="alternate" type="text/html" href="http://www.ethernut.de/nutwiki/index.php?title=Discovery_Service&amp;diff=66&amp;oldid=prev"/>
				<updated>2016-10-27T16:02:53Z</updated>
		
		<summary type="html">&lt;p&gt;1 revision imported&lt;/p&gt;
&lt;table class='diff diff-contentalign-left'&gt;
				&lt;tr style='vertical-align: top;' lang='en'&gt;
				&lt;td colspan='1' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan='1' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Revision as of 16:02, 27 October 2016&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan='2' style='text-align: center;' lang='en'&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(No difference)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
		<author><name>Harald</name></author>	</entry>

	<entry>
		<id>http://www.ethernut.de/nutwiki/index.php?title=Discovery_Service&amp;diff=65&amp;oldid=prev</id>
		<title>Harald: Links added</title>
		<link rel="alternate" type="text/html" href="http://www.ethernut.de/nutwiki/index.php?title=Discovery_Service&amp;diff=65&amp;oldid=prev"/>
				<updated>2010-04-14T10:17:40Z</updated>
		
		<summary type="html">&lt;p&gt;Links added&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;== Test Environments ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;smalldiv&amp;quot;&lt;br /&gt;
| style=&amp;quot;background-color:#F6F9ED&amp;quot; |&lt;br /&gt;
| style=&amp;quot;background-color:#F6F9ED&amp;quot; | Hardware Comments&lt;br /&gt;
| style=&amp;quot;background-color:#F6F9ED&amp;quot; | '''Nut/OS&amp;lt;br&amp;gt;4.6.4'''&lt;br /&gt;
| style=&amp;quot;background-color:#F6F9ED&amp;quot; | '''Nut/OS&amp;lt;br&amp;gt;4.7.4'''&lt;br /&gt;
| style=&amp;quot;background-color:#F6F9ED&amp;quot; | '''Nut/OS&amp;lt;br&amp;gt;4.8.0'''&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Ethernut 1.3 H&amp;lt;/span&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
| OK &amp;lt;br&amp;gt; [http://ethernut.de/arc/WIKI_BINARIES_ZIPPED/discovery-enut13H-nutos-4.6.4.zip '''Binaries''']&lt;br /&gt;
| OK &amp;lt;br&amp;gt; [http://ethernut.de/arc/WIKI_BINARIES_ZIPPED/discovery-enut13H-nutos-4.7.4.zip '''Binaries''']&lt;br /&gt;
| OK &amp;lt;br&amp;gt; [http://ethernut.de/arc/WIKI_BINARIES_ZIPPED/discovery-enut13H-nutos-4.8.0.zip '''Binaries''']&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Ethernut 2.1 B&amp;lt;/span&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
| OK &amp;lt;br&amp;gt; [http://ethernut.de/arc/WIKI_BINARIES_ZIPPED/discovery-enut21B-nutos-4.6.4.zip '''Binaries''']&lt;br /&gt;
| OK &amp;lt;br&amp;gt; [http://ethernut.de/arc/WIKI_BINARIES_ZIPPED/discovery-enut21B-nutos-4.7.4.zip '''Binaries''']&lt;br /&gt;
| OK &amp;lt;br&amp;gt; [http://ethernut.de/arc/WIKI_BINARIES_ZIPPED/discovery-enut21B-nutos-4.8.0.zip '''Binaries''']&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Ethernut 3.0 E&amp;lt;/span&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
| Compiler&amp;lt;br&amp;gt;Error&lt;br /&gt;
| OK &amp;lt;br&amp;gt; [http://ethernut.de/arc/WIKI_BINARIES_ZIPPED/discovery-enut30E-nutos-4.7.4.zip '''Binaries''']&lt;br /&gt;
| OK &amp;lt;br&amp;gt; [http://ethernut.de/arc/WIKI_BINARIES_ZIPPED/discovery-enut30E-nutos-4.8.0.zip '''Binaries''']&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;EIR 1.0 C&amp;lt;/span&amp;gt;&lt;br /&gt;
| Set jumper JP1&amp;lt;br&amp;gt;to DEBUG mode.&lt;br /&gt;
| Compiler&amp;lt;br&amp;gt;Error&lt;br /&gt;
| OK &amp;lt;br&amp;gt; [http://ethernut.de/arc/WIKI_BINARIES_ZIPPED/discovery-EIR1C-nutos-4.7.4.zip '''Binaries''']&lt;br /&gt;
| OK &amp;lt;br&amp;gt; [http://ethernut.de/arc/WIKI_BINARIES_ZIPPED/discovery-EIR1C-nutos-4.8.0.zip '''Binaries''']&lt;br /&gt;
|-&lt;br /&gt;
| id=&amp;quot;compilertd&amp;quot; colspan=&amp;quot;5&amp;quot; |'''Compiler:''' ARM-GCC 4.2.2 ; AVR-GCC 4.3.0&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Source Code ==&lt;br /&gt;
&lt;br /&gt;
The code consists of two routines, the main routine and a discovery handler.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;dev/board.h&amp;gt;&lt;br /&gt;
#include &amp;lt;sys/timer.h&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
#include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
#include &amp;lt;io.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;netinet/in.h&amp;gt;&lt;br /&gt;
#include &amp;lt;arpa/inet.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;pro/dhcp.h&amp;gt;&lt;br /&gt;
#include &amp;lt;pro/discover.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
static NutDiscoveryCallback default_handler;&lt;br /&gt;
static int MyHandler(uint32_t ip, uint16_t port, DISCOVERY_TELE * dist, int len);&lt;br /&gt;
&lt;br /&gt;
int main(void)&lt;br /&gt;
{&lt;br /&gt;
    u_long baud = 115200;&lt;br /&gt;
 &lt;br /&gt;
    NutRegisterDevice(&amp;amp;DEV_DEBUG, 0, 0);&lt;br /&gt;
    freopen(DEV_DEBUG_NAME, &amp;quot;w&amp;quot;, stdout);&lt;br /&gt;
    _ioctl(_fileno(stdout), UART_SETSPEED, &amp;amp;baud);&lt;br /&gt;
    puts(&amp;quot;Discovery Service Sample&amp;quot;);&lt;br /&gt;
 &lt;br /&gt;
    if (NutRegisterDevice(&amp;amp;DEV_ETHER, 0, 0)) {&lt;br /&gt;
        puts(&amp;quot;Registering &amp;quot; DEV_ETHER_NAME &amp;quot; failed.&amp;quot;);&lt;br /&gt;
    }&lt;br /&gt;
    else if (NutDhcpIfConfig(DEV_ETHER_NAME, NULL, 0)) {&lt;br /&gt;
        uint8_t initial_mac[6] = { 0x00, 0x06, 0x98, 0x00, 0x00, 0x00 };&lt;br /&gt;
&lt;br /&gt;
        if (NutDhcpIfConfig(DEV_ETHER_NAME, initial_mac, 0)) {&lt;br /&gt;
            u_long initial_ip_addr = inet_addr(&amp;quot;192.0.0.192&amp;quot;);&lt;br /&gt;
            u_long initial_ip_mask = inet_addr(&amp;quot;255.255.255.0&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
            NutNetIfConfig(DEV_ETHER_NAME, initial_mac, initial_ip_addr, initial_ip_mask);&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
    if (NutRegisterDiscovery(INADDR_BROADCAST, 0, DISF_INITAL_ANN)) {&lt;br /&gt;
        printf(&amp;quot;Discover Service failed&amp;quot;);&lt;br /&gt;
    } else {&lt;br /&gt;
        default_handler = NutRegisterDiscoveryCallback(MyHandler);&lt;br /&gt;
    }&lt;br /&gt;
    for (;;) {&lt;br /&gt;
        NutSleep(1000);&lt;br /&gt;
    }&lt;br /&gt;
    return 0;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
static int MyHandler(uint32_t ip, uint16_t port, DISCOVERY_TELE * dist, int len)&lt;br /&gt;
{&lt;br /&gt;
    char * tt;&lt;br /&gt;
&lt;br /&gt;
    switch (dist-&amp;gt;dist_type) {&lt;br /&gt;
    case DIST_REQUEST:&lt;br /&gt;
        tt = &amp;quot;request&amp;quot;;&lt;br /&gt;
        break;&lt;br /&gt;
    case DIST_ANNOUNCE:&lt;br /&gt;
        tt = &amp;quot;announce&amp;quot;;&lt;br /&gt;
        break;&lt;br /&gt;
    case DIST_APPLY:&lt;br /&gt;
        tt = &amp;quot;apply&amp;quot;;&lt;br /&gt;
        break;&lt;br /&gt;
    default:&lt;br /&gt;
        tt = &amp;quot;telegram&amp;quot;;&lt;br /&gt;
        break;&lt;br /&gt;
    }&lt;br /&gt;
    printf(&amp;quot;Discovery %s from %s\n&amp;quot;, tt, inet_ntoa(ip));&lt;br /&gt;
    return (*default_handler)(ip, port, dist, len);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Output ==&lt;br /&gt;
&lt;br /&gt;
[[Image:discoverer.png|right|thumb|Discoverer]]&lt;br /&gt;
&lt;br /&gt;
On serial output you will see something like:&lt;br /&gt;
 Discovery Service Sample&lt;br /&gt;
 Discovery request from 192.168.192.246&lt;br /&gt;
&lt;br /&gt;
The Nut/OS Discoverer will display your (one or more) ethernut board in a table.&lt;br /&gt;
By double clicking on the values, you can edit them and update your board.&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
&lt;br /&gt;
* [[Network Configuration]] Overview&lt;br /&gt;
** [[Network Configuration Using Hard Coded Configuration]], the most basic way to get you up and running.&lt;br /&gt;
** [[Network Configuration Using Stored Configuration]]&lt;br /&gt;
** [[Network Configuration Using a Configuration Editor]], which may serve as a template for your advanced applications.&lt;br /&gt;
* More [[Nut/OS Examples]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Code Snippets]]&lt;br /&gt;
&lt;br /&gt;
{{Languages}}&lt;/div&gt;</summary>
		<author><name>Harald</name></author>	</entry>

	</feed>