PDA

Bekijk de volledige versie : WL-500gP WI-FI и GPS координаты



aSSa
24-08-2008, 13:04
Собственно subj.

На инострано-язычной части форума его тоже (безрезультатно) разыскивали (ncurses-dev).

gpsd configure сообщает:
"configure: error: I see an ncurses library but no header; you should install the development package"

Может быть кто из разработчиков подскажет, где сие водится?

А то Garmin 18x LVC уже приехал, а тот gpsd, что в правильном репозитории работает 10 (десять) секунд после чего перегружает роутер...

aSSa
25-08-2008, 15:18
Собственно, кто ищет, тот всегда найдёт.

Выдернул каталог include из ncurses-devel_5.6-6 от FC, залил на девайс и всё собралось. После выкидывания ненужных драйверов размер gpsd сотавил 4.5 KB.

Всё бы хорошо, но падение с перезагрузкой через 10 sec. никто не отменил :-(

При запуске :> gpsd -n -N -D 5 /dev/usb/tts/0 лог доходит до первого получения $GPGGA (после автоопределения параметров соединения) и всё, кирдык...

Проверил на PC с Mandrake 10.0 в той же конфигурации gpsd и железа (Garmin 18x LVC + USB2Serial на PL2303) - всё работает.
Отрывание ноги с PPS для "облегчения жизни" софта/девайса ничего не изменило.

Может быть кто-то из экспертов подскажет, что я не так делаю?

131274
28-08-2008, 17:13
Кто озадачивался? Интересует функционал GPS контролера...

aSSa
29-08-2008, 13:23
Я сейчас прикручиваю Garmin.

Спрашивай, если знаю - отвечу.

lexen
02-07-2009, 13:40
Чего-то никак не могу понять. Пишу простой сервер на C, для GPS loger'а, так вот нужно отсылать каждую секунду данные на ip:port (на роутер). Поставил все, что нужно для сборки софта на роутере, вот самый простой пример серверной части:


#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <unistd.h>
#include <stdio.h>

const int PORT = (мой порт),
BUF_SIZE = 1024;
const unsigned long int IP = INADDR_ANY;

int main()
{
int sock, listener;
struct sockaddr_in addr;
char buf[BUF_SIZE];
int bytes_read;

printf("Create socket-listener - ");
listener = socket(AF_INET, SOCK_STREAM, 0);
if(listener < 0){
printf("FAILED\n");
return -1;
}
else printf("OK\n");

addr.sin_family = AF_INET;
addr.sin_port = htons(PORT);
addr.sin_addr.s_addr = htonl(IP);

printf("Bind address to socket-listener - ");
if(bind(listener, (struct sockaddr *)&addr, sizeof(addr)) < 0){
printf("FAILED\n");
close(listener);
return -1;
}
else printf("OK\n");

printf("Listen for connections - ");
if(listen(listener, 3) < 0){
printf("FAILED\n");
close(listener);
return -1;
}
else printf("OK\n");

while(sock = accept(listener, NULL, NULL)){
printf("Got new connection\n");
while(bytes_read = recv(sock, buf, BUF_SIZE, 0)){
printf(buf);
}
printf("Close connection\n");
close(sock);
}
return 0;
}

Итог клиент подключается и передаёт всё замечательно, но только из локалки (клиент написан и под Win и под Linux). (мой порт) - конечно же открыл в файрволе, пробовал даже пропись его в web морде с форвардом - увы, итог нулевой.

Power
02-07-2009, 21:42
1. По поводу кода:
а)


while(sock = accept(listener, NULL, NULL))
...
while(bytes_read = recv(sock, buf, BUF_SIZE, 0))

лучше заменить на


while((sock = accept(listener, NULL, NULL)) >= 0)
...
while((bytes_read = recv(sock, buf, BUF_SIZE, 0)) > 0)


б)


printf(buf);

Лучше так не делайте. Встретится в буфере последовательность %s - и segmentation fault обеспечен. Хотите вывести на стандартный вывод - используйте fwrite(buf, 1, bytes_read, stdout).

2. По поводу порта: покажите вывод команды iptables-save на роутере и укажите какой из портов - (ваш порт).

theMIROn
03-07-2009, 06:45
printf(buf);

Лучше так не делайте. Встретится в буфере последовательность %s - и segmentation fault обеспечен. Хотите вывести на стандартный вывод - используйте fwrite(buf, 1, bytes_read, stdout).
вот так еще делается


printf("%s",buf)

lexen
03-07-2009, 09:28
Power, theMIROn, по первому пункту спасибо переделаю, а по второму
iptables-save


# Generated by iptables-save v1.3.8 on Fri Jul 3 12:08:38 2009
*nat
:PREROUTING ACCEPT [117532:12257770]
:POSTROUTING ACCEPT [56586:4550325]
:OUTPUT ACCEPT [9196:588820]
:VSERVER - [0:0]
-A PREROUTING -d 89.252.88.61 -j VSERVER
-A POSTROUTING -s ! 89.252.88.61 -o ppp0 -j MASQUERADE
-A POSTROUTING -s 192.168.0.0/255.255.255.0 -d 192.168.0.0/255.255.255.0 -o br0 -j SNAT --to-source 192.168.0.1
-A VSERVER -p udp -m udp --dport 56354 -j DNAT --to-destination 192.168.0.202:56354
-A VSERVER -p udp -m udp --dport 53981 -j DNAT --to-destination 192.168.0.202:53980
-A VSERVER -p udp -m udp --dport 63622 -j DNAT --to-destination 192.168.0.10:63622
-A VSERVER -p tcp -m tcp --dport 53981 -j DNAT --to-destination 192.168.0.202:53980
-A VSERVER -p tcp -m tcp --dport 3724 -j DNAT --to-destination 192.168.96.1:3724
-A VSERVER -p udp -m udp --dport 34622 -j DNAT --to-destination 192.168.0.101:34622
-A VSERVER -p tcp -m tcp --dport 34622 -j DNAT --to-destination 192.168.0.101:34622
-A VSERVER -p udp -m udp --dport 53980 -j DNAT --to-destination 192.168.0.10:53980
-A VSERVER -p tcp -m tcp --dport 53980 -j DNAT --to-destination 192.168.0.10:53980-0
COMMIT
# Completed on Fri Jul 3 12:08:38 2009
# Generated by iptables-save v1.3.8 on Fri Jul 3 12:08:38 2009
*mangle
:PREROUTING ACCEPT [106239951:74973262815]
:INPUT ACCEPT [3019270:793834335]
:FORWARD ACCEPT [102454009:74085898892]
:OUTPUT ACCEPT [2438273:663905792]
:POSTROUTING ACCEPT [105184588:74857941157]
COMMIT
# Completed on Fri Jul 3 12:08:38 2009
# Generated by iptables-save v1.3.8 on Fri Jul 3 12:08:38 2009
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [24611:2058263]
:OUTPUT ACCEPT [451386:130722435]
:BRUTE - [0:0]
:MACS - [0:0]
:SECURITY - [0:0]
:logaccept - [0:0]
:logdrop - [0:0]
-A INPUT -m state --state INVALID -j DROP
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -i lo -m state --state NEW -j ACCEPT
-A INPUT -i br0 -m state --state NEW -j ACCEPT
-A INPUT -p udp -m udp --sport 67 --dport 68 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 443 --tcp-flags FIN,SYN,RST,ACK SYN -j ACCEPT
-A INPUT -j DROP
-A INPUT -p tcp -m tcp --dport 443 --tcp-flags FIN,SYN,RST,ACK SYN -j ACCEPT
-A FORWARD -d 192.168.0.10 -p tcp -m tcp --dport 53980 -j ACCEPT
-A FORWARD -i br0 -o br0 -j ACCEPT
-A FORWARD -m state --state INVALID -j DROP
-A FORWARD -p tcp -m tcp --tcp-flags FIN,SYN,RST,ACK SYN -j TCPMSS --clamp-mss-to-pmtu
-A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -i ! br0 -o ppp0 -j DROP
-A FORWARD -i ! br0 -o vlan2 -j DROP
-A FORWARD -m conntrack --ctstate DNAT -j ACCEPT
-A FORWARD -o br0 -j DROP
-A SECURITY -p tcp -m tcp --tcp-flags FIN,SYN,RST,ACK SYN -m limit --limit 1/sec -j RETURN
-A SECURITY -p tcp -m tcp --tcp-flags FIN,SYN,RST,ACK RST -m limit --limit 1/sec -j RETURN
-A SECURITY -p udp -m limit --limit 5/sec -j RETURN
-A SECURITY -p icmp -m limit --limit 5/sec -j RETURN
-A SECURITY -j DROP
-A logaccept -m state --state NEW -j LOG --log-prefix "ACCEPT " --log-tcp-sequence --log-tcp-options --log-ip-options
-A logaccept -j ACCEPT
-A logdrop -m state --state NEW -j LOG --log-prefix "DROP " --log-tcp-sequence --log-tcp-options --log-ip-options
-A logdrop -j DROP
COMMIT
# Completed on Fri Jul 3 12:08:38 2009

Порт 3724

sauron093
03-07-2009, 14:58
-A VSERVER -p tcp -m tcp --dport 3724 -j DNAT --to-destination 192.168.96.1:3724


хм. а зачем у вас проброс портов сделан? у вас серверный софт не на роутере стоит?

если порт открыт должно быть что-то типа

-A INPUT -p tcp -m tcp --dport 3724 -j ACCEPT

Power
03-07-2009, 15:54
lexen,
Как правильно сказал sauron093, если у вас сервер стоит на самом роутере, то port forwarding вам не поможет - порт нужно открыть в цепочке INPUT. Обычно для этого добавляют такое в post-firewall


iptables -P INPUT DROP
iptables -D INPUT -j DROP
iptables -A INPUT -p tcp -m tcp --dport 3724 --syn -j ACCEPT




вот так еще делается


printf("%s",buf)

Вообще - да, но в данном случае этот код не учитывает тот факт, что длина строки (номер первого встретившегося нулевого байта) может отличаться от заполненной длины буфера (bytes_read), причём в любую сторону.

lexen
03-07-2009, 17:05
sauron093, Power, в web gui port forwarding пуст, есть строчка в post-firewall

iptables -A INPUT -p all --syn --dport 3724 -j ACCEPT
более ничего нет

Power
03-07-2009, 17:13
в web gui port forwarding пуст...
Значит, UPnP балуется, выключите его от греха подальше.



...есть строчка в post-firewall

iptables -A INPUT -p all --syn --dport 3724 -j ACCEPT
более ничего нет

Эта строчка с ошибкой (и даже если бы была без ошибки, всё равно не помогла). Сделайте так, как я написал выше.

И кстати, вы так и не уточнили: этот сервер у вас на роутере стоит? И порт нужно на роутере открыть?

iliuxa
06-08-2009, 23:14
можноли прописать в роутере его координаты gps ?

antair
07-08-2009, 06:47
Можно.. в текстовом файле... :D

Нет в нем ГПС приемника.

LnrMn
07-08-2009, 06:52
Можно.. в текстовом файле...

Нет в нем ГПС приемника.

Интересный вопрос... Ясное дело нет. И не надо. Он же не перемещается. Их надо как-то задать, чтобы он вещал их.

LnrMn
07-08-2009, 06:56
цитата CNews

...в программе имеется база данных, в которой содержится информация о более чем 26 тысячах точек доступа, установленных в обеих странах. С ее помощью по сигналам от трех хот-спотов, находящихся в пределах досягаемости устройства, методом триангуляции определяется местоположение.

Omega
07-08-2009, 12:31
Интересный вопрос... Ясное дело нет. И не надо. Он же не
перемещается. Их надо как-то задать, чтобы он вещал их.

Роутер может получать координаты от приёмника GPS или навигатора
по блютузу и передавать их в SSID по Wi-Fi или по инету/почте/SMS ... ;)

iliuxa
09-08-2009, 21:23
вообщето я имел в виду следующее.
есть прога для кпк которая ищет wi-fi точки доступа и если точка передает в эфир свое место положения, то на кпк с gps приемником эта прога показывает такую wi-fi точку на радаре - ее местоположение относительно вас. тоесть эдакий сканер точек доступа

Omega
09-08-2009, 21:41
Какая прога ? ;) Так надо посмотреть, что передают другие точки
доступа в SSID, и забить тоже самое со своими координатами ... :)

iliuxa
10-08-2009, 09:10
прога wi-fi fofum
http://www.aspecto-software.com/rw/applications/wififofum/index.html

dennypsp
04-02-2011, 21:04
Всем привет...После установки торрента на роутер и безупречной работы около 1 года, решил поставить туда же GPS сервер OpenGTS. По всем правилам по идее должен работать, но пока что-то не понимаю , уж много компонентов надо ему ... Вообще такой вопрос будет ли работать или нет? Может и не париться и пользоваться другими бесплатными...Но всегда хочется чего-то своего :)

принцип работы OpenGTS - GPS Треккер отсылает каждые 30 сек координаты по SMS - GPRS на сервер, затем создается маршрут треккера на гарте гугла..И можно отслеживать перемещение авто людей и т.д. у кого есть GPS треккер.Т.к. программа работает также на линуксе то прикинул будет ли она работать на роутере.
Никто не пробовал ее установить?

http://www.opengts.org/TopMenu.jpeg
http://www.opengts.org/TrackMap.jpeg
Демо вход на странице производитея OpenGPS - http://track.opengts.org/track/Track
Сайт производителя - http://www.opengts.org/ , программа абсолютно бесплатна - поэтому есть интерес.

PASHKA
13-07-2011, 19:33
Вопрос к гуру: насколько мне известно, существует возможность прописать в рутер его GPS координаты, чтобы всякие умные устройства, типа коммуникаторов и т.п. при работе с ним через WiFi использовали эти координаты, вместо GPS (актуально для помещений)
Существует ли возможность в этой прошивке указать координаты? Если да, то как?

ABATAPA
14-07-2011, 06:11
Вопрос к гуру: насколько мне известно, существует возможность прописать в рутер его GPS координаты

Откуда Вам такое известно?!

TReX
14-07-2011, 10:36
Откуда Вам такое известно?!

Для России, хотя скорее москвы это сервис http://altergeo.ru/, по маку хот-спота определяет местонахождение абонента, клиент есть под все мобильные платформы )
А тут про геолокация для чайников - http://www.xakep.ru/post/48378/ ))

ABATAPA
15-08-2011, 06:52
А тут про геолокация для чайников - http://www.xakep.ru/post/48378/ ))

"Для чайников" я бы советовал внимательнее читать исходное сообщение, там было сказано: "существует возможность прописать в рутер его GPS координаты".
Думаю, для чего выделение - понятно?

А про GeoIP мне, поверьте, не нужно рассказывать. Однако, связь с первоначальным вопросом - косвенная. В роутер ничего прописывать не надо. GeoIP базы Google и ей подобные (http://samy.pl/mapxss/) используют "утекание" связки координат и MAC с коммуникаторов под управлением Android + нашумевшее сканирование Wi-Fi сетей со своих автомобилей.