Yes, I have confirmed that the value in theHOSTINFO asyn record field is correct:
$ pvget asyn:Test.HOSTINFO
asyn:Test.HOSTINFO <undefined> "192.168.50.2:65535 UDP"
I also assumed that this should work, but for some reason, I am receiving the error:
192.168.50.2:65535 UDP: Link already open!
So, I am wondering if the instance of pasynOption that I created is receiving the same pasynInterface value that was defined with drvAsynIPPortConfigure and is also being used in the asyn record code.
Douglas
If you open the asynRecord OPI screen asynIPPortSetup does it correctly display the current IP host information in the widget labeled "Host info:"? If so, then using the same code as in the asynRecord should work?
Mark
From: Tech-talk <tech-talk-bounces at aps.anl.gov> on behalf of Douglas Araujo via Tech-talk <tech-talk at aps.anl.gov>
Sent: Thursday, April 4, 2024 2:48 AM
To: tech-talk at aps.anl.gov <tech-talk at aps.anl.gov>
Subject: get asyn hostInfo
Hi all,
Does anyone know how to read the hostInfo value that is passed into the drvAsynIPPortConfigure function ?
Basically, I have this in my startup script:
epicsEnvSet("IPADDR", "192.168.50.2")
epicsEnvSet("IPPORT", "65535")
drvAsynIPPortConfigure("L0", "$(IPADDR):$(IPPORT) UDP", 0, 0, 1)
And in my c++ code:
status = pasynOctetSyncIO->connect(address_info.c_str(), 0, &pasynUserOctet_, NULL); // where address_info is the portName
So, I tried following the steps inside asynRecord.c:
asynInterface *pasynInterface;
pasynInterface = pasynManager->findInterface(pasynUserOctet_, asynCommonType, 1);
void *asynOptionPvt;
asynOption *pasynOption;
pasynOption = (asynOption *) pasynInterface->pinterface;
asynOptionPvt = pasynInterface->drvPvt;
char hostbuff[100];
getOption(asynOptionPvt, pasynUserOctet_, "hostInfo", hostbuff, 100 );
std::cout << pasynUserOctet_->errorMessage << std::endl;
But I received the message error:
192.168.50.2:65535 UDP: Link already open!
Thanks in advance.
--
Douglas Araujo