【问题标题】:Send android sensor data over UDP socket通过 UDP 套接字发送 android 传感器数据
【发布时间】:2015-12-14 03:03:07
【问题描述】:

我正在编写一个应用程序来从我的 Android 手机(GPS 位置、加速度计、方向)获取传感器数据,并通过 UDP 将数据发送到服务器(顺便说一下,我计划为此使用 Python)。

现在,我已经设法获取传感器数据并显示它们,但有点卡在想办法将各种传感器数据组合成一个数据包,并通过 UDP 发送数据包。我不知道的是如何以一种仍然可以被服务器识别的方式“合并”数据,例如它来自加速器,或者它是 GPS 坐标等。

有什么建议吗?

【问题讨论】:

    标签: android sockets udp sensors


    【解决方案1】:

    如果您在服务器端使用 Python,您可以将值打包成 JSON 字符串,例如 { “传感器”:一些数据, “gps”:一些数据 }

    (因为使用 json.loads 很容易将 JSON 对象反序列化为字典)

    然后把这个字符串放到UDP包中

    要创建 JSON 字符串,您可以使用这些类 http://developer.android.com/reference/org/json/package-summary.html

    【讨论】:

    【解决方案2】:

    JSON 很好,或者您可以使用 Jython 让您利用 Java 的序列化库。这样做的好处是您不必做任何工作来将您的类转换为可序列化的格式,实际上只需实现可序列化并添加一个 serialVersionUID。

    复制自Jython tips:

    9 序列化

    Java 对象不能使用标准的 Python pickle 和 cPickle 模块进行序列化。 Java 和 Jython 对象都可以使用普通的 Java 序列化进行序列化。但是,在反序列化 Jython 对象时,不能使用普通的 java.io.ObjectInputStream 类,必须使用 Jython 特定的 org.python.util.PythonObjectInputStream,如下所示:

    import java.io as io
    import org.python.util as util
    
    class TestClass(io.Serializable):
        def __init_ _(self, value=0):
            self.value = value
            self.message = "Serialized"
    
        def toString(self):
            return "Message: %(message)s value: 
              is %(value)s" % self.__dict_ _
    
    instance = TestClass(3)
    
    outFile = io.FileOutputStream("test.ser")
    outStream = io.ObjectOutputStream(outFile)
    outStream.writeObject(instance)
    outFile.close( )
    
    inFile = io.FileInputStream("test.ser")
    inStream = util.PythonObjectInputStream(inFile)
    
    readInstance = inStream.readObject( )
    print readInstance.toString( )
    Message: Serialized value: is 3
    

    如果不使用 PythonObjectInputStream,则会出现运行时错误,因为普通 Java ObjectInputStream 很难找到和重新创建用于 Jython 的 Java 继承的动态加载的代理类。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多