{"action":"opened","issue":{"url":"https://api.github.com/repos/ntruchsess/arduino_uip/issues/112","labels_url":"https://api.github.com/repos/ntruchsess/arduino_uip/issues/112/labels{/name}","comments_url":"https://api.github.com/repos/ntruchsess/arduino_uip/issues/112/comments","events_url":"https://api.github.com/repos/ntruchsess/arduino_uip/issues/112/events","html_url":"https://github.com/ntruchsess/arduino_uip/issues/112","id":58307759,"number":112,"title":"Making Ethernet.begin (mac) unblocking","user":{"login":"rodjt","id":10952064,"avatar_url":"https://avatars.githubusercontent.com/u/10952064?v=3","gravatar_id":"","url":"https://api.github.com/users/rodjt","html_url":"https://github.com/rodjt","followers_url":"https://api.github.com/users/rodjt/followers","following_url":"https://api.github.com/users/rodjt/following{/other_user}","gists_url":"https://api.github.com/users/rodjt/gists{/gist_id}","starred_url":"https://api.github.com/users/rodjt/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/rodjt/subscriptions","organizations_url":"https://api.github.com/users/rodjt/orgs","repos_url":"https://api.github.com/users/rodjt/repos","events_url":"https://api.github.com/users/rodjt/events{/privacy}","received_events_url":"https://api.github.com/users/rodjt/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":0,"created_at":"2015-02-20T03:58:36Z","updated_at":"2015-02-20T03:58:36Z","closed_at":null,"body":"I am developing a 'real time' data monitor. There is a lot of internal timing which can not be held up by main loop delays. The monitor needs to sit in the field and operate for maybe 12 months without failure, so responding correctly to failure modes become very important.\r\n\r\nWhile I have had great success so far with the library I have some questions and requests.\r\n\r\nThere are occasions where the monitor fails to get a connection and will not recover. The only way to recover from this seems to be to do a client.stop() and restart using Ethernet.begin(mac) with DCHP active to get the ip address. The problem with Ethernet.begin() is the time taken to execute.\r\n\r\nSomewhere I read that Ethernet.begin() also does a software reset.\r\nIs this the case? It seems to not reset using Ethernet.begin (mac,ip),\r\nbut reset if I also activate DCHP by using Ethernet.begin (mac).\r\nCan someone clarify the use of the Ethernet.begin() reset functionality?\r\n\r\nSecond part...\r\nDCHP does take some time (secs) to return the ip address, I can't afford to hold up the system for more than 500mS.\r\n\r\nIs it possible to make DCHP unblocking in the same sense as EthernetNP.connect?\r\nie allow for a status condition that can be polled so it does not hold up the main loop.\r\n\r\nAlternatively can someone help with a software function that simply and quickly does a software reset to the ENC28J60?\r\n\r\nThanks.\r\n"}}