标签: peripherals

HTML5可以与扫描仪和信用卡读卡器等外围设备通信吗?

我的公司编写安装在客户端计算机上的软件来执行销售点交易.该软件可与各种外围设备(收据打印机,条形码扫描仪,信用卡读卡器等)连接.我们使用Microsoft OPOS库在Visual Studio中创建的WinForms应用程序执行此操作,后者又与我们的云服务器(客户端 - 服务器模型)进行通信.

该模型明显效率低下,主要是更新.我正在研究通过网络与这些外围设备进行通信的其他方式,最好是通过网络浏览器.据我所知,Java是唯一可以做我们正在寻找的技术之一(通过applet),我也认为Adobe Flash也可以(通过Air平台).这些是可行的,但不是优选的,因为我们希望在支持Web的移动设备上运行我们的软件.

有没有人建议通过网络与外围设备进行通信的其他方式?

peripherals html5

65
推荐指数
3
解决办法
6万
查看次数

将iOS 6设备作为BLE外围设备运行

众所周知,iOS 6支持运行设备(iPhone 4s及更高版本,以及新iPad)作为BLE外设.WWDC 2012 Session 705中有一个名为"高级核心蓝牙"的演示.我问过Apple的源代码.他们发给我一个修改后的源代码版本(BTLE_Transfer_Draft).然后我:

  • 在"外设模式"下在iPhone 5(iOS 6)中运行应用程序并启动"广告"
  • 在"中央模式"下在新iPad(iOS 5.1.1)中运行应用程序

问题是外围设备从未被发现过.所以我使用其他测试应用程序,包括从App Store下载的一些.所有人都未能发现外围设备.我认为问题应该在BTLE_Transfer_Draft中.因为我不确定是否允许我提供整个源代码.所以我只在这里展示"外围模式"部分:

- (void)viewDidLoad {
    [super viewDidLoad];

    // Start up the CBPeripheralManager
    _peripheralManager = [[CBPeripheralManager alloc] initWithDelegate:self queue:nil];
}

- (void)peripheralManagerDidUpdateState:(CBPeripheralManager *)peripheral {
    // Opt out from any other state
    if (peripheral.state != CBPeripheralManagerStatePoweredOn) {
        return;
    }

    // We're in CBPeripheralManagerStatePoweredOn state...
    NSLog(@"self.peripheralManager powered on.");

    // ... so build our service.

    // Start with the CBMutableCharacteristic
    self.transferCharacteristic = [[CBMutableCharacteristic alloc] initWithType:[CBUUID UUIDWithString:TRANSFER_CHARACTERISTIC_UUID]
                                                                  properties:CBCharacteristicPropertyNotify
                                                                       value:nil
                                                                 permissions:CBAttributePermissionsReadable];

    // Then the service …
Run Code Online (Sandbox Code Playgroud)

peripherals ios core-bluetooth

16
推荐指数
2
解决办法
2万
查看次数

覆盆子BLE外围设备替代bleno

到目前为止,我已经开发了几个程序,用于我的Raspberry Rpi2和RPi3,作为使用bleno的 BLE perifpherals.有没有人可以告诉我,如果有替代Bleno的东西,在Python中甚至更好用C语言,为我的Raspberry开发BLE外围设备服务的代码?

python peripherals bluetooth-lowenergy bleno

16
推荐指数
1
解决办法
2598
查看次数

通过USB控制简单的继电器开关

我正在寻求通过USB连接到计算机的简单继电器开关控制电源供电.

继电器开关甚至不是USB设备,它只是一个简单的开关,需要USB电压才能打开它.当电压降至阈值以下时,开关将关闭灯.

我的问题是我无法控制USB端口的电源输出.我很高兴在Windows或Linux上使用任何语言(但最好是Java,因为我已经习惯了).

peripherals usb controls device power-management

15
推荐指数
2
解决办法
6万
查看次数

蓝牙外设ADVERTISE_FAILED_DATA_TOO_LARGE

我试图在NEXUS 9中做广告并得到ADVERTISE_FAILED_DATA_TOO_LARGE的错误.在成功通告后添加服务时,它工作得非常好但是如果我通过"广告数据"构建器添加服务以便其他设备可以在扫描时进行过滤,则会收到错误代码1,即ADVERTISE_FAILED_DATA_TOO_LARGE

a)工作准则

     public void startAdvertisingService() {
    AdvertiseSettings settings = new AdvertiseSettings.Builder()
            .setTxPowerLevel(AdvertiseSettings.ADVERTISE_TX_POWER_HIGH)
            .setTimeout(0)
            .setAdvertiseMode(AdvertiseSettings.ADVERTISE_MODE_LOW_LATENCY)      
            .build();


     AdvertiseData.Builder advertiseData = new AdvertiseData.Builder();
    advertiseData.setIncludeDeviceName(true);

     BluetoothLeAdvertiser myBluetoothLeAdvertiser = btAdapter.getBluetoothLeAdvertiser();
      myBluetoothLeAdvertiser.stopAdvertising(mAdvertiseCallback);

    myBluetoothLeAdvertiser.startAdvertising(settings, advertiseData.build(),mAdvertiseCallback);

   }
    private AdvertiseCallback mAdvertiseCallback = new AdvertiseCallback() {

    @Override
    public void onStartSuccess(AdvertiseSettings settingsInEffect) {
        super.onStartSuccess(settingsInEffect);
        BLEBroadcast();
    }

    @Override
    public void onStartFailure(int errorCode) {
        String description = "";
        if (errorCode == AdvertiseCallback.ADVERTISE_FAILED_FEATURE_UNSUPPORTED)
            description = "ADVERTISE_FAILED_FEATURE_UNSUPPORTED";
        else if (errorCode == AdvertiseCallback.ADVERTISE_FAILED_TOO_MANY_ADVERTISERS)
            description = "ADVERTISE_FAILED_TOO_MANY_ADVERTISERS";
        else if (errorCode …
Run Code Online (Sandbox Code Playgroud)

peripherals android bluetooth bluetooth-lowenergy cbperipheral

11
推荐指数
2
解决办法
6216
查看次数

MacOS - 检测相机何时打开/关闭

我想根据 MBP 上的相机使用情况自动化个人工作流程。

基本上我想知道是否有任何相机(内置或 USB)已打开或关闭,以便我可以运行我将创建的程序或脚本。

我认为如果我需要轮询相机状态也可以,但基于事件或回调的解决方案将是理想的

peripherals macos camera automation

11
推荐指数
2
解决办法
987
查看次数

如何从C#循环USB设备?

我想在某个事件被触发后循环(模拟拔出并重新插入)USB设备(调制解调器).我在codeproject上找到了一个示例:

http://www.codeproject.com/KB/system/usbeject.aspx

这允许我通过其非易失性串口识别+弹出设备,但我需要它来回收,而不仅仅是弹出.

我读过这个:

http://www.tech-archive.net/Archive/Development/microsoft.public.development.device.drivers/2005-02/1292.html

我不明白.

其他USB相关帖子中已经提到过:

http://www.codeproject.com/KB/system/DriveDetector.aspx

这与我的问题无关.

c# api peripherals usb stack

9
推荐指数
1
解决办法
2万
查看次数

iOS BLE外设/广告数据在后台模式

我正在开发一个系统,它有一个BLE设备(TI CC2540)作为Central,一个iOS应用程序在iPhone4S上作为外围设备.一切正常,除了我需要的1个功能:来自中心侧的白名单(过滤)广告设备.

据我所知,iOS设备使用随机可解析的MAC地址,因此我们无法应用基于MAC地址的白名单.

所以我目前的方法是:在iOS app的广告数据上放置一个ID"Local name"字段(iOS设备充当外围设备),中央设备将根据检索到的广告数据进行扫描和过滤.除非app在后台,否则此方法有效.

当我的应用程序放在后台时,广告数据被截断,我的"本地名称"不会出现在空中.从corebluetooth的头文件,我看到app在后台时只有"溢出区"数据可以在广告数据中,但只有iOS设备才能读取该区域.

所以这里的任何人都可以点亮我如何将自定义数据添加到广告包中,即使在后台模式下,或任何其他具有此过滤功能的解决方案.

任何评论都会对我有所帮助.

peripherals ios bluetooth-lowenergy

9
推荐指数
1
解决办法
5301
查看次数

BLE外设吞吐量限制

我们正在开发一种可与iPad配合使用的BLE传感器外设,它需要使用TI CC2541 BLE模块和自定义配置文件的BLE通知特性(无应答)的以下吞吐量数据:

每10ms一个20字节(GATT最大标准数据包),或者因为我们似乎每个连接间隔限制4个数据包,这相当于每40ms一个连接间隔.所需吞吐量为每秒2,000字节,TI网站建议将CC2541 BLE解决方案用于需要此级别数据吞吐量的多个传感器设备.

BLE模块的配置文件设置为最小和最大连接间隔分别为20ms和40ms,这应该足够了."Apple产品的蓝牙配件设计指南"文档表明,我们设置的最小和最大连接间隔如上所述是正确的.我们在新的Mac Mini/Mac Book上使用适用于iOS 6的最新iPad和Apple工具.

通过iPad上的简单测试程序,我们可以使链接能够以20ms的间隔向BLE外设发送20字节数据包,但是一旦我们按需要将其降低到10ms,我们就开始丢失数据包或者获取损坏的数据包,我们有FIFO空中断关闭,因此我们可以更快地处理向BLE模块FIFO的发送,我们使用最大波特率230400将20字节数据包从微处理器发送到BLE TX FIFO.

我们意识到我们处于BLE转移限制的最高端,并且是可能的.任何人都可以建议使用带有最新iPad的TI CC2541 BLE芯片/模块是否有解决方案来实现每秒2000字节的吞吐量?

peripherals throughput ios bluetooth-lowenergy

9
推荐指数
2
解决办法
1万
查看次数

连续扫描iOS CoreBluetooth Central Manager?

低功耗蓝牙规范并未说明外设是否可以一次连接到多个中心,但我的测试经验告诉我他们不能.

因为我的应用程序需要与外围设备的非占有关系(即没有连接,这会阻止其他连接),并且需要不断更新其RSSI值,我正在寻找一种方法来连续扫描外设并捕获它们的RSSI值.

scanForPeripheralsWithServices方法似乎扫描一定的间隔然后停止.我相信我最好的选择是一次扫描3秒,stopScan,等待(几秒钟),然后重新开始扫描.重复.

任何人都可以指出一种更好的方法吗?例如,配置外围设备以连接到多个Central?

peripherals bluetooth ios core-bluetooth bluetooth-lowenergy

8
推荐指数
2
解决办法
6190
查看次数