Skip to main content

MdmrGetResult

BoardSupported
Host SystemYes
V4L2Yes
Clarity UHDYes
Concord PoENo
GenTLYes
GevIQYes
GigE VisionYes
IndioNo
Iris GTXYes
Radient eV-CLYes
Rapixo CLYes
Rapixo CoFYes
Rapixo CXPYes
USB3 VisionYes

Get results from a SureDotOCR result buffer.

Syntax​

void MdmrGetResult(
AIL_ID ResultDmrId, //in
AIL_INT64 StringIndex, //in
AIL_INT64 CharPositionIndex, //in
AIL_INT64 ResultType, //in
void * ResultArrayPtr //out
)

Description​

This function retrieves results of the specified type from a SureDotOCR result buffer. You can retrieve global results, string results, or character results. Results are available after calling MdmrRead.

If your target image (MdmrRead) was associated with a camera calibration context, positional and dimensional results are, by default, returned with respect to the relative coordinate system of the image. Otherwise, these results are returned in pixels, relative to the center of top-left pixel in the target image.

If your target image was associated with a camera calibration context but you want to retrieve positional and dimensional results in pixel units, use MdmrControl with the M_RESULT_OUTPUT_UNITS control type set to M_PIXEL. However, if you set M_RESULT_OUTPUT_UNITS to M_WORLD without specifying a calibrated image in which to calculate the results, MdmrGetResult generates an error.

Positional and dimensional results take into account the angle at which the result was found. The following example shows how the result for the bottom-left corner of the string box (M_STRING_BOX_BL_X and M_STRING_BOX_BL_Y) depends on the location and angle at which the string was read.

[Image: MdmrResultStringBoxPosition.png]

To remove all results from a result buffer, call MdmrControlwith M_RESET. This does not delete the buffer identifier, as is the case with MdmrFree.

Parameters​

ResultDmrId (in, AIL_ID)​

Specifies the identifier of the SureDotOCR result buffer from which to retrieve results.

StringIndex (in, AIL_INT64)​

Specifies the string (one or all) for which to get results, or specifies to get global results. Set this parameter to one of the values below.

For specifying the string for which to get results, or for specifying global results

ValueDescription
M_DEFAULT
M_ALLSpecifies to retrieve results for all strings in the result buffer. To retrieve the number of strings in the result buffer, use M_STRING_NUMBER.
M_GENERAL (default)Specifies to retrieve global results. These results are related to the result buffer itself.
0 <= Value < M_STRING_NUMBERSpecifies the index of the string for which to retrieve results. The index must be less than the total number of strings in the result buffer (M_STRING_NUMBER).

CharPositionIndex (in, AIL_INT64)​

Specifies the character (one or all) for which to get results, or specifies to get global or string results. Set this parameter to one of the values below.

For specifying the character for which to get results, or for specifying global or string results

ValueDescription
M_DEFAULT
M_INDEX_IN_FORMATTED_STRINGSpecifies to retrieve a character result by indicating the character's index, according to the target string format. The StringIndex parameter must be set to a string (one or all).

If a space is read in the target string, it is indexed as a character result, even if you did not add a space to the string model as a permitted character constraint (MdmrControlStringModel with M_SPACE). For example, if the string model definition specifies to read 4 capital letters ("LLLL"), and the target string read is "AB CD", **M_INDEX_IN_FORMATTED_STRING(3)**refers to 'C'. If the string model definition specifies to read 4 capital letters and 1 space ("LLSLL"), and the target string read is "AB CD", **M_INDEX_IN_FORMATTED_STRING(3)**also refers to 'C'. | | M_INDEX_IN_STRING | Specifies to retrieve a character result by indicating the character's index, according to the string model definition. The StringIndex parameter must be set to a string (one or all).

Spaces read in the target string can be indexed as a character result, but only if they correspond to a space permitted character constraint in the string model (MdmrControlStringModel with M_SPACE). For example, if the string model definition specifies to read 4 capital letters ("LLLL"), and the target string read is "AB CD", **M_INDEX_IN_STRING(3)**refers to 'D'. If the string model definition specifies to read 4 capital letters and 1 space ("LLSLL"), and the target string read is "AB CD", **M_INDEX_IN_STRING(3)**refers to 'C'. | | M_GENERAL (default) | Specifies to retrieve global results or string results.

M_GENERALor M_DEFAULT retrieves global results when the StringIndex parameter is set to M_GENERAL or M_DEFAULT. M_GENERALor M_DEFAULT retrieves string results when the StringIndex parameter is set to a string (one or all). |

ResultType (in, AIL_INT64)​

Specifies the type of result to retrieve.

ResultArrayPtr *(out, void)​

Specifies the address in which to write results.

Parameter Associations​

For retrieving global results​

When retrieving global results, set the ResultType parameter to the value below. In this case, set both the StringIndex and CharPositionIndex parameters to either M_GENERAL or M_DEFAULT.


M_STATUS​

Retrieves information regarding the state of the read operation.

ValueDescription
M_COMPLETESpecifies that the read operation completed successfully. It is possible to read 0 strings (M_STRING_NUMBER), and have a successfully completed read operation.
M_CURRENTLY_READINGSpecifies that the read operation is currently ongoing. You can only get this status if you are retrieving it from another thread.
M_INTERNAL_ERRORSpecifies that an unexpected error occurred.
M_NOT_ENOUGH_MEMORYSpecifies that a memory allocation error occurred while reading.
M_READ_NOT_PERFORMEDSpecifies that the read operation has not been performed. This is the initial status.
M_STOPPED_BY_REQUESTSpecifies that the read operation was explicitly stopped (MdmrControl with M_STOP_READ).
M_TIMEOUT_REACHEDSpecifies that the read operation ended because the timeout limit was reached (MdmrControl with M_TIMEOUT).

M_STRING_NUMBER​

Retrieves the total number of strings read. This is the total number of strings held by the result buffer.

For retrieving string results​

When retrieving string results, set the ResultType parameter to one of the values below. In this case, set the StringIndex parameter to the index of the string for which to get the result or M_ALL (unless otherwise specified), and set the CharPositionIndex parameter to either M_GENERAL or M_DEFAULT.


M_FORMATTED_STRING​

Retrieves the string that was read, according to the target string format. This information is returned as a regular string. It includes the name of all the characters in the string and the terminating null character. It also includes spaces, if the target string has any that are greater than the minimum spacing (MdmrControlwith M_SPACE_SIZE_MIN) and less than the maximum spacing (M_SPACE_SIZE_MAX).


M_FORMATTED_STRING_CHAR_INVALID_INDICES​

Retrieves the positions of invalid or unreadable characters in the formatted string.


M_FORMATTED_STRING_CHAR_NUMBER​

Retrieves the total number of characters read, according to the target string format. This number includes spaces, if any were read in the target string, even if you did not add spaces to the string model as permitted character constraints (MdmrControlStringModel with M_SPACE). M_FORMATTED_STRING_CHAR_NUMBER does not count the terminating null character.


M_SKIPPED_POSITIONS​

Retrieves the positions of the skipped characters; this result is only available when M_STRING_SIZE_MIN is less than M_STRING_SIZE_MAX.


M_STRING​

Retrieves the string that was read, according to the string model definition. This information is returned as a regular string. It includes the name of all the characters in the string and the terminating null character. It also include spaces, if they correspond to a space permitted character constraint in the string model (MdmrControlStringModel with M_SPACE).


M_STRING_CHAR_INVALID_INDICES​

Retrieves the positions of invalid or unreadable characters in the string. To retrieve the positions of these characters in the formatted string, use M_FORMATTED_STRING_CHAR_INVALID_INDICES.


M_STRING_CHAR_NUMBER​

Retrieves the total number of characters read, according to the string model definition. This number can include spaces, but only if they correspond to a space permitted character constraint in the string model (MdmrControlStringModel with M_SPACE). M_STRING_CHAR_NUMBER does not count the terminating null character.


M_STRING_MODEL_INDEX​

Retrieves the index of the string model, in the SureDotOCR context, used to read the string.

ValueDescription
Value >= 0Specifies the index of the string model used to read the string.

M_STRING_MODEL_LABEL​

Retrieves the label of the string model, in the SureDotOCR context, used to read the string.

ValueDescription
Value >= 0Specifies the index of the string model used to read the string.

M_STRING_SCORE​

Retrieves the string score calculated during the read operation. The string score is the average score of the characters in the string. This score does not include the score of an M_SPACE permitted character (MdmrControlStringModel), if any were read in the string.

For retrieving global or string results​

When retrieving global or string results (one or all), set the ResultType parameter to one of the values below. In this case, set the StringIndex parameter to one or all strings, M_GENERAL or M_DEFAULT, and set the CharPositionIndex parameter to either M_GENERAL or M_DEFAULT. > Note: Note when the StringIndex parameter is set to either M_GENERAL or M_DEFAULT, the result type will be in reference to the region that encompasses all strings, as opposed to the region of the specific string(s).


M_ITALIC_CHAR_ANGLE​

Retrieves the italic angle at which characters in the string(s) are found.


M_ITALIC_PITCH​

Retrieves the distance between successive dot centers in the italic angle direction.


M_STRING_ANGLE​

Retrieves the angle of the string's bounding box, or the bounding box encompassing all strings, in degrees. The angle is measured at the box's base and is relative to the output coordinate system (MdmrControlwith M_RESULT_OUTPUT_UNITS). An angle interpreted with respect to the pixel coordinate system is always measured counter-clockwise, from the positive X-axis towards the negative Y-axis of the image. For information on the angle's direction of rotation when interpreting the angle with respect to the relative coordinate system, see Angle convention in Aurora Imaging Library.


M_STRING_BOX_BL_X​

Retrieves the X-coordinate of the bottom-left corner of the bounding box of the string, or the bounding box encompassing all strings, relative to the angle at which the string was found.


M_STRING_BOX_BL_Y​

Retrieves the Y-coordinate of the bottom-left corner of the bounding box of the string, or the bounding box encompassing all strings, relative to the angle at which the string was found.


M_STRING_BOX_BR_X​

Retrieves the X-coordinate of the bottom-right corner of the bounding box of the string, or the bounding box encompassing all strings, relative to the angle at which the string was found.


M_STRING_BOX_BR_Y​

Retrieves the Y-coordinate of the bottom-right corner of the bounding box of the string, or the bounding box encompassing all strings, relative to the angle at which the string was found.


M_STRING_BOX_UL_X​

Retrieves the X-coordinate of the top-left corner of the bounding box of the string, or the bounding box encompassing all strings, relative to the angle at which the string was found.


M_STRING_BOX_UL_Y​

Retrieves the Y-coordinate of the top-left corner of the bounding box of the string, or the bounding box encompassing all strings, relative to the angle at which the string was found.


M_STRING_BOX_UR_X​

Retrieves the X-coordinate of the top-right corner of the bounding box of the string, or the bounding box encompassing all strings, relative to the angle at which the string was found.


M_STRING_BOX_UR_Y​

Retrieves the Y-coordinate of the top-right corner of the bounding box of the string, or the bounding box encompassing all strings, relative to the angle at which the string was found.


M_STRING_CHAR_ANGLE​

Retrieves the angle at which characters in the string(s) are found.


M_STRING_HEIGHT​

Retrieves the height of the string's bounding box, or the bounding box encompassing all strings.


M_STRING_PITCH​

Retrieves the distance between successive dot centers in the string angle direction.


M_STRING_POSITION_X​

Retrieves the X-coordinate of the center of the bounding box of the string, or the bounding box encompassing all strings; this position is considered the position of the string, or bounding box of all strings.


M_STRING_POSITION_Y​

Retrieves the Y-coordinate of the center of the bounding box of the string, or the bounding box encompassing all strings; this position is considered the position of the string, or bounding box of all strings.


M_STRING_WIDTH​

Retrieves the width of the string's bounding box, or the bounding box encompassing all strings.

For retrieving character results​

When retrieving results for characters in a string, set the ResultType parameter to one of the values below. In this case, set the StringIndex parameter to a string (one or all), and set the CharPositionIndex parameter to a character (one or all). Characters are ordered by their index position in their string. > Note: Note that M_CHAR_NAME cannot be used when the StringIndex parameter is set to M_ALL.


M_CHAR_BOX_BL_X​

Retrieves the X-coordinate of the bottom-left corner of the character's bounding box, relative to the angle at which the character was found.


M_CHAR_BOX_BL_Y​

Retrieves the Y-coordinate of the bottom-left corner of the character's bounding box, relative to the angle at which the character was found.


M_CHAR_BOX_BR_X​

Retrieves the X-coordinate of the bottom-right corner of the character's bounding box, relative to the angle at which the character was found.


M_CHAR_BOX_BR_Y​

Retrieves the Y-coordinate of the bottom-right corner of the character's bounding box, relative to the angle at which the character was found.


M_CHAR_BOX_UL_X​

Retrieves the X-coordinate of the top-left corner of the character's bounding box, relative to the angle at which the character was found.


M_CHAR_BOX_UL_Y​

Retrieves the Y-coordinate of the top-left corner of the character's bounding box, relative to the angle at which the character was found.


M_CHAR_BOX_UR_X​

Retrieves the X-coordinate of the top-right corner of the character's bounding box, relative to the angle at which the character was found.


M_CHAR_BOX_UR_Y​

Retrieves the Y-coordinate of the top-right corner of the character's bounding box, relative to the angle at which the character was found.


M_CHAR_FONT_INDEX​

Retrieves the index of the font, in the SureDotOCR context, that contains the representation of the character that was read in the string.


M_CHAR_FONT_LABEL​

Retrieves the label of the font, in the SureDotOCR context, that contains the representation of the character that was read in the string.


M_CHAR_HEIGHT​

Retrieves the height of the character's bounding box.


M_CHAR_NAME​

Retrieves the name of the character in the string that was read. The name is returned as a regular string. It consists of the character name and the terminating null character. If a space was read, the name returned is an actual space (and the terminating null character).


M_CHAR_POSITION_X​

Retrieves the X-coordinate of the center of the bounding box of the character; this position is considered the position of the character.


M_CHAR_POSITION_Y​

Retrieves the Y-coordinate of the center of the bounding box of the character; this position is considered the position of the character.


M_CHAR_SCORE​

Retrieves the character's score. This quantifies the similarity between the character in the target and the character in the font. If SureDotOCR reads an M_SPACE permitted character (MdmrControlStringModel), its character score is always 100%. This score does not influence the string score (M_STRING_SCORE).


M_CHAR_WIDTH​

Retrieves the width of the character's bounding box.

Combination Constants — For retrieving the size of a string​

Optional, cannot be used alone.

Usage: You can add one of the following values to the above-mentioned values to get the size of a string.

M_STRING_SIZE​

Retrieves the number of characters in the string, including the terminating null character. When specifying M_FORMATTED_STRING + M_STRING_SIZE, the number returned also include spaces, if any were read in the target string. When specifying M_STRING + M_STRING_SIZE, the number returned can also include spaces, but only if they correspond to a space permitted character constraint in the string model. When specifying M_CHAR_NAME + M_STRING_SIZE, the number returned can include a space, if that was the character read. For M_CHAR_NAME, the name of each letter at each position is itself a string, with its own terminating null character. You must sum them all to get the required array size for a string.

Combination Constants — For explicitly retrieving character name information in hexadecimal 16-bit Unicode (UTF-16) format​

Optional, cannot be used alone.

Usage: You can add one of the following values to the above-mentioned values to determine the hexadecimal 16-bit Unicode (UTF-16) character name information.

The character name of the letter A is "A" (its native name) or "\x0041", which is its representation in hexadecimal format beginning with "\x". Characters between 0 and 127 are considered Basic Latin. A character such as the smiley face (☺, or "\x263A" in hexadecimal) is beyond the Basic Latin range. In a Unicode environment, the character representations are returned (for example, the smiley face), unless you explicitly specify one of the below combination values (for example, to obtain "\x263A" instead of the actual smiley face). Retrieving character names in hexadecimal might be useful if you want to convert your data into ASCII. Note how the string size is affected. For example, the string "abc☺" nominally consists of four characters plus the null-terminating character. Accordingly, a string size result (retrieved with, for example, M_STRING + M_STRING_SIZE) will return 5 as the string size. For the same string mentioned above ("abc☺"), when M_HEX_UTF16_FOR_ALL is specified, you will obtain "\x0041\x0042\x0043\x263A" and a string size of 25. When M_HEX_UTF16_FOR_NON_BASIC_LATIN is specified, you will obtain "abc\x263A" and a string size of 10.

ValueDescription
M_HEX_UTF16_FOR_ALLRetrieves results with the name of all characters in hexadecimal 16-bit Unicode (UTF-16) format.
M_HEX_UTF16_FOR_NON_BASIC_LATINRetrieves results with the names of characters that fall out of the Basic Latin range, in hexadecimal 16-bit Unicode (UTF-16) format.

Combination Constants — For determining whether results are available​

Optional.

Usage: You can add one of the following values to the above-mentioned values to determine whether a result is available.

M_AVAILABLE​

Retrieves whether the requested result type is available for retrieval.

ValueDescription
M_FALSESpecifies that the requested result type is not available.
M_TRUESpecifies that the requested result type is available.

Combination Constants — For determining the required array size (number of elements) to store the returned values​

Optional, cannot be used alone.

Usage: You can add one of the following values to the above-mentioned values to determine the required array size (number of elements) to store the returned values.

M_NB_ELEMENTS​

Retrieves the required array size (number of elements) to store the returned values.

Combination Constants — For casting the result to a required data type​

Optional.

Usage: You can add one of the following values to the above-mentioned values to cast the requested results to a required data type.

M_TYPE_AIL_DOUBLE​

Casts the requested results to an AIL_DOUBLE.

M_TYPE_AIL_FLOAT​

Casts the requested results to an AIL_FLOAT.

M_TYPE_AIL_ID​

Casts the requested results to an AIL_ID.

M_TYPE_AIL_INT​

Casts the requested results to an AIL_INT.

M_TYPE_AIL_INT16​

Casts the requested results to an AIL_INT16.

M_TYPE_AIL_INT32​

Casts the requested results to an AIL_INT32.

M_TYPE_AIL_INT64​

Casts the requested results to an AIL_INT64.

Note: Note that this result type cannot be used when the StringIndex parameter is set to M_ALL.

Copyright © 2026 Zebra Technologies.