The ADS Application Request Processor is an example of an ARP provided by Broadcom. It illustrates use of the RRC protocol communicating to a Spirent ADS/ULTS system. The Spirent system allows GPS aspects of the RRC protocol to be tested without the need for radio channel. RRC messages are transported to the ADS system over a TCP connection. In order to facilitate testing the ADS also communicates several other messages to the device under test.
The ADS ARP is an application request processor registered to the GLCT. It receives and processes events of the type GLCTEV_PAL_NRM_RRC_DATA. These events are delivered through the HAL via GlWaitForHalEvent().
The ADS implementation consists of a library of functions that implement the calls made by the GLCT to the ARP including GlRrcAdsReqMgrCreate(), GlRrcAdsReqMgrSetCfgValue(), and GlRrcAdsReqMgrStart(). Events are processed by GlRrcAdsReqMgrEvents().
The ADS communicates events to the RRC processor by sending the GLCT events of type GLCTEV_PAL_NRM_RRC_DATA. These events communicate ADS related such as the delivery of an RRC message.
There are a number of other ADS specific events that are handled as well. These include a reset message from the ADS and messages to arm and receive precise time transfer which is used for testing fine-time AGPS.
The RRC processor communicates back to the ADS by calling a functions to send an RRC message back to the ADS. For this purpose the HAL should include an implementation of GpsHalNrmRrcSend(). The ADS uses a special wrapper around the message, which is then sent via a TCP socket. For details on how to send the ADS a message the source code of this function for Windows should be reviewed.