shaffin Geschrieben December 30, 2018 at 18:23 Geschrieben December 30, 2018 at 18:23 Hello, I am using the Pascal API's in Delphi. I noticed that when I program: Conn: TIPConnection; Conn := TIPConnection.Create; Conn.Connect('127.0.0.1', 4223); The above does not throw an exception even when the StepperBrick is not plugged in via USB! It always return "true" when performing a Conn.IsConnected() Is there any premise behind this or is it something more? Thanks, Shaffin. Zitieren
shaffin Geschrieben December 30, 2018 at 18:45 Autor Geschrieben December 30, 2018 at 18:45 I believe I answered my own question that the reason I am getting a success back is the fact that the Brickd is responding to the connection and not the brick! Would it be too much as for a helper function in the brick api such as TStepperBrick.Available(UID)? Thanks, Shaffin. Zitieren
remotecontrol Geschrieben December 31, 2018 at 11:14 Geschrieben December 31, 2018 at 11:14 There is an enumeration API for the connection and this returns the connected UIDs and device types. First introduction how to use enumeration is here https://www.tinkerforge.com/en/doc/Tutorials/Tutorial_Rugged/Tutorial.html#tutorial-rugged-approach And you can read the Pascal API doc (I don't use Pascal, so I have no sample). Zitieren
shaffin Geschrieben January 2, 2019 at 01:32 Autor Geschrieben January 2, 2019 at 01:32 I have tried using thatand have seen some inconsistent behaviour at best. When I use enumerate I notice that every so often it times out unless I specifically call Sleep(250) after I make a call to enumerate! Has anyone else seen this behaviour? Zitieren
remotecontrol Geschrieben January 3, 2019 at 14:11 Geschrieben January 3, 2019 at 14:11 The call to ipcon_enumerate triggers callbacks and it depends on what you're doing in the callback. You should only update internal structures in the callback. The main thread should wait some time so that the callbacks are done and everything is updated. the "while (true)" from the sample is just an outline - don't use it exactly that way without wait times, this would consume 100% CPU ! Zitieren
remotecontrol Geschrieben January 3, 2019 at 14:17 Geschrieben January 3, 2019 at 14:17 To make it more precise: I trigger the enumerate callback, then wait 250ms and check how many devices are listed in my internal structures meanwhile; not enough => wait again. If there are not enough devices after for example 2 seconds I abort, there is something wrong. The enumeration is normally done quite fast (below 0.5 seconds). Zitieren
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.