我正在尝试从连接到主机模式的Android手机的USB设备中获取一些数据.我能够向它发送数据,但读取失败.
我已经看了几个 例子,尽我所能,但我没有任何USB通信经验,虽然现在我知道了一点,而且我已经坚持了这个,我不得不承认.
我对端点配置不太熟悉,但我知道我的设备使用CDC类型的通信方法,并且输出(从电话到设备)和输入都被注册.
这是使用连接到手机的唯一设备来管理USB连接的整个班级,它没有以任何方式完成,但我希望在我继续前进之前让阅读部分工作.
public class UsbCommunicationManager
{
static final String ACTION_USB_PERMISSION = "com.android.example.USB_PERMISSION";
UsbManager usbManager;
UsbDevice usbDevice;
UsbInterface intf = null;
UsbEndpoint input, output;
UsbDeviceConnection connection;
PendingIntent permissionIntent;
Context context;
byte[] readBytes = new byte[64];
public UsbCommunicationManager(Context context)
{
this.context = context;
usbManager = (UsbManager) context.getSystemService(Context.USB_SERVICE);
// ask permission from user to use the usb device
permissionIntent = PendingIntent.getBroadcast(context, 0, new Intent(ACTION_USB_PERMISSION), 0);
IntentFilter filter = new IntentFilter(ACTION_USB_PERMISSION);
context.registerReceiver(usbReceiver, filter);
}
public void connect()
{
// …Run Code Online (Sandbox Code Playgroud) JDBC 连接器和Debezium SQL Server CDC 连接器有什么区别(或任何其他关系数据库连接器)我应该什么时候选择一个而不是另一个,寻找在两个关系数据库之间同步的解决方案?
不确定这个讨论是否应该是关于 CDC 与 JDBC 连接器,而不是 Debezium SQL Server CDC 连接器,甚至只是 Debezium,期待以后的编辑,取决于给定的答案(虽然我的情况是关于 SQL Server 接收器)。
与您分享我对这个主题的研究,这让我想到了这个问题(作为答案)
有几种类似的Oracle技术 - Oracle Streams,Oracle Change Data Capture和Database Change Notification.
这些有什么区别?
它们与Oracle Advanced Queuing有关吗?
oracle cdc change-data-capture advanced-queuing oracle-streams
Log Sequence Number是什么意思?我知道它是二进制类型和10bytes长,它对应于DB中事务发生的时间.但这是一个高精度的日期时间值,以某种有效的二进制格式存储,或者这是日期时间和其他东西的函数(例如,在相同的毫秒时间内发生的事务的序列号).我做了很多搜索,但找不到合适的答案.
任何人都可以解释用于从日期时间或任何事物中导出LSN的公式或函数.
用于查询表中最新跟踪更改的看似有效的代码Fields:
DECLARE @Begin_LSN BINARY(10), @End_LSN BINARY(10)
SET @Begin_LSN = sys.fn_cdc_get_min_lsn('Fields')
SET @End_LSN = sys.fn_cdc_get_max_lsn()
SELECT * FROM cdc.fn_cdc_get_all_changes_ordering_Fields (@Begin_LSN, @End_LSN, N'all')
GO
Run Code Online (Sandbox Code Playgroud)
生成以下错误消息:
Msg 313, Level 16, State 3, Line 5
An insufficient number of arguments were supplied for the procedure or function cdc.fn_cdc_get_all_changes_ ... .
Run Code Online (Sandbox Code Playgroud)
但是,如果我检查实际值,它们似乎都是有效的(非空),查询
SELECT @Begin_LSN, @End_LSN, N'all';
Run Code Online (Sandbox Code Playgroud)
回报
0x00000000000000000000 0x00002594000002130001 all
Run Code Online (Sandbox Code Playgroud) 我目前正在探索Change Data Capture作为存储时态数据库的选项.它很棒,因为它只存储增量,似乎它可以解决我的问题.当我启用CDC时,会出现一堆表格System Tables.
查询时cdc.dbo_MyTable,我能够看到桌面上发生的所有更改.现在,我将如何构建历史视图?例如,如果我想在特定日期看到我的桌子的状态,我将如何去做呢?这甚至可能吗?
它看起来我需要获取日志并开始将其应用于我的原始表,但我想知道是否有内置的方法来做到这一点.有什么建议?
我正在研究的一些用例:
USB类的名称是什么,它处理与USB设备的通信,这些设备在Window的设备管理器中显示为COM端口?对于linux(至少对于Fedora 17和Ubuntu 12.04),这些端口显示为ACM(抽象控制模型,/ dev/ttyACM#).
据我所知,从历史上看,串行通信主要通过RS-232串口完成,现在已弃用.我相信今天的标准是使用HID通过USB进行通信.
谷歌搜索ACM显示它是CDC(通信设备类)的一部分,它是与HID相反的USB通信类(即USB设备可能使用HID或CDC).这篇维基百科文章揭示了CDC/ACM是一种通过USB模拟RS-232通信的方法.
有了这些信息,这种形式的串行通信不应该被称为"CDC"或"CDC/ACM"吗?
我在大约一周前就SOF提出了一个关于审计SQL数据更改的问题.关于使用触发器的常见问题出现了,在SQL Server 2008中也提到了CDC.
我今天一直在尝试,到目前为止这么好,我看不到它支持的一件事是跟踪谁实际做出了改变.谁执行了这个陈述?
我很想知道是否有人使用CDC进行审核,以及您如何跟踪谁做出了更改?
我们正在尝试在我们的嵌入式平台(700 MHz MIPS 74K,128-256 MB内存)上支持Java环境.在阅读了这篇文章并搜索了一下之后,我想出了一个简短的列表:
我对Java及其运行时环境很陌生.对于在MIPS 74K上运行的Java VM,您有什么建议?