|
92 | 92 | </sections>
|
93 | 93 | </section>
|
94 | 94 | <section address="Section4">
|
95 |
| - <title>The MAUI Example Projects</title> |
| 95 | + <title>.NET MAUI/gRPC Example Projects</title> |
96 | 96 | <content>
|
97 | 97 | <para>
|
98 | 98 | This group of examples is comprised of four projects. AntGrpcShared is a class library providing a gRPC client/server to be consumed by the other
|
99 | 99 | projects. AntGrpcService is a Windows service that provides services to connect to and communicate with an ANT USB stick.
|
100 | 100 | The MauiAntClientApp is a .NET MAUI project and gRPC client that is used to demonstrate Windows/Android applications that work with the
|
101 | 101 | remote server application on a local subnet. <legacyBold>I have not tested the other platforms supported by .NET MAUI.</legacyBold>
|
102 | 102 | </para>
|
103 |
| - <alert class="note" title="About gRPC"> |
104 |
| - <para> |
105 |
| - gRPC is a Google defined protocol for remote procedure calls. It is the recommended RPC to use instead of WCF. Do not |
106 |
| - confuse <legacyBold>gRPC channels</legacyBold> with <legacyBold>ANT radio channels</legacyBold>. gRPC is a |
107 |
| - network protocol, ANT radio channels are a Dynastream/Garmin protocol for ANT radios. |
108 |
| - </para> |
109 |
| - </alert> |
110 | 103 | <para>
|
111 |
| - The intent of AntGrpcService is to make the ANT USB stick accessible not only to client applications running on the local |
112 |
| - host but mobile device emulators and mobile devices connected to the network the service is running on. |
113 |
| - </para> |
114 |
| - <para> |
115 |
| - AntGrpcShared is the glue that facilitates communication between clients and the service. The benefit of using |
116 |
| - gRPC is that multiple clients can run simultaneously, both on the local PC and over the network. |
| 104 | + See the <link xlink:href="3ab7deee-1a9a-4d77-9fc4-14343f3bd1ca">MAUI-gRPC Examples</link> topic for more information. |
117 | 105 | </para>
|
118 | 106 | </content>
|
119 | 107 | <!-- If a section contains a sections element, its content creates
|
120 | 108 | sub-sections. These are not collapsible. -->
|
121 |
| - <sections> |
122 |
| - <section address="SubSection1"> |
123 |
| - <title>AntGrpcShared</title> |
124 |
| - <content> |
125 |
| - <para> |
126 |
| - This class library is configured as a gRPC client/server library. The .proto files define the messages and data exchanged |
127 |
| - between client and server implementations. |
128 |
| - </para> |
129 |
| - </content> |
130 |
| - </section> |
131 |
| - <section address="SubSection2"> |
132 |
| - <title>AntGrpcService</title> |
133 |
| - <content> |
134 |
| - <para> |
135 |
| - The server is a Windows service that runs on the host PC that has an ANT USB stick connected to it. Three services are |
136 |
| - provided. |
137 |
| - </para> |
138 |
| - <para> |
139 |
| - The DiscoveryService replies to client messages over a UDP multicast port on the local subnet. This allows clients to obtain |
140 |
| - the URI of the server and connect to the gRPC channel. Think of it as a poor man's service discovery protocol. No authentication |
141 |
| - or validation is performed. |
142 |
| - </para> |
143 |
| - <para> |
144 |
| - The AntRadioService provides methods to get information about the connected ANT USB stick, initialize for continuous scan mode, |
145 |
| - and get channels to communicate with ANT devices via the AntChannelService. |
146 |
| - </para> |
147 |
| - <para> |
148 |
| - The AntChannelService has a method to subscribe to a gRPC stream of ANT messages when the ANT USB stick has been initialized |
149 |
| - for continuous scan mode. The remaining gRPC/ANT radio channels are used to send extended acknowledged messages to individual |
150 |
| - ANT devices. |
151 |
| - </para> |
152 |
| - <para> |
153 |
| - <legacyBold>The service can be debugged!</legacyBold> Make sure the service is not installed or disable it in the |
154 |
| - service controller (<application>services.msc</application>). Select the Debug solution configuration and launch it |
155 |
| - from Visual Studio. A console window will open. Logging output is displayed in the console window and breakpoints |
156 |
| - can be set. |
157 |
| - </para> |
158 |
| - </content> |
159 |
| - </section> |
160 |
| - <section address="SubSection3"> |
161 |
| - <title>MauiAntClientApp</title> |
162 |
| - <content> |
163 |
| - <para> |
164 |
| - The client app is the consumer of the client services provided by AntGrpcShared project. The server URI is first obtained via |
165 |
| - a UDP multicast message, a gRPC connection to the server is established, and then requests to initialize and communicate with the |
166 |
| - remote ANT USB stick are invoked. |
167 |
| - </para> |
168 |
| - </content> |
169 |
| - </section> |
170 |
| - <section address="SubSection4"> |
171 |
| - <title>AntGrpcServicePackage</title> |
172 |
| - <content> |
173 |
| - <para> |
174 |
| - The AntGrpcServicePackage installs the AntGrpcService on the local Windows PC and creates a firewall exception allowing network |
175 |
| - traffic between the service and any clients on the network. Wix is used to create the MSI file. You must install the |
176 |
| - Wix toolset to build this project. |
177 |
| - </para> |
178 |
| - </content> |
179 |
| - </section> |
180 |
| - </sections> |
181 | 109 | </section>
|
182 | 110 |
|
183 | 111 | <relatedTopics>
|
|
0 commit comments