我对读取和写入串口有点困惑.我在Linux中有一个使用FTDI USB串行设备转换器驱动程序的USB设备.当我插入它时,它会创建:/ dev/ttyUSB1.
我认为在C中打开和读/写它很简单.我知道波特率和奇偶校验信息,但似乎没有标准吗?
我错过了什么,或者有人能指出我正确的方向吗?
我上课时遇到了麻烦Parcelable
.麻烦的是,我正在尝试写一个包中的一个成员作为一个ArrayList<Parcelable>
对象.的ArrayList
是Serializable
,和对象(ZigBeeDev
)在列表中的Parcelable
.
这是相关代码:
package com.gnychis.coexisyst;
import java.util.ArrayList;
import java.util.Iterator;
import android.os.Parcel;
import android.os.Parcelable;
public class ZigBeeNetwork implements Parcelable {
public String _mac; // the source address (of the coordinator?)
public String _pan; // the network address
public int _band; // the channel
ArrayList<Integer> _lqis; // link quality indicators (to all devices?)
ArrayList<ZigBeeDev> _devices; // the devices in the network
public void writeToParcel(Parcel out, int flags) {
out.writeString(_mac);
out.writeString(_pan);
out.writeInt(_band); …
Run Code Online (Sandbox Code Playgroud) 我希望能够在我的网络上发现Android设备,并可能检索有关它们的一些设备信息.Apple设备使用Bonjour服务非常容易.但是,我似乎无法在Android上运行任何类似的服务.
这必须在不修改Android设备,安装某些服务或打开某个端口的情况下工作.这意味着以Bonjour帮助您找到香草Apple设备的方式使用vanilla Android设备.即使能够只是验证设备运行Android就足够了.
选择答案:虽然它还不是最受好评的答案,但请看看路易斯的回复.正如他所提到的,您可以使用DNS查找(使用本地DNS服务器)来发现Android设备.我发现这有100%的成功率,因为Android强制设备使用主机名android- _ ____.这显然很难在手机上改变,即使它是根深蒂固的.所以我认为这是一种非常准确的方法.谢谢,路易斯!
Example:
$ nslookup 192.168.1.104 192.168.1.1
Server: 192.168.1.1
Address: 192.168.1.1#53
104.1.168.192.in-addr.arpa name = android-711c129e251f14cf.\001.
Run Code Online (Sandbox Code Playgroud)
示例代码:如果您想在Java中实现此功能(例如,在Android上运行),则无法轻松使用getHostName(),因为它使用外部DNS服务器.例如,您希望在路由器上使用本地DNS服务器.Luis在下面提到你可以修改Wifi连接的DNS服务器,但这可能会破坏其他东西.相反,我发现该dnsjava
库对发送目标DNS请求非常有帮助.以下是使用该库的一些示例代码:
String ipAddress = "104.1.168.192";
String dnsblDomain = "in-addr.arpa";
Record[] records;
Lookup lookup = new Lookup(ipAddress + "." + dnsblDomain, Type.PTR);
SimpleResolver resolver = new SimpleResolver();
resolver.setAddress(InetAddress.getByName("192.168.1.1"));
lookup.setResolver(resolver);
records = lookup.run();
if(lookup.getResult() == Lookup.SUCCESSFUL) {
for (int i = 0; i < records.length; i++) {
if(records[i] instanceof PTRRecord) {
PTRRecord ptr = (PTRRecord) records[i];
System.out.println("DNS Record: …
Run Code Online (Sandbox Code Playgroud) 在我没有编写的大量代码中的某处(但我正在尝试调试),GLib库中的断言失败:
(process:31987): GLib-CRITICAL **: g_hash_table_lookup: assertion `hash_table != NULL' failed
Run Code Online (Sandbox Code Playgroud)
但是,GDB和代码仍在继续.我希望GDB能够打破这个断言失败的地方,这样我才能找出它失败的原因.我没有得到关于这个断言在哪里的更多信息.有没有办法让GDB在这样的失败中打破?
我一直在使用Python中的抽象类ABCMeta
.当你编写一个抽象方法时,你用装饰器标记它@abstractmethod
.我发现奇怪的一件事(和其他语言不同)是当子类重写超类方法时,没有@override
提供类似的装饰器.有谁知道这背后的逻辑是什么?
这使得读取代码的人快速确定哪些方法覆盖/实现抽象方法与仅存在于子类中的方法有点混淆.
我正在尝试检测连接到无线网络的Apple设备.使用Bonjour相对简单,但我也试图检测它是什么类型的设备.比如,MacBook Air,MacBook Pro,MacPro,iPhone,iPod或iPad.
我发现Bonjour对MacBook和MacPros的请求包括对查询的"附加部分"响应,其中包括模型:
;; ADDITIONAL SECTION:
Q9550._device-info._tcp.local. 10 IN TXT "model=MacPro3,1"
Run Code Online (Sandbox Code Playgroud)
和
;; ADDITIONAL SECTION:
Air._device-info._tcp.local. 10 IN TXT "model=MacBookAir4,2"
Run Code Online (Sandbox Code Playgroud)
通过测试iPhone(3GS和4),iPod touch和iPad2,所有iDevices只响应他们的名字:
;; ANSWER SECTION:
111.1.168.192.in-addr.arpa. 10 IN PTR gmPad2.local.
Run Code Online (Sandbox Code Playgroud)
显然,该名称可能无法反映该设备.所以,我不想尝试从名称中推断出设备的类型.有没有人知道检测iDevice类型的任何其他方法?
编辑:为了清楚,我使用的命令是:dig @ 224.0.0.251 -p5353 -x 192.168.1.111 ...替换Apple设备的IP地址
我注意到Google删除了Google App Engine的Finance API.我想要的只是他们在Google财经投资组合中的股票代码清单.有没有办法从最终用户的产品组合中提取这些数据,因为已经删除了API?我正在尝试手动检索它,因为我知道登录名和密码(例如,它是我自己的).
有没有办法通过curl手动检索它,登录到Google服务?看起来应该可以登录并转到我的投资组合页面,检索源代码.
我试过以下代码:
#!/bin/bash
function ClientLogin() {
read -p 'Email> ' email
read -p 'Password> ' -s password
local service=$1
curl -s -d Email=$email -d Passwd=$password -d service=$service https://www.google.com/accounts/ClientLogin | tr ' ' \n | grep Auth= | sed -e 's/Auth=//'
}
function GetFinance() {
curl -L -s -H "Authorization: GoogleLogin auth=$(ClientLogin finance)" "http://www.google.com/finance/portfolio?action=view&pid=1" &> output.html
}
GetFinance
Run Code Online (Sandbox Code Playgroud)
但是,此代码仅检索告诉我登录的页面.解决方案不需要使用curl,但它必须是使用某种脚本语言的自动检索.
感谢x4avier,我了解了casperjs,并且能够编写一个快速脚本来加载Google服务登录页面,输入用户名和密码,然后获取Google财经投资组合.我相信这适用于任何其他谷歌服务和页面.我将投资组合的html保存到portfolio.html.希望这也有助于其他人.
var fs = require('fs');
var failed = [];
var links = [
"https://www.google.com/finance/portfolio?action=view&pid=13"
];
var casper = …
Run Code Online (Sandbox Code Playgroud) 我很难找到答案.但是,用于JNI函数调用的"jboject thiz"是什么?例如:
jobjectArray Java_com_gnychis_awmon_Test( JNIEnv* env, jobject thiz ) {
Run Code Online (Sandbox Code Playgroud)
我env
常常用来分配对象,但是我从来没有使用过thiz而且我不确定它是什么用的.仅出于知识目的.
我在Azure上托管了一个ASP.NET Web应用程序,供我们公司内部使用.在这个网站上,我保留了一些电子表格和文档文档,我希望公司的员工能够点击这些文档,然后直接在Microsoft的Office Web Apps中打开它们,在那里他们可以查看和编辑它们.这与登录SkyDrive并单击该文件非常相似.这是我正在寻找的:
要求:
用户应该能够直接在浏览器中编辑文档并保存.
我的ASP.NET Web应用程序应该能够获取文档列表并显示它们.
我的ASP.NET Web应用程序应该能够允许用户上传新文档
用户不必多次登录(即,他们只需要登录我们的内部ASP.NET Web应用程序).
我尝试了什么:我似乎无法弄清楚如何做到这一点,这里有一些我曾经想过并试过的东西.
使用SkyDrive + API:将文档保存在SkyDrive中,在员工之间共享,以及使用SkyDrive/Live API登录并打开文档.这对我们不起作用,因为SkyDrive不允许您在不完全公开的情况下共享文档(即,任何有链接的人都可以查看/编辑它们).它们必须保持在内部.
使用SkyDrive Pro:SkyDrive pro具有更好的共享凭据的优势.您可以与特定用户共享某些内容,并且只与该用户共享(即,他们需要登录才能查看/编辑它).遗憾的是,Live API不支持SkyDrive Pro,因此我无法直接从ASP.NET应用程序访问这些文件.
Sharepoint:我认为通过将文档保存在文档库和使用SharePoint客户端中,SharePoint的可能性就在于此.我想我可以指定用户凭据来获取文档库中的文档列表,但我不确定我是否可以在Office Web中"打开"其中一个文档,而无需再次登录SharePoint站点, 然后再次.特别是如果自己的个人登录超时?我必须在浏览器中使用SharePoint不断重新输入我的SharePoint密码,在与ASP.NET应用程序集成时我不希望这样.
如果Microsoft将Office Web Apps集成到Azure中,可能会允许您打开存储在Blob存储中的Excel和Word文档.但那是不可能的.
有没有其他想法?
在Visual Studio 2013中,我安装了一个名为" InputSimulator " 的C#包.在这样做之后,我看到一个新的引用被添加到我的项目"WindowsInput"中.(即WindowsInput.dll)
问题是codeplex网站谈论的方法都不可访问.如果我尝试:
InputSimulator.SimulateTextEntry("Say hello!");
Run Code Online (Sandbox Code Playgroud)
我收到错误:
Error 14 'WindowsInput.InputSimulator' does not contain a definition for
'SimulateTextEntry' Blah.cs 33 32 ALibrary
Run Code Online (Sandbox Code Playgroud)
我确实有using WindowsInput
指令.
有谁知道为什么这些方法无法访问?类似SimulateKeyPress()
的方法也不可用.这些是关键的API.我是否遗漏了有关添加此库并引用它的内容?
android ×3
discovery ×2
android-ndk ×1
asp.net-mvc ×1
azure ×1
bonjour ×1
c ×1
c# ×1
debugging ×1
gdb ×1
glib ×1
google-api ×1
inheritance ×1
ios ×1
java ×1
linux ×1
nuget ×1
parcelable ×1
python ×1
serial-port ×1
sharepoint ×1