libinco_32
 All Files Functions Enumerations Enumerator Macros Modules Pages
Error returned by INCO functions

Overview - Errors

In general, most functions defined in <inco_32/inco_32.h> may return errors. Usually, values unequal to zero are errors. Each returned value specifies a very specific error case. Therefore, every error id is unique and points to a very specific error situation. The error values can be split into the following groups:

Failures related to INCO (INdel COnnectivity)

    These are errors related to the INCO system. The involved components may be inco_32 shared library, the INCOServer, INOS and INIX applications. Note that these error numbers can be converted into 'human readble error messages' by using GetErrorDescription().

Communication and system errors

These are errors in the range of 0x00010000...0x0004FFFF, see: <inco_32/errinco.h> for a list of all defined errors. These range contains failures such as:

These errors usually occur if there any system problems, such as misconfiguration, communication troubles, target communication crashes, etc.

INCO item errors

These are errors in the range of 0x00050000...0x0005FFFF, see: <inco_32/errinco.h> for a list of all defined errors.

These errors may occur if you deal with INCO items, such as variables (doubles, int, string, etc.), procedures, etc. The failures that may occur depend on the item type. Some common failures are:

These errors are set by the target (means: INOS or INIX). They usually point to an application programming error.

VB (Visual Basic) errors (deprecated!)

For historical reason, some errors are defined in the range of 0x00060000...0x0006FFFF, see: <inco_32/errinco.h>. These errors will never occur in 'modern' applications. Do not use this deprecated error range.

COM (RS232) errors (deprecated!)

For historical reason, some errors are defined in the range of 0x00070000...0x0007FFFF, see: <inco_32/errinco.h>. Some errors within this range were used by INCOServer 2.x. This version of the INCOServer is outdated and should not be used anymore (at least not for new projects). Do not use this deprecated error range.

Application errors: McRobot, INIX and customer code

    Application errors depend, as the name suggests, on the running application. Handling these errors is highly dependent on the error handling model the customer uses. Therefore, it usually can't be generalized.

    Most importantly, application errors must generate errors within "their" error range, as described below.

INIX plugin errors

These are errors in the range of 0x10000000...0x1FFFFFFF, see: <inco_32/errinco.h> for a list of all defined errors. These errors are related to the plugin system used by INIX. Unless a customer is developing an INIX application/plugins, these errors are not of interest to him.

INIX eventlogger errors

These are errors in the range of 0x20000000...0x200000FF, see: <inco_32/errinco.h> for a list of all defined errors. These errors are related to the plugin system used by INIX. Unless a customer is developing an INIX application/plugins, these errors are not of interest to him.

McRobot/INOS application errors

These are errors in the range of 0x40000000...0x4FFFFFFF and 0x80000000...0x8FFFFFFF. The application is that part of the machine that is programmed by our customers. Therefore, an application error can virtually be everything. Our customers are responsible to create their own error codes. Along with these errors defined by the customer, there exist some predefined failure code used by the application base frameworks (such as the McRobot framework). These two 'types' are using distinct error number ranges:

By definition, some bits have special meaning:

// reply id's
enum ERplId {
eRplOk=0,
eRplSkipped,
eRplInComplete,
eRplIgnored,
eRplPaused,
eRplStopped,
eRplCanceled,
eRplRejected,
eRplFailed,
eRplError,
eRplFatal
};

Let's discuss the following example error:

0x40110001

Would mean:

There exists a number of useful helper defines to operate on application errors:


Generated by doxygen 1.8.8