![]() |
#1 |
Zealot
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Posts: 117
Karma: 2097
Join Date: Feb 2010
Device: none
|
PocketBook Development: Netzwerk
Hallo,
hat schon jemand irgendwelche Netzwerk Dinge programmiert? Mit Code:
DownloadTo(net_session, url, 0, filename, -1); Code:
GetSessionInfo(net_session); Jetzt suche ich nach einer Möglichkeit benachrichtigt zu werden, wenn die Datei fertig runtergeladen ist, damit ich das Programm nicht so lange blockiere. Aber zumindest der MainHandler liefert kein Event. Ich habe auch keine Möglichkeit gefunden eine callback-Funktion anzugeben oder so. Irgendwelche Ideen? |
![]() |
![]() |
![]() |
#2 | |
Connoisseur
![]() ![]() Posts: 54
Karma: 120
Join Date: Mar 2010
Location: Nürnberg
Device: Pocketbook 302
|
Quote:
|
|
![]() |
![]() |
Advert | |
|
![]() |
#3 |
Zealot
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Posts: 117
Karma: 2097
Join Date: Feb 2010
Device: none
|
DownloadTo ist aus inkview. Die Funktion startet aber nur den Download. Heruntergeladen wird dann wohl in einem anderen Thread. Ich könnte jetzt einen Timer setzten und immer mal wieder nachschauen, ob die Datei fertig ist, aber das ist ja nicht so toll. Deshalb meine Frage, ob sich jemand damit auskennt und eine bessere Idee hat.
|
![]() |
![]() |
![]() |
#4 |
Connoisseur
![]() ![]() Posts: 54
Karma: 120
Join Date: Mar 2010
Location: Nürnberg
Device: Pocketbook 302
|
Hm da war ich gestern wohl blind als ich sie in inkview.h gesucht habe , sry ;-).
Könntest du mir auf irgendeinen Weg eine funktionierendes Code Beispiel zukommen lassen (ICQ/MSN/Skype/PM/e-mail) meine test programme zickt noch rum. Ansonsten würde ich die frage mal auf the-ebook.org im Pocketbook Free Forum stellen, die Seite ist russisch aber sie sprechen auch english |
![]() |
![]() |
![]() |
#5 |
Zealot
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Posts: 117
Karma: 2097
Join Date: Feb 2010
Device: none
|
Kann leider hier gerade nichts testen, aber ungefähr so sollte es gehen:
Code:
#include <unistd.h> #include <inkview.h> int main(int argc, char **argv) { char filename[FILENAME_MAX] = "/mnt/ext1/test.html"; char url[FILENAME_MAX] = "http://hostname.com/test.html"; int net_session = NewSession(); DownloadTo(net_session, url, 0, filename, -1); iv_sessioninfo * session_info = GetSessionInfo(net_session); while (session_info->progress < session_info->length) { sleep(1); session_info = GetSessionInfo(net_session); } return 0; } Last edited by reader42; 04-21-2010 at 03:47 PM. |
![]() |
![]() |
Advert | |
|
![]() |
#6 |
Connoisseur
![]() ![]() Posts: 54
Karma: 120
Join Date: Mar 2010
Location: Nürnberg
Device: Pocketbook 302
|
Merke grade das mein WLAN nicht funktioniert dh. ich muss meine Tests noch ein bisschen Verschieben. Was ich denke was interessant seien dürfte wäre der Rückgabewert von DownloadTo und vor allem was er aussagt.
|
![]() |
![]() |
![]() |
#7 |
Zealot
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Posts: 117
Karma: 2097
Join Date: Feb 2010
Device: none
|
So jetzt gibt es auch ein funktionierendes Beispiel. Ich habe festgestellt, dass man DownloadTo() nicht vor InkViewMain() aufrufen darf. (Das scheint übrigens bei allen Funktionen aus inkview.h der Fall zu sein.)
Code:
#include <inkview.h> #include <stdio.h> #include <unistd.h> FILE * LogFile; int main_handler(int type, int par1, int par2) { int i, dl; iv_sessioninfo * session_info; char filename[FILENAME_MAX] = "/mnt/ext1/games/test.png"; char url[FILENAME_MAX] = "http://b.tile.openstreetmap.org/16/34652/22545.png"; switch (type) { case EVT_INIT: int net_session = NewSession(); dl = DownloadTo(net_session, url, 0, filename, -1); fprintf(LogFile, "DownloadTo: %d\n", dl); for (i=0; i<15; i++) { dl = GetSessionStatus(net_session); session_info = GetSessionInfo(net_session); fprintf(LogFile, "session status: %d\nURL: %s\nctype: %s\nresponse: %d length: %d, progress: %d\n", dl, session_info->url, session_info->ctype, session_info->response, session_info->length, session_info->progress ); usleep(10000); } CloseApp(); break; } } int main(int argc, char **argv) { LogFile = fopen("/mnt/ext1/games/dl.log", "w"); InkViewMain(main_handler); fclose(LogFile); return 0; } Existiert die Datei, geht der SessionStatus von NET_OK über NET_CONNECT und NET_TRANSFER zurück nach NET_OK und session_info->response liefert 200 Existiert die Datei nicht aber der Server schon: Selbes Spiel, aber session_info->response liefert 404 wie ein Webbrowser halt auch. Existiert der Server nicht, dann geht SessionStatus von NET_OK über NET_CONNECT nach NET_ERESOLVE DownloadTo() liefert aber in allen Fällen 0. Selbst wenn ich zwei Download schnell hinter einander starte liefert DownloadTo() 0. Dann wird aber SessionStatus einmal NET_ABORTED. |
![]() |
![]() |
![]() |
|
![]() |
||||
Thread | Thread Starter | Forum | Replies | Last Post |
New prices for PocketBook 301 and PocketBook 360 | Yar-PocketBooker | PocketBook | 11 | 10-13-2010 12:22 AM |
Pocketbook development wiki | Logseman | PocketBook | 0 | 09-26-2010 04:53 PM |
Wiki for Pocketbook Free/Development | wallnuss | PocketBook | 18 | 05-29-2010 08:03 AM |
Pocketbook 301 und Pocketbook 360° im Test, Teil 1 | Forkosigan | PocketBook | 11 | 02-11-2010 03:54 AM |
Pocketbook und Netronix Inc. fusionieren zu PocketBook Global | Forkosigan | Deutsches Forum | 0 | 01-08-2010 01:13 PM |