Esempio n. 1
0
    def __init__(self, name, device=None, logger=None):
        super(PsocI2CDevice, self).__init__(name)

        self._device = device or MockDevice('mock device')
        self._logger = logger or Logger()

        self._map_id_to_offset = {
            MSG_ID_CONTROL : ('H', self._CONTROL_OFFSET),
            MSG_ID_DEBUG : ('H', self._DEBUG_OFFSET),
            MSG_ID_SPEED : ('f', self._LEFT_RIGHT_SPEED_OFFSET)
        }

        # Slices that define the grouping of data for each message from the raw data fields
        STATUS = slice(0, 2)
        SPEED = slice(2, 4)
        POSITION = slice(4, 6)
        HEADING = 6
        HEARTBEAT = 7

        self._msg_data_slices = [STATUS, SPEED, POSITION, HEADING, HEARTBEAT]

        self._msgs = [
            lambda data: Message(type=MSG_ID_STATUS, data=StatusData(*data)),
            lambda data: Message(type=MSG_ID_SPEED, data=SpeedData(*data)),
            lambda data: Message(type=MSG_ID_POSITION, data=PositionData(*data)),
            lambda data: Message(type=MSG_ID_HEADING, data=HeadingData(data)),
            lambda data: Message(type=MSG_ID_HEARTBEAT, data=HeartbeatData(data))
        ]
   
        self._msg_gen = None
Esempio n. 2
0
    def __init__(self,
                 address=0x28,
                 i2c=None,
                 rst=None,
                 gpio=None,
                 logger=None):
        """
        Initialize the BNO055 class
        :param address: the I2C address
        :param i2c: the i2c device
        :param rst: a reset pin
        :param gpio: a gpio package
        :return: None
        """
        # If reset pin is provided save it and a reference to provided GPIO
        # bus (or the default system GPIO bus if none is provided).
        self._rst = rst
        if self._rst is not None:
            if gpio is None:
                import Adafruit_GPIO as GPIO
                gpio = GPIO.get_platform_gpio()
            self._gpio = gpio
            # Setup the reset pin as an output at a high level.
            self._gpio.setup(self._rst, GPIO.OUT)
            self._gpio.set_high(self._rst)
            # Wait a 650 milliseconds in case setting the reset high reset the chip.
            time.sleep(0.65)

        self._address = address
        self._i2c_device = i2c
        self._mode = OPERATION_MODE_NDOF
        self._logger = logger or Logger()
Esempio n. 3
0
    def create_i2c(cls, driver_cb, logger=None):
        if not logger:
            logger = Logger()

        try:
            i2c_device = I2CDevice(I2CDevice.DEV_I2C_1, logger=logger)
        except I2CDeviceError as err:
            raise ImuHwFactoryError("Unable to instantiate Imu hardware", err)

        try:
            imu_device = ImuDevice(name="imu device",
                                   device=i2c_device,
                                   logger=logger)
        except ImuDeviceError as err:
            raise ImuHwFactoryError("Unable to instantiate Imu hardware", err)

        try:
            driver = ImuDriver('imu driver', device=imu_device, logger=logger)
        except ImuDriverError as err:
            raise ImuHwFactoryError("Unable to instantiate Imu hardware", err)

        try:
            return ImuHw(driver=driver, callback=driver_cb, logger=logger)
        except ImuHwError as err:
            raise ImuHwFactoryError("Unable to instantiate Imu hardware", err)
Esempio n. 4
0
    def create_can(cls,
                   driver_cb,
                   channel=_DEFAULT_CHANNEL,
                   bustype=_DEFAULT_BUSTYPE,
                   logger=None):
        if not logger:
            logger = Logger()

        try:
            can_device = can.interface.Bus(channel=channel, bustype=bustype)
        except can.CanError as err:
            raise PsocHwFactoryError("Unable to instantiate Psoc hardware",
                                     err)

        try:
            device = PsocCANDevice(name='psoc device',
                                   device=can_device,
                                   logger=logger)
        except PsocDeviceError as err:
            raise PsocHwFactoryError("Unable to instantiate Psoc hardware",
                                     err)

        try:
            driver = PsocDriver(name='psoc driver',
                                device=device,
                                logger=logger)
        except PsocDriverError as err:
            raise PsocHwFactoryError("Unable to instantiate Psoc hardware",
                                     err)

        try:
            return PsocHw(driver_if=driver, driver_cb=driver_cb, logger=logger)
        except PsocHwError as err:
            raise PsocHwFactoryError("Unable to instantiate Psoc hardware",
                                     err)
Esempio n. 5
0
    def create_mock(cls, driver_cb, logger=None):
        if not logger:
            logger = Logger()

        try:
            mock_device = MockDevice('mock device', logger=logger)
        except MockDeviceError as err:
            raise PsocHwFactoryError("Unable to instantiate Psoc hardware",
                                     err)

        try:
            device = PsocMockDevice('psoc device',
                                    device=mock_device,
                                    logger=logger)
        except PsocDeviceError as err:
            raise PsocHwFactoryError("Unable to instantiate Psoc hardware",
                                     err)

        try:
            driver = PsocDriver('module i2c driver',
                                device=device,
                                logger=logger)
        except PsocDriverError as err:
            raise PsocHwFactoryError("Unable to instantiate Psoc hardware",
                                     err)

        try:
            return PsocHw(driver_if=driver, driver_cb=driver_cb, logger=logger)
        except PsocHwError as err:
            raise PsocHwFactoryError("Unable to instantiate Psoc hardware",
                                     err)
Esempio n. 6
0
    def __init__(self, name, device, callback, logger=None):
        super(DeviceDriver, self).__init__(name, logger=logger)

        self._name = name
        self._msgs = self._gen_msg()
        self._callback = callback
        self._device = device
        self._logger = logger or Logger()
Esempio n. 7
0
    def __init__(self, apkObj, theLogger=Logger()):

        self.apkObj = apkObj

        self.activities = []
        self.staticReceivers = []
        self.services = []

        self.log = theLogger
Esempio n. 8
0
def run_multi(func, args, name, i, repeat):
    log_name = os.path.join(log_dir, '%d.%s.log' % (i, name))
    log = Logger(strm=open(log_name, 'w'))
    for j in range(repeat):
        t = func(*args)
        t.start()
        t.join()
        log.log(t.get())
    del log
Esempio n. 9
0
    def __init__(self, driver=None, callback=None, logger=None):

        # Instantiate the IMUDriver and start it
        self._driver = driver # or MockImuDriver()

        # Capture the callback for local access
        self._callback = callback

        self._logger = logger or Logger()
Esempio n. 10
0
def vae_train():
    logger = Logger("{}/vae_train_{}.log".format(cfg.logger_save_dir, cfg.timestr))
    logger.log(cfg.info)

    logger.log("Loading Dataset")

    data_list = glob.glob(cfg.seq_save_dir +'/*.npz')
    datas = Parallel(n_jobs=cfg.num_cpus, verbose=1)(delayed(load_npz)(f) for f in data_list)

    datasets = [NumpyData(x) for x in datas]
    total_data = ConcatDataset(datasets)
    train_data_loader = DataLoader(total_data, batch_size=cfg.vae_batch_size, shuffle=True, num_workers=10, pin_memory=False)

    print('Total frames: {}'.format(len(total_data)))

    model = torch.nn.DataParallel(VAE()).cuda()
    optimizer = torch.optim.Adam(model.parameters(), lr=cfg.vae_lr)

    for epoch in range(cfg.vae_num_epoch):
        current_loss = 0
        now = time.time()
        for idx, imgs in enumerate(train_data_loader):
            data_duration = time.time() - now

            now = time.time()
            imgs = imgs.float().cuda() / 255.0
            mu, logvar, imgs_rc, z = model(imgs)

            r_loss = (imgs_rc - imgs).pow(2).view(imgs.size(0), -1).sum(dim=1).mean()

            kl_loss = - 0.5 * torch.sum(1 + logvar - mu.pow(2) - logvar.exp(), dim=1)
            min_kl = torch.zeros_like(kl_loss) + cfg.vae_kl_tolerance * cfg.vae_z_size
            kl_loss = torch.max(kl_loss, min_kl).mean()

            loss = r_loss + kl_loss

            optimizer.zero_grad()
            loss.backward()
            optimizer.step()
            current_loss += loss.item() * imgs.size(0)

            model_duration = time.time() - now
            total_duration = data_duration + model_duration
            if idx % 10 == 0:
                info = "Epoch {:2d}\t Step [{:5d}/{:5d}]\t Loss {:6.3f}\t R_Loss {:6.3f}\t \
                        KL_Loss {:6.3f}\t Maxvar {:6.3f}\t Speed {:6.3f}\t Time: [{:.5f}/{:.5f}]\t".format(
                    epoch, idx, len(train_data_loader), loss.item(), r_loss.item(),
                    kl_loss.item(), logvar.max().item(), imgs.size(0) / total_duration, data_duration, total_duration)
                logger.log(info)

            now = time.time()


        to_save_data = {'model': model.module.state_dict(), 'loss': current_loss}
        to_save_path = '{}/vae_{}_e{:03d}.pth'.format(cfg.model_save_dir, cfg.timestr, epoch)
        torch.save(to_save_data, to_save_path)
Esempio n. 11
0
    def __init__(self, name, device=None, logger=None):
        self._name = name
        self._device = device
        self._hw_callback = None
        self._logger = logger or Logger()

        super(SensorDriver, self).__init__(name,
                                           self._device,
                                           self._process,
                                           logger=logger)
Esempio n. 12
0
    def __init__(self, driver_if=None, driver_cb=None, debug_if=None, debug_cb=None, cal_if=None, cal_cb=None, logger=None):

        self._driver_if = driver_if #or MockPsocDriver()
        self._debug_if = debug_if
        self._cal_if = cal_if

        self._driver_cb = driver_cb
        self._debug_cb = debug_cb
        self._cal_cb = cal_cb
        self._logger = logger or Logger()
Esempio n. 13
0
def module_test(selection):
    def callback(msg):
        logger.debug(msg)

    logger = Logger()
    if selection == 'can':
        pass
    elif selection == 'i2c':
        PsocHwFactory.create_i2c(callback, logger)
    elif selection == 'mock':
        pass
Esempio n. 14
0
    def __init__(self, theLogger=Logger()):
        self.log = theLogger

        self.jsonFactory = JsonFactory()

        self.logLines = []
        self.logEntryList = []
        self.json2pyFailedList = []
        self.json2pyFailedErrorList = []

        self.numControlChars = 0
Esempio n. 15
0
def run_multi(func, name, i):
    log_name = os.path.join(log_dir, '%d.%s.log' % (i, name))
    log = Logger(strm=open(log_name, 'w'))
    li = []
    for j in range(i):
        li.append(func(j))
    for j in range(i):
        li[j].start()
    for j in range(i):
        li[j].join()
        log.log(li[j].get())
    del log
Esempio n. 16
0
def module_test():
    from imuhwfactory import ImuHwFactory

    def callback(msg):
        logger.debug(str(msg))

    logger = Logger()

    imuhw = ImuHwFactory.create_i2c(driver_cb=callback, logger=logger)
    imuhw.start()
    time.sleep(0.05)
    imuhw.shutdown()
Esempio n. 17
0
def module_test():
    import time
    from imuhwfactory import ImuHwFactory

    def callback(msg):
        logger.info("delivered callback msg: {}".format(msg))

    logger = Logger()
    print("ImuHwFactory.create_i2c ...")
    imuhw = ImuHwFactory.create_i2c(callback, logger=logger)
    print("ImuHwFactory.create_i2c complete")
    time.sleep(1)
    imuhw.shutdown()
Esempio n. 18
0
def main():
    # Parse options
    parser = OptionParser(usage='usage: %prog [options] logcatFile',
                          version='%prog 0.1')
    parser.add_option('-v',
                      '--verbose',
                      action='store_true',
                      dest='verbose',
                      default=True)
    parser.add_option('-q', '--quiet', action='store_false', dest='verbose')
    (options, args) = parser.parse_args()

    # Run
    if options.verbose:
        logger = Logger(LogLevel.DEBUG)
    else:
        logger = Logger()
    logAnalyzer = TaintLogAnalyzer(theLogger=logger)
    logAnalyzer.setLogFile(args[0])
    logAnalyzer.extractLogEntries()
    logAnalyzer.postProcessLogObjects()
    logAnalyzer.printOverview()
Esempio n. 19
0
def module_test():
    import logging
    from i2cdevice import I2CDevice

    logger = Logger()

    logger.debug("Start Module Test")

    i2c_device = I2CDevice(I2CDevice.DEV_I2C_1, logger=logger)
    imu = ImuDevice(name="imu device",
                    device=i2c_device,
                    timeout=5,
                    logger=logger)

    logger.debug("End Module Test")
def main():
    # Parse options
    parser = OptionParser(usage='usage: %prog [options] apk', version='%prog 0.1')    
    parser.add_option('', '--sdkPath', metavar='<path>', help='Set path to Android SDK')
    parser.add_option('-v', '--verbose', action='store_true', dest='verbose', default=True)
    parser.add_option('-q', '--quiet', action='store_false', dest='verbose')
    (options, args) = parser.parse_args()

    # Run   
    if options.verbose:
        logger = Logger(LogLevel.DEBUG)
    else:
        logger = Logger()
    apk = APKWrapper(args[0], theSdkPath=options.sdkPath, theLogger=logger)
    print apk.getManifest()
    print apk.getActivityNameList()
    print apk.getMainActivityName()
    print apk.getServiceNameList()
    print 'MD5 %s' % apk.getMd5Hash()
    print 'SHA256 %s' % apk.getSha256Hash()

    import codecs
    report = codecs.open('xxx', "w", "utf-8")
    report.write('md5: %s' % apk.getMd5Hash())
Esempio n. 21
0
def master(comm):
    logger = Logger("{}/es_train_{}.log".format(cfg.logger_save_dir, cfg.timestr))
    logger.log(cfg.info)
    controller = Controller()
    es = cma.CMAEvolutionStrategy(flatten_controller(controller), cfg.es_sigma, {'popsize': cfg.population_size})


    for step in range(cfg.es_steps):
        solutions = es.ask()
        for idx, solution in enumerate(solutions):
            comm.send(solution, dest=idx+1, tag=1)

        check = np.ones(cfg.num_workers)
        rewards = []
        for idx in range(cfg.num_workers):
            reward = comm.recv(source=idx+1, tag=2)
            rewards.append(reward)
            check[idx] = 0

        assert check.sum() == 0
        assert len(rewards) == cfg.num_workers

        r_cost = - np.array(rewards)
        reg_cost = l2_reg(solutions)
        cost =  reg_cost + r_cost
        es.tell(solutions, cost.tolist())

        sigma = es.result[6]
        rms_var = np.mean(sigma * sigma)



        info = "Step {:d}\t Max_R {:4f}\t Mean_R {:4f}\t Min_R {:4f}\t RMS_Var {:4f}\t Reg_Cost {:4f}\t R_Cost {:4f}".format(
                step, max(rewards), np.mean(rewards), min(rewards), rms_var, r_cost.mean(), reg_cost.mean())
        logger.log(info)

        if step % 25 == 0:
            current_param = es.result[5]
            current_controller = deflatten_controller(current_param)
            save_path = "{}/controller_curr_{}_step_{:05d}.pth".format(cfg.model_save_dir, cfg.timestr, step)
            torch.save({'model': current_controller.state_dict()}, save_path)

            best_param = es.result[0]
            best_controller = deflatten_controller(best_param)
            save_path = "{}/controller_best_{}_step_{:05d}.pth".format(cfg.model_save_dir, cfg.timestr, step)
            torch.save({'model': best_controller.state_dict()}, save_path)
    def __init__(self, theApkFile, theSdkPath='', theLogger=Logger()):
        self.apkFile = theApkFile
        self.sdkPath = Utils.addSlashToPath(theSdkPath)
        self.log = theLogger

        self.sampleId = random.randint(1, 1000000)
        self.apkFileName = Utils.splitFileIntoDirAndName(theApkFile)[1]
        self.apkPath = Utils.splitFileIntoDirAndName(theApkFile)[0]
        self.package = ''
        self.manifest = {'activityList':[],
                         'activityAliasList':[],
                         'serviceList':[],
                         'receiverList':[],
                         'providerList':[],
                         'uses-permission':[]}
        
        self.__extractFromPermissions()
        self.__extractApplication()
Esempio n. 23
0
def module_test():
    from i2cdevice import I2CDevice
    import time
    logger = Logger()

    logger.debug("Performing module test")

    try:
        i2c_device = I2CDevice(device=I2CDevice.DEV_I2C_1, logger=logger)
    except I2CDeviceError as err:
        logger.fatal("Unable to instantiate Psoc hardware", err)

    psoc_device = PsocI2CDevice(name='psoc device', device=i2c_device)

    for i in range(10):
        msg = psoc_device.recv()
        logger.debug(msg)
        time.sleep(1)
Esempio n. 24
0
def module_test():
    import time
    from ..devices.i2cdevice import I2CDevice
    from ..devices.psocdevice import PsocI2CDevice

    def callback(msg):
        logger.debug("{} - {}".format(time.time(), msg))

    logger = Logger()

    logger.debug("{} {}".format(__name__, " Module Test"))

    i2c_device = I2CDevice(device=I2CDevice.DEV_I2C_1)
    device = PsocI2CDevice(name='psoc device', device=i2c_device)
    driver = PsocDriver(name='psochw i2c driver', device=device)

    driver.start(callback)
    time.sleep(5)
    driver.stop()
Esempio n. 25
0
def get_structured_events():
    currency_markup = MarkupCurrency()
    timestamp = datetime.datetime.now()
    today = datetime.datetime.now()
    blob_name = "%s_%s_%s" % (today.year, today.month, today.day)

    logger = Logger()
    scrappers = {
        "relax": RelaxScrapper(logger),
        "citydog": CityDogScrapper(logger),
        "tutby": TutByScrapper(logger)
    }

    for source, scrapper in scrappers.items():
        print(source)
        events = scrapper.list_events()
        write_events_to_blob(blob_name + "\\%s.json" % source, events, currency_markup, timestamp, logger)

    return blob_name
Esempio n. 26
0
def vae_extract():
    logger = Logger("{}/vae_extract_{}.log".format(cfg.logger_save_dir,
                                                   cfg.timestr))
    logger.log(cfg.info)

    print("Loading Dataset")
    data_list = glob.glob(cfg.seq_save_dir + '/*.npz')
    data_list.sort()
    N = len(data_list) // 4

    procs = []
    for idx in range(4):
        p = Process(target=extract,
                    args=(data_list[idx * N:(idx + 1) * N], idx, N))
        procs.append(p)
        p.start()
        time.sleep(1)

    for p in procs:
        p.join()
    def __init__(self,
                 theSdkPath='',
                 thePort=5554,
                 theImageDirPath='',
                 theRunHeadlessFlag=False,
                 theAvdName=None,
                 theLogger=Logger()):
        self.sdkPath = Utils.addSlashToPath(theSdkPath)
        self.port = thePort
        self.imageDirPath = Utils.addSlashToPath(theImageDirPath)
        self.runHeadless = theRunHeadlessFlag
        self.log = theLogger

        self.avdName = theAvdName

        self.emulator = None

        self.logcatRedirectFile = ''
        self.logcatRedirectProcess = None

        self.adbProcess = None
Esempio n. 28
0
def module_test():
    from psochwfactory import PsocHwFactory
    def callback(msg):
        logger.debug("delivered callback msg: {}".format(msg))

    logger = Logger()

    logger.debug("{} {}".format(__name__, "Module Test"))

    #psochw = PsocHwFactory.create_can(callback)
    #time.sleep(1)
    #psochw.shutdown()

    psochw = PsocHwFactory.create_i2c(callback, logger=logger)
    logger.debug("Starting psochw ...")
    psochw.start()
    logger.debug("Started")
    time.sleep(0.01)
    logger.debug("Shutting down psochw ...")
    psochw.shutdown()
    logger.debug("Shutdown")
Esempio n. 29
0
    def create_i2c(cls, driver_cb, logger=None):
        if not logger:
            logger = Logger()

        logger.debug("({}) - Creating I2CDevice ...".format(__name__))
        try:
            i2c_device = I2CDevice(device=I2CDevice.DEV_I2C_1, logger=logger)
        except I2CDeviceError as err:
            raise PsocHwFactoryError("Unable to instantiate Psoc hardware",
                                     err)
        logger.debug("({}) - Complete".format(__name__))

        logger.debug("({}) - Creating PsocI2CDevice ...".format(__name__))
        try:
            device = PsocI2CDevice(name='psoc device',
                                   device=i2c_device,
                                   logger=logger)
        except PsocDeviceError as err:
            raise PsocHwFactoryError("Unable to instantiate Psoc hardware",
                                     err)
        logger.debug("({}) - Complete".format(__name__))

        logger.debug("({}) - Creating PsocDriver ...".format(__name__))
        try:
            driver = PsocDriver(name='psochw i2c driver',
                                device=device,
                                logger=logger)
        except PsocDriverError as err:
            raise PsocHwFactoryError("Unable to instantiate Psoc hardware",
                                     err)
        logger.debug("({}) - Complete".format(__name__))

        logger.debug("({}) - Creating PsocHw ...".format(__name__))
        try:
            return PsocHw(driver_if=driver, driver_cb=driver_cb, logger=logger)
        except PsocHwError as err:
            raise PsocHwFactoryError("Unable to instantiate Psoc hardware",
                                     err)
        logger.debug("({}) - Complete".format(__name__))
Esempio n. 30
0
    def __init__(self, name, device=None, timeout=5, logger=None):
        """
        Initialize the ImuDevice
        :param timeout: the amount of time to wait for calibration status to settle
        :return: None
        """
        super(ImuDevice, self).__init__(name)

        self._logger = logger or Logger()
        self._device = device or MockDevice('mock device')
        self._msg_gen = None

        try:
            self._bno = BNO055(i2c=self._device)
        except I2CDeviceError as err:
            raise ImuDeviceError("Unable to instantiate BNO055", err)

        self._start_hardware(timeout)

        # Mapping between message ids and functions in the BNO055 instance
        # The lambda is need to ensure the Message is dynamically created and data is reacquired each cycle.
        self._msgs = [
            lambda: Message(type=MSG_ID_EULER,
                            data=EulerData(*self._bno.read_euler())),
            lambda: Message(type=MSG_ID_MAGNETIC,
                            data=MagneticData(*self._bno.read_magnetometer())),
            lambda: Message(type=MSG_ID_LINEAR_ACCEL,
                            data=LinearAccelData(*self._bno.
                                                 read_linear_acceleration())),
            lambda: Message(type=MSG_ID_ANGULAR_VELOCITY,
                            data=AngularVelocityData(*self._bno.read_gyroscope(
                            ))), lambda:
            Message(type=MSG_ID_ORIENTATION,
                    data=OrientationData(*self._bno.read_quaternion())),
            lambda: Message(type=MSG_ID_TEMPERATURE,
                            data=TemperatureData(*self._read_temp_wrapper()))
        ]

        self._msg_cycle = None