Author Topic: Latest version of RFSDK?  (Read 5903 times)

mharrod

  • Newbie
  • *
  • Posts: 20
    • View Profile
Latest version of RFSDK?
« on: February 22, 2005, 09:00:42 pm »
Hi,

If you read some of my earlier posts you will note that we've had real trobule with RFSDK screen sync issues, caused by multiple instances of the DataReceivedFromClient() being raised recursively.

We have two different RFSDK applications and were able to solve the problem for one application by removing all calls to SessionBatchCommands() and SessionSendCommands().

We have a second application that STILL appears to be experiencing this problem even though we have removed any of the afforementioned calls.

Both these applications are using the RFSDK RFSApp.ocx and RFSCntl.ocx file versions 6.00.  We are using the DOS client 6.0.2 I think.

I was wondering if these was later version of these controls or the DOS client (I just read 7.00 mentioned) that might help us with this issue, whether the licensing is the same i.e. can upgrade for free, and whether there are likely to be any compatibility problems.

Thanks,

Michael

 

mharrod

  • Newbie
  • *
  • Posts: 20
    • View Profile
Re: Latest version of RFSDK?
« Reply #1 on: February 22, 2005, 09:21:05 pm »
Another thing I thought might be worth mentioning about this.

I can simulate this problem very easily in the Windows client by going to a particular screen we have that responds to repeated F-key presses and then holding down the F1 key.  The code processes as normal for a few seconds then then a proliferation of recursive instances occur (I know because I log them to a file) and the terminal goes out of sync with the server.

Obviously a real handheld terminal is not going to generate events with the same sort of frequency as someone holding down a key in on a PC running the windows client with a nice fat LAN connection, but it appears that the capacity for screen sync problems is still there even with the SessionBatchCommands() and SessionSendCommands() methods removed.  Are there other calls to DoEvents in the SDK that might account for this problem?

Thanks,

Michael
 

leet

  • Administrator
  • Hero Member
  • *****
  • Posts: 244
    • View Profile
    • http://www.intellitrack.net
Re: Latest version of RFSDK?
« Reply #2 on: February 26, 2005, 05:15:29 pm »
Michael,

If I were you I'd invest in having the Software Services group look at your application.  I'm sure it wouldn't be more than a couple of hours.  We use the RFSDK in our RF Server and in the DMS RF products, and we don't have the same sort of screen sync problems.

The 7.0 version does not use a hardware key, and the DOS client has a new screen to make changing the server IP easier.  Typically our licensing provides a free upgrade within the same major version, but from 6.0 to 7.0 would require the purchase of the new version.

Lee Tibbett
IntelliTrack
Lee Tibbett
IntelliTrack

mharrod

  • Newbie
  • *
  • Posts: 20
    • View Profile
Re: Latest version of RFSDK?
« Reply #3 on: March 01, 2005, 06:33:17 pm »
Thanks Lee,

We opened a support incident a while ago to help us get to the bottom of this problem with the first of our two applications.  We supplied our source code and then after months of sending emails back and forth and making changes to our source code as advised, the problem still remained.  The consultant even recompiled a new version of SCLIENT.EXE that contained some extra diagnostic information specifically to troubleshoot this problem - but no solution was forthcoming.

Eventually, you responded to one of my postings in this forum and informed me that the SessionBatchCommands() and SessionSendCommands() methods contain calls to DoEvents() which sounded to me like it might be the culprit.  I removed all of these statements from our application, recompiled, re-deployed, and the problem went away for our first application.  So, it wasn't our code, it was the SessionBatchCommands() and SessionSendCommands() statements.

I did the same to our second application, but the problem is still occurring.

The second application has some functionality in it where the user can scroll up and down a list by repeatedly pressing the F1/F2 keys.  The effect of this design is that the user is pressing function keys in quick succession, causing the server application to process a lot more messages at a greater frequency than a simpler application where the user is just typing/scanning into input fields and pressing ENTER when they've finished.

I think this greater frequency of messages is highlighting a problem in the RFSDK that I'm guessing you don't hit with your RF Server and DMS RF products. Presumably because the user is typically scanning barcodes and typing quantities rather than repeatedly hitting a function key.

I can replicate the problem in the supplied RFSDKAsset sample VB application by changing the code in Form1.RFSApplication1_DataReceivedFromClient to this:

--
Private Sub RFSApplication1_DataReceivedFromClient(SessionData As String)

'increment call count
mlngCallCount = mlngCallCount + 1

If mlngCallCount > 1 Then 'If we're executing before the last call complete
  MsgBox "Recursive!"
Else
 
  Dim x As Long
  For x = 1 To 500000
  Next x
   
  Monitor.Text = Monitor.Text & Me.RFSApplication1.RFSessionParseBuffer(1, SessionData) & "-" & Me.RFSApplication1.RFSessionParseBuffer(2, SessionData) & "-" & Me.RFSApplication1.RFSessionParseBuffer(3, SessionData) & vbNewLine
  Call DisplayScreen(SessionData)
  If CurrentScreen > 0 Then
      Call DisplayScreen("")
  End If

End If

mlngCallCount = mlngCallCount - 1 'Decrement call count

End Sub
--

And adding the following declaration at the top of the form:
--
Public mlngCallCount As Long
--

I found I had to put that loop in there on my machine to make sure that the application spends a bit of time in the procedure - as you would expect for a production application that has to make database calls etc.

Then start the app, start the windows client, connect and hold down the Esc and F1 keys.  The application will flick back and forth between the main menu and the Track screen for a moment and you should then see the "Recursive!" message box pop up.  An instance of DataReceivedFromClient() has started before the previous one has finished.  Without the code in here to detect this, your client has just gone out of sync with the server.

I know this isn't a particularly "real-world" situation, but it proves that the capacity is still there in the RFSDK, and explains why our production RF Server occasionally logs these events and users get kicked off.

We could remove functionality from our application so they aren't pressing the F1/F2 keys so frequently, but obviously we'd prefer not to rewrite our application and take functionality away from the users without a concrete guarantee that this would solve the problem.

What I'd be curious to know is, does DoEvents() appear elsewhere inside the RFSDK - and if so, is it necessary?

Is the RFSDK 7.0 is available for download?  I will be very interested to try this test against the new version.

Thanks,

Michael
 

leet

  • Administrator
  • Hero Member
  • *****
  • Posts: 244
    • View Profile
    • http://www.intellitrack.net
Re: Latest version of RFSDK?
« Reply #4 on: March 03, 2005, 05:19:45 pm »
Hi Michael,

It appears that the handheld client is able to transmit data to the server more often than the server can respond.  There are several ways to approach this issue.  I will discuss them with the project manager and get back to you.  7.0 is not available for download yet, and is still in development.  When it is nearing completion I would be happy to send you a beta copy.


Lee Tibbett
IntelliTrack
Lee Tibbett
IntelliTrack

mharrod

  • Newbie
  • *
  • Posts: 20
    • View Profile
Re: Latest version of RFSDK?
« Reply #5 on: March 06, 2005, 04:15:21 pm »
Thanks Lee,

I look forward to hearing how you get on.  I would be pleased to do some testing with the beta of RFSDK 7.0.

Regards,

Michael
 

mharrod

  • Newbie
  • *
  • Posts: 20
    • View Profile
Re: Latest version of RFSDK?
« Reply #6 on: March 22, 2005, 04:17:14 pm »
Hi Lee,

Any updates on this?

Regards,

Michael
 

mharrod

  • Newbie
  • *
  • Posts: 20
    • View Profile
Re: Latest version of RFSDK?
« Reply #7 on: April 06, 2005, 08:46:25 pm »
Bump.
 

leet

  • Administrator
  • Hero Member
  • *****
  • Posts: 244
    • View Profile
    • http://www.intellitrack.net
Re: Latest version of RFSDK?
« Reply #8 on: April 08, 2005, 08:04:15 pm »
No updates as of yet, there will be an RFSDK 7 forum when it is ready.

Lee Tibbett
IntelliTrack
Lee Tibbett
IntelliTrack

mharrod

  • Newbie
  • *
  • Posts: 20
    • View Profile
Re: Latest version of RFSDK?
« Reply #9 on: May 09, 2005, 03:31:00 am »
Hi Lee,

Do you have an ETA on RFSDK 7?  Any idea whether there have been any changes to the message handling/event processing that might have an effect on the issue we are experiencing?

Thanks,

Michael
 

leet

  • Administrator
  • Hero Member
  • *****
  • Posts: 244
    • View Profile
    • http://www.intellitrack.net
Re: Latest version of RFSDK?
« Reply #10 on: May 16, 2005, 07:39:51 am »
Hi Michael,

You can contact Ron Pawlowski at 888-583-3008 x331 to get a copy of RFSDK 7.  Ron will also address any technical questions on the new version.  Thanks.

Lee Tibbett
IntelliTrack
Lee Tibbett
IntelliTrack