标签: hardware-interface

哪些三星设备不支持Android的原生指纹API?

我假设在marshmallow支持指纹API之前没有带OS的手机.

我的问题是:

(a)使用棉花糖发布的所有/任何三星手机都支持android指纹API

(b)操作系统升级为棉花糖的三星手机是否支持Android指纹API?

我读过这些:

在Samsung S5上使用Android 6.0 Fingerprint API时未检测到指纹扫描程序

三星galaxy note 4指纹未找到

对于Samsung Note 4,Android FingerPrint API isHardwareDetected返回false

指纹传感器6.0以上的设备未使用Android指纹SDK

但没有明确的答案.三星的网站还提到所有三星设备都支持Pass SDK,但没有提到android指纹API支持

android version hardware-interface samsung-mobile-sdk android-fingerprint-api

10
推荐指数
1
解决办法
1979
查看次数

如何在C#中获取来电显示?

您好我想使用56K调制解调器获取拨打家庭电话的电话号码,有没有办法用C#实现这一目标?

c# modem serial-port hardware-interface caller-id

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

SetupDiGetClassDevs是否与文档中的设备实例ID一起使用?

根据MSDN文档,可以传递SetupDiGetClassDevs 设备实例ID以获取特定设备的设备信息集:

要仅返回特定设备,请设置DIFCF_DEVICEINTERFACE标志并使用Enumerator参数提供设备的设备实例ID.

我通过解析WM_DEVICECHANGE消息DBT_DEVICEARRIVAL事件中的符号名称来获取设备实例ID ,并且通过将结果ID与从SetupDiGetDeviceInstanceId返回的ID进行比较来验证结果ID .即使传递操作系统提供的设备实例ID也不起作用(即SetupDiGetClassDevs调用失败ERROR_INVALID_PARAMETER).

我当前SP_DEVINFO_DATA为新到设备获取结构的解决方法是枚举同一类中的所有设备,并将SetupDiGetDeviceInstanceId的结果与符号名称进行比较.但是,根据文件,我不明白为什么这是必要的......

有没有人让SetupDiGetClassDevs以这种方式工作?有没有更好的方法可以使用DBT_DEVICEARRIVAL事件中的数据获取设备的更多信息?

windows winapi device hardware-interface setupapi

8
推荐指数
1
解决办法
6988
查看次数

两个.NET线程和硬件访问的问题

我正在创建一个通过FT2232H USB/RS232转换器与设备通信的应用程序.对于通信我正在使用FTDI网站上的FTD2XX_NET.dll库.
我正在使用两个线程:

  • 第一个线程连续从设备读取数据
  • 第二个线程是Windows窗体应用程序的主线程

    当我在接收器的线程运行时尝试将任何数据写入设备时,我遇到了问题.主线程只是挂起在ftdiDevice.Write函数上.

    我尝试同步两个线程,以便只有一个线程可以同时使用读/写功能,但它没有帮助.

    下面的代码负责沟通.请注意,以下函数是FtdiPort类的方法.

    接收者的线程

    
            private void receiverLoop()
            {
                if (this.DataReceivedHandler == null)
                {
                    throw new BackendException("dataReceived delegate is not set");
                }
    
                FTDI.FT_STATUS ftStatus = FTDI.FT_STATUS.FT_OK;
                byte[] readBytes = new byte[this.ReadBufferSize];
    
                while (true)
                {
                    lock (FtdiPort.threadLocker)
                    {
                        UInt32 numBytesRead = 0;
    
                        ftStatus = ftdiDevice.Read(readBytes, this.ReadBufferSize, ref numBytesRead);
    
                        if (ftStatus == FTDI.FT_STATUS.FT_OK)
                        {
                            this.DataReceivedHandler(readBytes, numBytesRead);
                        }
                        else
                        {
                            Trace.WriteLine(String.Format("Couldn't read data from ftdi: status {0}", ftStatus));
                            Thread.Sleep(10);
                        }                    
                    }
                    Thread.Sleep(this.RXThreadDelay);
    
                }
            }
    
    Run Code Online (Sandbox Code Playgroud)


    从主线程调用的写函数

        public void Write(byte[] data, …
    Run Code Online (Sandbox Code Playgroud)
    Run Code Online (Sandbox Code Playgroud)
  • c# multithreading hardware-interface

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

    "#include <asm/io.h>"导致"错误:asm/io.h:没有这样的文件或目录"

    我正在使用gentoo并尝试编译程序来控制并行端口上的位.这条线靠近它的顶部:

    #include <asm/io.h>
    
    Run Code Online (Sandbox Code Playgroud)

    当我尝试在其上使用gcc时,它会产生以下输出:

    port.c:4:20:错误:asm/io.h:没有这样的文件或目录

    "找到asm/io.h"yeilds(除其他外):

    /usr/src/linux-2.6.32-gentoo/arch/x86/include/asm/io.h

    所以我有头文件,但它找不到它?为什么这不起作用?

    c gentoo hardware-interface parallel-port

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

    如何模拟内存映射的I/O.

    我有一些我想模仿的硬件; 我想知道我是否可以在这样的低水平做到这一点.硬件有很多寄存器,我在一个结构中排列:

    #include <stdint.h>
    struct MyControlStruct
    {
        uint32_t data_reg_1;
        uint32_t data_reg_2;
        uint32_t dummy[2]; // to make the following registers have certain addresses
        uint32_t control_reg_1;
        uint32_t control_reg_2;
    };
    volatile struct MyControlStruct* MyDevice = (struct MyControlStruct*)0xDeadF00;
    
    Run Code Online (Sandbox Code Playgroud)

    所以,我想在Windows和Linux上支持以下硬件访问语法:

    MyDevice->data_reg_1 = 42;
    MyDevice->data_reg_2 = 100;
    MyDevice->control_reg_1 = 1;
    
    Run Code Online (Sandbox Code Playgroud)

    当最后一行代码执行时,我希望硬件模拟器"唤醒"并做一些事情.我可以在Windows和/或Linux上实现这个吗?我想过以某种方式捕获"分段故障"信号,但不确定这是否可以在Windows上完成,或者根本不能.

    我查看了手册页mmap; 它似乎可以帮助,但我无法理解我如何使用它.

    当然,我可以通过定义类似的函数来抽象对硬件的访问WriteToMyDevice,并且一切都很简单(也许),但我想了解我是否可以以这种方式安排访问我的硬件.

    c hardware-interface memory-mapping

    7
    推荐指数
    1
    解决办法
    1731
    查看次数

    如何集成/单元测试软件硬件接口

    我正在开发一个构建机器人的小型有趣项目.我们作为程序员正在与建造机器人的人并行工作.因此,我们经常尝试运行已更改的软件并且构建器已更改硬件.如果软件测试没有运行,那么确定软件或硬件是否出现故障总是很难,如果集成失败则更糟糕.有一些硬件可以自动测试这个问题.

    我们已经找到了一些破坏方法,所以我们有控制权让机器人在没有软件的情况下通过一些动作来确保他仍在工作.然后我们开始一些软件测试,使机器人运行一些定义的数字,以显示软件的行为与以前一样.但这总是归结为一个非常耗时的任务,因为你不能自动化它,有人必须开始测试,观察测试并试图弄清楚机器人是否应该做它应该做的事情.

    另一个问题是,使用我们的真实硬件进行的持续测试会损坏我们的硬件,接头,电机,齿轮等部件.

    但是,测试已经证明不会造成太多麻烦并且消耗了太多时间,我想知道在处理硬件软件交互的其他项目中使用了哪种技术,以及是否有可以使用的工具.

    continuous-integration unit-testing hardware-interface

    6
    推荐指数
    1
    解决办法
    4135
    查看次数

    如何在PHP中读取RS232串口,就像这个QBasic程序一样

    我正在尝试将以下小型QBASIC程序(可以100%工作)移植到PHP:

    OPEN "com1:2400,n,8,1,DS," FOR RANDOM AS #3
    OPEN "data.dat" FOR OUTPUT AS #2
    REM read 17 chars from the port
    scale$ = INPUT$(17, #3)
    PRINT scale$
    WRITE #2, scale$
    CLOSE #2
    CLOSE #3
    SYSTEM
    
    Run Code Online (Sandbox Code Playgroud)

    目前我从PHP(在WAMP5上)以编译(exe)形式调用它,但我想摆脱QBASIC并直接从PHP调用它.

    我写了这个PHP函数,但它只是挂在fgets()行:

    function read_port($port='COM1:', $length=17, $setmode=TRUE, $simulate='') {
        if ($simulate){
            $buffer = '"'.strval(rand(1000, 2000));
            return $buffer;
        }
        if ($setmode){
            shell_exec('mode com1: baud=2400 parity=n data=8 stop=1 to=on xon=off odsr=on octs=on dtr=on rts=on idsr=on');
        }
        $fp = fopen($port, "rb+");
        if (!$fp) {
            file_put_contents('debug1.log','COM1: could not open'."\n",FILE_APPEND);
        } else …
    Run Code Online (Sandbox Code Playgroud)

    php hardware-interface qbasic

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

    如何编程数码相框?

    我不确定这是否是这个问题的正确位置,但我找不到关于该主题的任何帖子.

    我想将自己的程序上传到数码相框中.有什么想法怎么做?

    • 语言?
    • 接口?
    • API也许?

    hardware-interface

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

    睡眠(0)和暂停指令的繁忙循环有什么不同?

    我想在我的应用程序中等待一个应该立即发生的事件,所以我不想让我的线程等待并稍后唤醒它。我想知道使用Sleep(0)和硬件暂停指令有什么区别。

    我看不到以下程序的 CPU 利用率有任何差异。我的问题不是关于省电的考虑。

    #include <iostream>
    using namespace std;
    #include <windows.h>
    
    bool t = false;
    int main() {
           while(t == false)
           {
                  __asm { pause } ;
                  //Sleep(0);
           }
    }
    
    Run Code Online (Sandbox Code Playgroud)

    c++ x86 hardware-interface busy-loop lockless

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