diff indi-sbig/sbig_ccd.cpp indi-sbig-eth/sbig_ccd.cpp 31a32,35 > #include > #include > #include > 244a249,253 > }else if(strcmp(devName, SBIG_ETH) == 0){ > odp.deviceType = DEV_ETH; > unsigned long ip = htonl(inet_addr(IpTP.tp->text)); > if (ip == INADDR_NONE) return(CE_BAD_PARAMETER); > odp.ipAddress = ip; 311a321,322 > IUFillText(&IpT[0], "IP", "IP Address", "192.168.0.100"); > IUFillTextVector( &IpTP, IpT, 1, getDeviceName(), "IP_ADDRESS", "Ip Address", MAIN_CONTROL_TAB, IP_RW, 0, IPS_IDLE); 377a389,390 > loadConfig(true, "DEVICE_PORT"); > loadConfig(true, "IP_ADDRESS"); 456c469 < if (!strcmp(texts[0], SBIG_DEVICE_PORTS[0])) --- > if (!strcmp(texts[0], SBIG_DEVICE_PORTS[i])) 461c474 < DEBUGF(INDI::Logger::DBG_ERROR, "Invalid port %s. Valid ports are sbigusb0, sbigusb1..etc, sbiglpt0, sbiglpt1..etc", texts[0]); --- > DEBUGF(INDI::Logger::DBG_ERROR, "Invalid port %s. Valid ports are sbigusb0, sbigeth sbigusb1..etc, sbiglpt0, sbiglpt1..etc", texts[0]); 466a480,482 > if (!strcmp(texts[0], SBIG_ETH)) defineText(&IpTP); > else deleteProperty(IpTP.name); > 472a489,505 > if(strcmp(name,IpTP.name)==0) > { > unsigned long ip = htonl(inet_addr(texts[0])); > if (ip == INADDR_NONE) > { > DEBUGF(INDI::Logger::DBG_ERROR, "Invalid ip address %s.", texts[0]); > IpTP.s=IPS_ALERT; > IDSetText(&IpTP, NULL); > return false; > } > > IpTP.s=IPS_OK; > IUUpdateText(&IpTP,texts,names,n); > IDSetText(&IpTP, NULL); > return true; > } > 1402a1436,1438 > > IUSaveConfigText(fp, &PortTP); > IUSaveConfigText(fp, &IpTP); diff indi-sbig/sbig_ccd.h indi-sbig-eth/sbig_ccd.h 74a75 > #define SBIG_ETH "sbigeth" 82c83 < const char *SBIG_DEVICE_PORTS[] = { SBIG_USB0, SBIG_USB1, SBIG_USB2, SBIG_USB3, SBIG_LPT0, SBIG_LPT1, SBIG_LPT2 }; --- > const char *SBIG_DEVICE_PORTS[] = { SBIG_USB0, SBIG_ETH, SBIG_USB1, SBIG_USB2, SBIG_USB3, SBIG_LPT0, SBIG_LPT1, SBIG_LPT2 }; 202a204,205 > IText IpT[1]; > ITextVectorProperty IpTP;