Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 7371a8ad authored by Rahul Arya's avatar Rahul Arya Committed by Thomas Girardier
Browse files

[Pandora] Access modemsimulator port from mmi2grpc

See tradefed CL for how this port is forwarded. We can then send AT
commands to simulate calls.

Bug: 245578454
Test: atest pts-bot
Ignore-AOSP-First: Cherry-picked from AOSP
Merged-In: I97f6112eb7993d2a5961095a61d8735da58373ad
Change-Id: I97f6112eb7993d2a5961095a61d8735da58373ad
parent 4f4fda62
Loading
Loading
Loading
Loading
+11 −1
Original line number Diff line number Diff line
@@ -35,11 +35,13 @@ from mmi2grpc.sdp import SDPProxy
from mmi2grpc.sm import SMProxy
from mmi2grpc._helpers import format_proxy
from mmi2grpc._rootcanal import RootCanal
from mmi2grpc._modem import Modem

from pandora_experimental.host_grpc import Host

PANDORA_SERVER_PORT = 8999
ROOTCANAL_CONTROL_PORT = 6212
MODEM_SIMULATOR_PORT = 4242
MAX_RETRIES = 10
GRPC_SERVER_INIT_TIMEOUT = 10  # seconds

@@ -60,8 +62,10 @@ class IUT:
        """
        self.pandora_server_port = int(args[0]) if len(args) > 0 else PANDORA_SERVER_PORT
        self.rootcanal_control_port = int(args[1]) if len(args) > 1 else ROOTCANAL_CONTROL_PORT
        self.modem_simulator_port = int(args[2]) if len(args) > 2 else MODEM_SIMULATOR_PORT
        self.test = test
        self.rootcanal = None
        self.modem = None

        # Profile proxies.
        self._a2dp = None
@@ -81,6 +85,8 @@ class IUT:
        self.rootcanal = RootCanal(port=self.rootcanal_control_port)
        self.rootcanal.reconnect_phone()

        self.modem = Modem(port=self.modem_simulator_port)

        # Note: we don't keep a single gRPC channel instance in the IUT class
        # because reset is allowed to close the gRPC server.
        with grpc.insecure_channel(f'localhost:{self.pandora_server_port}') as channel:
@@ -90,6 +96,9 @@ class IUT:
        self.rootcanal.close()
        self.rootcanal = None

        self.modem.close()
        self.modem = None

        self._a2dp = None
        self._avrcp = None
        self._gatt = None
@@ -178,7 +187,8 @@ class IUT:
        # Handles HFP MMIs.
        if profile in ('HFP'):
            if not self._hfp:
                self._hfp = HFPProxy(grpc.insecure_channel(f'localhost:{self.pandora_server_port}'))
                self._hfp = HFPProxy(test, grpc.insecure_channel(f'localhost:{self.pandora_server_port}'),
                                     self.rootcanal, self.modem)
            return self._hfp.interact(test, interaction, description, pts_address)
        # Handles HID MMIs.
        if profile in ('HID'):
+16 −0
Original line number Diff line number Diff line
import os
import socket


class Modem:

    def __init__(self, port):
        s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
        s.connect(("127.0.0.1", port))
        self.socket = s

    def close(self):
        self.socket.close()

    def call(self, phone_number):
        self.socket.sendall(b'REM0\r\nAT+REMOTECALL=4,0,0,"' + str(phone_number).encode("utf-8") + b'",129\r\n')