示例#1
0
    def getSetupPacket(crownstoneId: int, sphereId: int, adminKey, memberKey,
                       basicKey, serviceDataKey, localizationKey,
                       meshDeviceKey, meshAppKey, meshNetworkKey,
                       ibeaconUUID: str, ibeaconMajor: int, ibeaconMinor: int):
        """
        :param crownstoneId:  		uint8 number
        :param sphereId:  	     	uint8 number
        :param adminKey:      		byteString (no conversion required)
        :param memberKey:     		byteString (no conversion required)
        :param basicKey:      		byteString (no conversion required)
        :param serviceDataKey: 	    byteString (no conversion required)
        :param localizationKey: 	byteString (no conversion required)
        :param meshDeviceKey: 	    byteString (no conversion required)
        :param meshAppKey: 	        byteString (no conversion required)
        :param meshNetworkKey: 	    byteString (no conversion required)
        :param ibeaconUUID: 		string  (ie. "1843423e-e175-4af0-a2e4-31e32f729a8a")
        :param ibeaconMajor:        uint16 number
        :param ibeaconMinor:        uint16 number
        :return:
        """
        data = []
        data.append(crownstoneId)
        data.append(sphereId)

        data += list(adminKey)
        data += list(memberKey)
        data += list(basicKey)
        data += list(serviceDataKey)
        data += list(localizationKey)

        MDKey = meshDeviceKey
        if type(meshDeviceKey) is str:
            MDKey = Conversion.ascii_or_hex_string_to_16_byte_array(
                meshDeviceKey)

        data += list(MDKey)
        data += list(meshAppKey)
        data += list(meshNetworkKey)

        data += Conversion.ibeaconUUIDString_to_reversed_uint8_array(
            ibeaconUUID)
        data += Conversion.uint16_to_uint8_array(ibeaconMajor)
        data += Conversion.uint16_to_uint8_array(ibeaconMinor)

        return ControlPacket(ControlType.SETUP).loadByteArray(data).serialize()
    def loadKeys(self, adminKey, memberKey, basicKey, serviceDataKey,
                 localizationKey, meshApplicationKey, meshNetworkKey):
        self.adminKey = Conversion.ascii_or_hex_string_to_16_byte_array(
            adminKey)
        self.memberKey = Conversion.ascii_or_hex_string_to_16_byte_array(
            memberKey)
        self.basicKey = Conversion.ascii_or_hex_string_to_16_byte_array(
            basicKey)
        self.serviceDataKey = Conversion.ascii_or_hex_string_to_16_byte_array(
            serviceDataKey)
        self.localizationKey = Conversion.ascii_or_hex_string_to_16_byte_array(
            localizationKey)
        self.meshApplicationKey = Conversion.ascii_or_hex_string_to_16_byte_array(
            meshApplicationKey)
        self.meshNetworkKey = Conversion.ascii_or_hex_string_to_16_byte_array(
            meshNetworkKey)

        self.initializedKeys = True
        self.determineUserLevel()
示例#3
0
 def loadKey(self, keyString):
     self.payload = Conversion.ascii_or_hex_string_to_16_byte_array(
         keyString)
     return self._process()