小编gny*_*his的帖子

如何从C中的串口打开,读取和写入?

我对读取和写入串口有点困惑.我在Linux中有一个使用FTDI USB串行设备转换器驱动程序的USB设备.当我插入它时,它会创建:/ dev/ttyUSB1.

我认为在C中打开和读/写它很简单.我知道波特率和奇偶校验信息,但似乎没有标准吗?

我错过了什么,或者有人能指出我正确的方向吗?

c linux serial-port

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

如何使用ArrayList <Parcelable>正确实现Parcelable?

我上课时遇到了麻烦Parcelable.麻烦的是,我正在尝试写一个包中的一个成员作为一个ArrayList<Parcelable>对象.的ArrayListSerializable,和对象(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)

java serialization android parcelable

76
推荐指数
3
解决办法
5万
查看次数

有什么方法可以发现您网络上的Android设备?

我希望能够在我的网络上发现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)

android service-discovery discovery

55
推荐指数
3
解决办法
5万
查看次数

如何让GDB打破GLib断言失败?

在我没有编写的大量代码中的某处(但我正在尝试调试),GLib库中的断言失败:

(process:31987): GLib-CRITICAL **: g_hash_table_lookup: assertion `hash_table != NULL' failed
Run Code Online (Sandbox Code Playgroud)

但是,GDB和代码仍在继续.我希望GDB能够打破这个断言失败的地方,这样我才能找出它失败的原因.我没有得到关于这个断言在哪里的更多信息.有没有办法让GDB在这样的失败中打破?

debugging gdb glib

23
推荐指数
2
解决办法
8048
查看次数

为什么Python中没有@override装饰器来帮助编写代码可读性?

我一直在使用Python中的抽象类ABCMeta.当你编写一个抽象方法时,你用装饰器标记它@abstractmethod.我发现奇怪的一件事(和其他语言不同)是当子类重写超类方法时,没有@override提供类似的装饰器.有谁知道这背后的逻辑是什么?

这使得读取代码的人快速确定哪些方法覆盖/实现抽象方法与仅存在于子类中的方法有点混淆.

python inheritance python-decorators

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

有无法在无线网络上检测iPad或iPhone的方法吗?你好?

我正在尝试检测连接到无线网络的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地址

bonjour discovery ios

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

访问用户的Google财经投资组合的方式?

我注意到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)

google-api google-finance

14
推荐指数
1
解决办法
4839
查看次数

什么是JNI中的"jobject thiz",它用于什么?

我很难找到答案.但是,用于JNI函数调用的"jboject thiz"是什么?例如:

jobjectArray Java_com_gnychis_awmon_Test( JNIEnv* env, jobject thiz ) {
Run Code Online (Sandbox Code Playgroud)

env常常用来分配对象,但是我从来没有使用过thiz而且我不确定它是什么用的.仅出于知识目的.

java-native-interface android android-ndk

13
推荐指数
1
解决办法
6975
查看次数

从Office Web Apps中的ASP.NET打开excel/word文档进行编辑?

我在Azure上托管了一个ASP.NET Web应用程序,供我们公司内部使用.在这个网站上,我保留了一些电子表格和文档文档,我希望公司的员工能够点击这些文档,然后直接在Microsoft的Office Web Apps中打开它们,在那里他们可以查看和编辑它们.这与登录SkyDrive并单击该文件非常相似.这是我正在寻找的:

要求:

  1. 用户应该能够直接在浏览器中编辑文档并保存.

  2. 我的ASP.NET Web应用程序应该能够获取文档列表并显示它们.

  3. 我的ASP.NET Web应用程序应该能够允许用户上传新文档

  4. 用户不必多次登录(即,他们只需要登录我们的内部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文档.但那是不可能的.

有没有其他想法?

asp.net-mvc sharepoint web-applications azure

12
推荐指数
1
解决办法
8810
查看次数

通过NuGet安装InputSimulator,无法访问任何成员

在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.我是否遗漏了有关添加此库并引用它的内容?

c# visual-studio nuget

11
推荐指数
1
解决办法
3454
查看次数