小编htz*_*htz的帖子

NMEA校验和计算

我在计算NMEA句子的校验和时遇到问题.我使用以下java代码:

private static String getSum(String in) {
    int checksum = 0;
    if (in.startsWith("$")) {
        in = in.substring(1, in.length());
    }

    int end = in.indexOf('*');
    if (end == -1)
        end = in.length();
    for (int i = 0; i < end; i++) {
        checksum = checksum ^ in.charAt(i);
    }
    String hex = Integer.toHexString(checksum);
    if (hex.length() == 1)
        hex = "0" + hex;
    return hex.toUpperCase();
}
Run Code Online (Sandbox Code Playgroud)

此代码类似于互联网上的许多其他示例,一切正常,直到我尝试这样的句子..

$PSRF101,-2686700,-4304200,3851624,96000,497260,921,12,3*1C

这句话来自NMEA参考手册,所以我假设校验和是正确的.但是当我计算它时,我得到*2F作为校验和而不是1C.

我认为这是因为句子中的负值,但我不知道如何处理它们.有人有建议吗?

java gps checksum nmea

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

参考真北计算加速度

对于我的应用程序,我需要计算我的设备参考真北的加速度.我的想法是计算磁北的设备方向并对其应用偏角以使方向为真北.然后我想计算设备的加速度并将其引用到方向,但我不知道应该怎么做.

我会尝试使用SensorManager.getRotationMatrix()和获取设备方向SensorManager.getOrientation().然后我得到了偏角GeomagneticField.getDeclination()并将其应用于方位值的方位角SensorManager.getOrientation().

但是,如何将加速度计值映射到此方向?它甚至可能吗?

android sensor accelerometer orientation

4
推荐指数
1
解决办法
5949
查看次数

如何只选择jtable中一行的单元格?

我有一个由多行和多列组成的JTable.我想让单元格可选,但一次只能在一行中.因此,例如,当我单击第三行和第五列中的单元格时,我可以向左或向右拉动鼠标并选择更多单元格,但仅限于此特定行而不是上方或下方的行.

我怎样才能做到这一点?

java swing jtable listselectionlistener

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