Пример #1
0
// HDX reads data in Half Duplex mode
// first we energise the TAG for long enough that it charges up
// then we use sniffer to read response
// each bit is 16 ticks, a 1 is 124.2 KHz and a 0 is 134.2 KHz
// activation frequency is 134.2 KHz (745 FCs))
BOOL hdx_get_uid(BYTE *response)
{
    BYTE i;
    BYTE tmp[HDX_DATABITS];
    
    // this is a work in progress, so until reading produces any data, return empty
    return FALSE;

    // energise tag & wait for wakeup period
    InitHWReaderClock(OC_TOGGLE_PULSE, 745 / 2L, 745, RWD_STATE_ACTIVE);
    Delay_us((RFIDlerConfig.FrameClock * RFIDlerConfig.RWD_Wake_Period) / 100);

    // switch off clock and switch to sniffer mode
    detect_init();

    // read to temporary array for speed
    for(i= 0 ; i < HDX_DATABITS ; ++i)
        tmp[i]= read_external_clock_burst(16) / 1000L;

    // convert to binary based on freq +- 3
    for(i= 0 ; i < HDX_DATABITS ; ++i)
    {
        if (tmp[i] >= 122 && tmp[i] <= 128)
            tmp[i]= 0x01;
        else
            if (tmp[i] >= 129 && tmp[i] <= 135)
                 tmp[i]= 0x00;
            else
                return FALSE;
    }
    binarraytohex(response, tmp, HDX_DATABITS);
    return TRUE;
}
Пример #2
0
void stride_init(void)
{
#ifdef APE
	detect_init();
#else
	decoder_init();
#endif
}
Пример #3
0
void decoder_init(void)
{
	detect_init();
}
Пример #4
0
static int camera_detect_probe(struct platform_device *pdev)
{
    int ret = 0;
    const char *detect_status = NULL;
    struct device_node *fdt_node;
    
    DBG_INFO("");
    fdt_node = of_find_compatible_node(NULL, NULL, CAMERA_DETECT_NAME);
    if (NULL == fdt_node) {
        DBG_ERR("err: no ["CAMERA_DETECT_NAME"] in dts");
        return -1;
    }

    ret = of_property_read_string(fdt_node, "status", &detect_status);
    if (ret == 0 && strcmp(detect_status, "okay") != 0) {
        printk(KERN_DEBUG"%s camera detect disabled by DTS in %s\n",__func__,fdt_node->full_name);
        return -ENODEV;
    }

    ret = detect_init();
    if (ret) {
        DBG_ERR("module detect init error.");
        goto exit;
    }

    rear_kobj = kobject_create_and_add(CAMERA_REAR_NAME, NULL);
    if (rear_kobj == NULL) {  
        DBG_ERR("kobject_create_and_add failed.");
        ret = -ENOMEM;  
        goto kobject_create_err;
    }  
	front_kobj = kobject_create_and_add(CAMERA_FRONT_NAME, NULL);
    if (front_kobj == NULL) {  
        DBG_ERR("kobject_create_and_add failed.");
        ret = -ENOMEM;  
        goto kobject_create_err;
    }  
    
    ret = sysfs_create_file(front_kobj, &dev_attr_front_name.attr);
    if (ret < 0){
        DBG_ERR("sysfs_create_file front_name failed.");
        goto sysfs_create_err;
    }
	 ret = sysfs_create_file(front_kobj, &dev_attr_front_offset.attr);
    if (ret < 0){
        DBG_ERR("sysfs_create_file front_offset failed.");
        goto sysfs_create_err;
    }
    ret = sysfs_create_file(rear_kobj, &dev_attr_rear_name.attr);
    if (ret < 0){
        DBG_ERR("sysfs_create_file rear_name failed.");
        goto sysfs_create_err;
    }
	 ret = sysfs_create_file(rear_kobj, &dev_attr_rear_offset.attr);
    if (ret < 0){
        DBG_ERR("sysfs_create_file rear_offset failed.");
        goto sysfs_create_err;
    }

    ret = sysfs_create_file(rear_kobj, &dev_attr_status.attr);
    if (ret < 0){
        DBG_ERR("sysfs_create_file status failed.");
        goto sysfs_create_err;
    }  
    
    camera_detect_status = 0;
    INIT_DELAYED_WORK(&g_work, detect_work);
    schedule_delayed_work(&g_work, DELAY_INTERVAL);
    
    return 0;
    
sysfs_create_err:  
    kobject_del(rear_kobj);
	kobject_del(front_kobj);

kobject_create_err:

exit:
    detect_deinit();

    return ret;
}