Ladder99 / fanuc-driver

Configurable Fanuc Focas data collector and post processor.
Apache License 2.0
72 stars 25 forks source link

Handle undocumented values in StatInfoText veneer. #15

Open MRIIOT opened 3 years ago

MRIIOT commented 3 years ago

https://github.com/Ladder99/fanuc-driver/blob/abe26bc4625d75b36e55751875173c92c13e2915/fanuc/veneers/StatInfoText.cs#L102-L117

So basically StatInfoText just takes the integer value from Focas call and gets the string representation based on index. In this case automatic:5 would have become automatic:TeachIN. The original exception points to an index in one of the arrays that does not exist. We just don't know which one or what the value was.

2021/07/27 12:21:59.191|ERROR|[m9_doosan_puma] Collector sweep failed at segment PATH. System.IndexOutOfRangeException: Index was outside the bounds of the array. at l99.driver.fanuc.veneers.StatInfoText.AnyAsync(Object input, Object[] additionalInputs) in /home/ts/git/c10n/fanuc-driver/fanuc/veneers/StatInfoText.cs:line 102

  1. Change it back to await Apply(typeof(fanuc.veneers.StatInfoText), "stat_info");,
  2. turn up the logging in nlog.config <logger name="*" minlevel="Trace" writeTo="fileTarget,consoleTarget" />,
  3. and post driver.log after the exception.

This will give us the info needed to troubleshoot, because we'll get the raw output from Focas before it hits the StatInfoText veneer.

https://github.com/Ladder99/fanuc-driver/blob/abe26bc4625d75b36e55751875173c92c13e2915/fanuc/platform/StatInfo.cs#L33

MRIIOT commented 3 years ago

Look at documented differences in cnc_statinfo2 and cnc_statinfo.