Beispiel #1
0
 def _HandleGetState(self):
   response = messages_pb2.Response()
   response.get_state.status = messages_pb2.SUCCESS
   response.get_state.protocol_version = PROTOCOL_VERSION
   response.get_state.kit_id = KIT_ID
   with self._lock:
     response.get_state.device_name = self._device_name
   self._SetWifiInfo(response.get_state.wifi_info)
   self._SendMessage(response)
Beispiel #2
0
def get_response(sock):
    len_prefix = messages_pb2.Header()
    len_buf = socket_read_n(sock, 19)
    len_prefix.ParseFromString(len_buf)
    msg_buf = socket_read_n(sock, len_prefix.length)

    msg = messages_pb2.Response()
    msg.ParseFromString(msg_buf)
    # print("response command_id = {}".format(len_prefix.command))
    return msg
Beispiel #3
0
  def _HandleConnectNetwork(self, request):
    if request.timeout > 0:
      success = self._wpas_client.ConnectNetwork(request.ssid, request.psk,
                                                 request.timeout)
    else:
      success = self._wpas_client.ConnectNetwork(request.ssid, request.psk)

    response = messages_pb2.Response()
    response.connect_network.status = messages_pb2.SUCCESS if success else messages_pb2.FAILURE
    self._SetWifiInfo(response.connect_network.wifi_info)
    self._SendMessage(response)
Beispiel #4
0
 def _HandleSetDeviceName(self, request):
   response = messages_pb2.Response()
   self._logger.info("Request to set device name to '%s'", request.device_name)
   self._UpdateDeviceName(request.device_name)
   with self._lock:
     response.set_device_name.device_name = self._device_name
   if request.device_name == response.set_device_name.device_name:
     response.set_device_name.status = messages_pb2.SUCCESS
   else:
     response.set_device_name.status = messages_pb2.FAILURE
   self._SendMessage(response)
Beispiel #5
0
  def _HandleScanNetworks(self, request):
    if request.timeout > 0:
      entries = self._wpas_client.Scan(request.timeout)
    else:
      entries = self._wpas_client.Scan()

    response = messages_pb2.Response()
    response.scan_networks.status = messages_pb2.SUCCESS
    for entry in entries:
      scan_result = response.scan_networks.results.add()
      scan_result.ssid = entry["ssid"]
      scan_result.secure = entry["secure"]
      scan_result.rssi = entry["rssi"]
    self._SendMessage(response)
Beispiel #6
0
    def send_request(self):
        """Send the Request message stored in this.req and resets
        it to default values.
        Returns the Response object received from the binary,
        or False if decoding the incoming message failed.
        """
        # Serialize message
        serialized = self.req.SerializeToString()

        # Reset the message to default values
        self.req = messages_pb2.Request()

        # Send message length
        msg_len = len(serialized)
        sent = self.s.send(msg_len.to_bytes(4, "big"))

        # Send message content
        total_sent = 0
        while total_sent < msg_len:
            sent = self.s.send(serialized[total_sent:])
            total_sent += sent

        # Receive message length
        data = b""
        while len(data) < 4:
            received = self.s.recv(4 - len(data))
            if len(received) == 0:
                raise ConnectionResetError("Connection was closed")
            data += received
        msg_len = int.from_bytes(data, "big")

        # Receive a Response message
        data = b""
        while len(data) < msg_len:
            received = self.s.recv(msg_len - len(data))
            if len(received) == 0:
                raise ConnectionResetError("Connection was closed")
            data += received

        # Try to parse the response and return it
        try:
            resp_msg = messages_pb2.Response()
            resp_msg.ParseFromString(data)
            return resp_msg

        # Return False if decoding fails
        except google.protobuf.message.DecodeError as e:
            print("DecodeError in reponse: {}".format(e))
            return False
Beispiel #7
0
 def _HandleIdentify(self, request):
   self._logger.info("Identify: %s", request.data)
   response = messages_pb2.Response()
   response.identify.status = messages_pb2.SUCCESS
   response.identify.data = "Test response to identify"
   self._SendMessage(response)
import messages_pb2
import ctypes
from ctypes import *

native_library = ctypes.CDLL('native_library.dll')

request = messages_pb2.Request()
for i in range(10):
  request.value.append(i)

request_blob = request.SerializeToString()
request_blob_p = ctypes.create_string_buffer(request_blob)

response_length = native_library.CalculateSquareRoot(len(request_blob), request_blob_p)
response_blob = ctypes.create_string_buffer(response_length)
native_library.RetrieveResult(response_blob)
response = messages_pb2.Response()
response.ParseFromString(response_blob)

for i in range(10):
  print str(response.value[i])
Beispiel #9
0
 def SendDataBulk(self, request, context):
     print('Received SendDataBulk request')
     print(request)
     self.graph.add_edges(convertData(r) for r in request.data)
     return messages_pb2.Response(success=True)
Beispiel #10
0
 def SendData(self, request, context):
     print('Received SendData request')
     print(request)
     self.graph.add_edges([convertData(request)])
     return messages_pb2.Response(success=True)