-
大小: 15KB文件类型: .rar金币: 1下载: 0 次发布日期: 2021-06-05
- 语言: Java
- 标签: android4.2 gps hal
资源简介
android 下处理gps数据的hal层代码,带Android.mk 文件,只处理gps数据,不处理北斗的数据。(源码来自网络)
调试中解决的问题:
1、使用gps test工具测试,能搜索到卫星且也能够定位,但是已使用的卫星个数一直为零。(北斗数据覆盖了gps数据导致)
2、信号为零的卫星也显示。(修改代码逻辑,将信号大于零才加入卫星列表)
3、只有定到位置后才显示卫星。(修改代码只要有卫星有信号,就上报android系统)
代码片段和文件信息
/*
* Copyright (C) 2010 The Android Open Source Project
*
* Licensed under the Apache License Version 2.0 (the “License“);
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing software
* distributed under the License is distributed on an “AS IS“ BASIS
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#define LOG_TAG “GPS“
#define GPS_DEBUG 0
#if GPS_DEBUG
#define D(...) LOGD(__VA_ARGS__)
#else
#define D(...) ((void)0)
#endif
typedef struct {
const char* p;
const char* end;
} Token;
#define MAX_NMEA_TOKENS 21
typedef struct {
int count;
Token tokens[ MAX_NMEA_TOKENS ];
} NmeaTokenizer;
GpsStatus g_status;
static int
nmea_tokenizer_init( NmeaTokenizer* t const char* p const char* end )
{
int count = 0;
char* q;
// the initial ‘$‘ is optional
if (p < end && p[0] == ‘$‘)
p += 1;
// remove trailing newline
if (end > p && end[-1] == ‘\n‘) {
end -= 1;
if (end > p && end[-1] == ‘\r‘)
end -= 1;
}
// get rid of checksum at the end of the sentecne
if (end >= p+3 && end[-3] == ‘*‘) {
end -= 3;
}
while (p < end) {
const char* q = p;
q = memchr(p ‘‘ end-p);
if (q == NULL){
q = end;
}
if (q >= p) {
if (count < MAX_NMEA_TOKENS) {
t->tokens[count].p = p;
t->tokens[count].end = q;
count += 1;
}
}
if (q < end){
q += 1;
}
p = q;
}
t->count = count;
return count;
}
static Token
nmea_tokenizer_get( NmeaTokenizer* t int index )
{
Token tok;
static const char* dummy = ““;
if (index < 0 || index >= t->count) {
tok.p = tok.end = dummy;
} else {
tok = t->tokens[index];
}
return tok;
}
static int
str2int( const char* p const char* end )
{
int result = 0;
int len = end - p;
for ( ; len > 0; len-- p++ )
{
int c;
if (p >= end)
goto Fail;
c = *p - ‘0‘;
if ((unsigned)c >= 10)
goto Fail;
result = result*10 + c;
}
return result;
Fail:
return -1;
}
static double
str2float( const char* p const char* end )
{
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 13652 2014-03-12 15:54 gps_hal\gps.default.so
文件 30735 2014-03-12 15:54 gps_hal\gps.c
文件 1045 2014-03-12 09:53 gps_hal\Android.mk
目录 0 2014-03-12 15:54 gps_hal
----------- --------- ---------- ----- ----
45432 4
相关资源
- GPsJAva写的,功能比较齐全
- Android GPS定位源代码
- Android GPS定位 代码+APK
- android手机共享GPS到一个IP端口或蓝牙
- gps定位谷米gt06 java代码
- 串口接收GPS
- GPS Status_卫星定位
- 基于Android技术的北斗/GPS车载导航系统
- Android 最简单的GPS获取源代码
- stm32cubeMX_v4.27及f4HAL库包及所需要的
- Android 强制开启GPS
- Qt on Andorid GPS应用
- GPS星历文件计算卫星位置程序
- Android 获取Gps信息的程序源码
- android GPS 非常实用的卫星定位可直接
- android location 数据标准输出,原始mn
- android studio获取当前经纬度的简单
- Android 自身GPS定位demo
- E4A源码GPS应用
- GPSTEST android gpstest source code
- 基于Android平台的GPS导航系统的设计与
- RTKlib关于高精度GPS动态定位函数与处
- GeoTools和Proj4分别实现GPS坐标和中国大
- android 深度探索HAL与驱动开发源代码
- android模拟位置程序 - gpssim
- STM32 TFT GPS程序,包括TFT触摸屏使用
- jboss Marshalling序列化类库打包
- 基于Freescale Android4.2.2 max11801 的10寸电
- 最新的经纬度获取!wifi,基站,gps定
- android简单定位
评论
共有 条评论