int MSXE173x__MFEndatSensorSendPosAndRecvSelMemArea ( xsd__unsignedLong  ulConnectorIndex,
xsd__unsignedLong  ulChannelIndex,
xsd__unsignedLong  ulMrsCode,
xsd__unsignedLong  ulAddress,
xsd__unsignedLong  ulOption01,
xsd__unsignedLong  ulOption02,
xsd__unsignedLong  ulOption03,
xsd__unsignedLong  ulOption04,
struct MSXE173x__MFEndatSensorSendPosAndRecvSelMemAreaResponse Response 
)

In order to send or read parameters, the memory area must first be selected.
Before calling this function, you must call the MSXE173x__MFEndatInitSensor function.
This function differs from the MSXE173x__MFEndatSelectMemoryArea function, since it can select memory areas that are reserved for EnDat 2.2. sensors.
This function is reserved for EnDat 2.2 sensors. It will returns an error if the sensor does not support EnDat 2.2 commands.

Parameters:
[in] ulConnectorIndex Index of the EnDat connector (0 to 3). See on the MSX-E system.
[in] ulChannelIndex Index of the channel. Set to 0
[in] ulMrsCode The MRS-code corresponding to the memory area that you want to select (see page 31/121 and 84/121 of EnDat specifications)

  • 0xB9 Operating status (address area: 0x0 - 0x3)
  • 0xA1 Parameters of the encoder manufacturer - first part (address area: 0x4 - 0xF)
  • 0xA3 Parameters of the encoder manufacturer - second part (address area: 0x0 - 0xF)
  • 0xA5 Parameters of the encoder manufacturer - third part (address area: 0x0 - 0xF)
  • 0xA7 Operating parameters (address area: 0x0 - 0xF)
  • 0xA9 Parameters of the OEM - first part (address area: depending on the sensor)
  • 0xAB Parameters of the OEM - second part (address area: depending on the sensor)
  • 0xAD Parameters of the OEM - third part (address area: depending on the sensor)
  • 0xAF Parameters of the OEM - fourth part (address area: depending on the sensor)
  • 0xB1 Compensation values of the encoder manufacturer - first part (address area: depending on the sensor)
  • 0xB3 Compensation values of the encoder manufacturer - second part (address area: depending on the sensor)
  • 0xB5 Compensation values of the encoder manufacturer - third part (address area: depending on the sensor)
  • 0xB7 Compensation values of the encoder manufacturer - fourth part (address area: depending on the sensor)
  • 0xBD Parameters of the encoder manufacturer for EnDat 2.2 (address area: 0x0 - 0x3F)
  • 0xBB Operating parameters 2 (address area: depending on the sensor)
  • 0xBF Parameters of the section 2 memory area (address area: depending on the sensor)
[in] ulAddress Selected block address (only used if ulMrsCode is set to 0xBF. If ulMrsCode is not 0xBF, set it to 0). It is used to address further section 2 memory areas (see page 46/121 of EnDat specifications)
[in] ulOption01 Reserved. Set to 0
[in] ulOption02 Reserved. Set to 0
[in] ulOption03 Reserved. Set to 0
[in] ulOption04 Reserved. Set to 0
[out] Response 
sResponse.iReturnValue

  • 0 The remote function performed OK
  • -1 System error occurred
  • -2 The PLD is not working
  • -3 The ulConnectorIndex parameter is wrong
  • -4 The ulChannelIndex parameter is wrong
  • -5 The component is not programmed as EnDat
  • -6 The driver is in a wrong state (must be INITIALISED)
  • -7 The ulMrsCode parameter is wrong
  • -8 The ulAddress parameter is wrong
  • -9 The sensor is not compatible with EnDat 2.2
  • -10 Error while getting position and selecting memory area
  • -41 Transmission error. Please call MSXE173x__MFEndatGetErrorSources to get more information
  • -100 Internal system error occurred. See value of syserrno

sResponse.syserrno system-error code (the value of the libc "errno" code)
ulPositionLow Position - low bits
ulPositionHigh Position - high bits

Return values:
0 SOAP_OK
Others See SOAP error