The following activities will be useful for the final project. The various components that you will build throughout this lab will be included in the NetworkManager and the Mobile application of the project (more information about these parts later).
- Setting up a local network using you PC as a hotspot (access point);
- Launch the local network either manually or programmatically, i.e., preferably via a Python program. You have to search for platform-specific solutions.
- Take a look at https://grpc.io/docs/what-is-grpc/ to get an overview of what is meant with remote procedure calls (RPC)
- Define a remote procedure call protocol with
gRPC
- Define a Python program which will run on the PC and make use of the RPC protocol to serve remote procedure calls
- https://grpc.io/docs/languages/python/quickstart/
- Define a Kotlin program which will run on an Android device and make remote procedure calls to the Python server above
- https://grpc.io/docs/languages/kotlin/quickstart/
- Use the RPC protocol defined above to perform communications between a Kotlin program (running on the mobile device) and the Python server (running on a PC)
- Now we ask you to go the way around, i.e., a Python client (running on a PC) connects to a Kotlin serving remote procedure calls on an Android device;
- Setting up a server on your mobile device (Android/Kotlin). Hint: make use of
io.grpc.netty.shaded.io.grpc.netty.NettyServerBuilder
; - Implement the RPC protocol in Android to handle the remote procedure calls
- Define a network manager that listens to the incoming connections to the access point and outputs the assigned local IP address.
- Create an Android activity that reads the phone's camera stream
- Create an Android activity that reads the phone's motion sensors streams