Blame | Last modification | View Log | Download
#include <UIPEthernet.h>#define AREF_VOLTS 5.0EthernetServer server = EthernetServer(502);void vHex2n(char X) {if (X < 16) {Serial.print("0");}Serial.print(X, HEX);}unsigned int uiHexToInt(String hex) {int intValue = (int)strtol(&(hex[0]), NULL, 16);return intValue;}uint8_t* uiHex(uint8_t* m,String str){int nStr = str.length();String strAux;char sz[3];for(int i = 0; i < nStr; i += 2 ){sz[0] = str.charAt(i);sz[1] = str.charAt(i+1);sz[2] = 0;m[i/2] = uiHexToInt(sz);// Serial.println(m[i/2],HEX);}return m;}void setup(){Serial.begin(9600);uint8_t mac[6] = {0x00,0x01,0x02,0x03,0x04,0x05};IPAddress myIP(192,168,1,108);Ethernet.begin(mac,myIP);analogReference(DEFAULT);server.begin();}void loop(){size_t size;int nTransactionID,nProtocolID,nLengthOfNext,nL;uint8_t uiTr0,uiTr1,ui_nID,uiAD1,uiAD0;uint16_t uiValorAn = analogRead(A0);uiAD0 = (uint8_t)(uiValorAn & 0x00FF);uiAD1 = (uint8_t)(uiValorAn >> 8);if (EthernetClient client = server.available()){while((size = client.available()) > 0){uint8_t* msg = (uint8_t*)malloc(size);size = client.read(msg,size);for(uint8_t i=0 ; i < size ; i++){//Serial.print(msg[i],HEX);vHex2n(msg[i]);}Serial.println();if(size >= 6){nTransactionID = word(msg[0],msg[1]);uiTr0 = msg[0];uiTr1 = msg[1];ui_nID = msg[6];nProtocolID = word(msg[2],msg[3]);nLengthOfNext = word(msg[4],msg[5]);/*Serial.print("nTransactionID : ");Serial.println(nTransactionID,DEC);Serial.print("nProtocolID : ");Serial.println(nProtocolID,DEC);Serial.print("nLengthOfNext : ");Serial.println(nLengthOfNext,DEC);Serial.println();*/}free(msg);}//client.println("DATA from Server!");String szStr = "0000000000050103020000";nL = szStr.length() / 2;uint8_t* msg = (uint8_t*)malloc(nL*sizeof(uint8_t));msg = uiHex(msg,szStr);msg[0] = uiTr0;msg[1] = uiTr1;msg[6] = ui_nID;msg[9] = uiAD1;msg[10] = uiAD0;client.write(msg,nL);free(msg);/*Serial.print("uiValorAn : ");Serial.println(uiValorAn,HEX);Serial.print("uiAD1 : ");Serial.println(uiAD1,HEX);Serial.print("uiAD0 : ");Serial.println(uiAD0,HEX);Serial.println();*///client.stop(); No vull tancar l'establiment de connexio TCP/IP}}