I think we should probably start adding some more comments to the PlcResponseCode enum to describe in which szenario which value should be used.
Chris Von: Jinlin Hong <myhongjin...@gmail.com> Datum: Montag, 23. September 2024 um 10:16 An: dev@plc4x.apache.org <dev@plc4x.apache.org> Betreff: Re: [DISCUSS] Which return code to give for items that don't exist? Then I agree with your view, +1. 'return INVALID_ADDRESS if the address is syntactically invalid and NOT_FOUND, if the address is formally correct, but the resource could not be found.' Christofer Dutz <christofer.d...@c-ware.de> 於 2024年9月23日 週一 下午4:03寫道: > The thing is however, that S7 for example has “NOT FOUND” if an address > could not be found. And that actually represents the reality a lot better > .. because the addresss is actually valid, just not on that device. > > Chris > > Von: Jinlin Hong <myhongjin...@gmail.com> > Datum: Montag, 23. September 2024 um 09:59 > An: dev@plc4x.apache.org <dev@plc4x.apache.org> > Betreff: Re: [DISCUSS] Which return code to give for items that don't > exist? > Hi Chris, > > > I think it makes sense to keep INVALID_ADDRESS consistent with the PLC > logic, meaning it would represent the case when a resource can’t be found. > Then we could use something like ERROR_ADDRESS_FORMAT to indicate a syntax > error. I just checked plc4go and saw errors.Errorf("Invalid address format > for address '%s'", tagAddress) being used. Looking forward to hearing > thoughts from the rest of the team. > > > Jinlin Hong > > Christofer Dutz <christofer.d...@c-ware.de> 於 2024年9月23日 週一 下午3:22寫道: > > > While working on this I noticed, we need to update the ReadRequest a bit > … > > When we call “build” on the ReadRequest builder and that passes all > > address strings to the tag-handler. If there’s only one invalid address, > > the entire build() call fails. > > > > I think we need to add a: > > > > PlcResponseCode getTagResponseCode(String tagName); > > > > To check if a tag in the ReadRequest was OK, if it’s not to simply relay > > that to the result. > > > > Or what do you think would be a better solution? > > > > Chris > > > > Von: Lukas Ott <ott.lukas...@gmail.com> > > Datum: Sonntag, 22. September 2024 um 15:30 > > An: dev@plc4x.apache.org <dev@plc4x.apache.org> > > Betreff: Re: [DISCUSS] Which return code to give for items that don't > > exist? > > +1 for "return INVALID_ADDRESS if the address is syntactically invalid > and > > NOT_FOUND, if the address is formally correct, but the resource could not > > be found." sounds logical and understandable to me. > > > > Luk > > > > Christofer Dutz <christofer.d...@c-ware.de> schrieb am So., 22. Sept. > > 2024, > > 14:38: > > > > > Hi all, > > > > > > I have been working a bit on streamlining the return results from our > > > drivers to be a bit more consistent. > > > Now I noticed that there is quite a huge difference between > > > INVALID_ADDRESS and NOT_FOUND. > > > > > > Most drivers return an INVALID_ADDRESS if for example a symbolic > address > > > is used, and this does not exist on the PLC. > > > However the address IS valid, it’s just that the PLC can’t find a > > resource > > > with that given name. Similar with S7, if I specify a block number that > > > does not exist or a byte offset that exceeds the size of the block. > > > > > > I think we should probably return INVALID_ADDRESS if the address is > > > syntactically invalid and NOT_FOUND, if the address is formally > correct, > > > but the resource could not be found. > > > > > > What do you think? > > > > > > Chris > > > > > > > > > > > >