Răsfoiți Sursa

Implemented new mp3streamer in alarm and telegram;
Fixed ipaddress conversation;

jancoow 9 ani în urmă
părinte
comite
2cdff21d49
6 a modificat fișierele cu 47 adăugiri și 57 ștergeri
  1. 19 5
      alarm.c
  2. 9 4
      contentparser.c
  3. 4 3
      displayHandler.c
  4. 10 37
      main.c
  5. 4 7
      mp3stream.c
  6. 1 1
      mp3stream.h

+ 19 - 5
alarm.c

@@ -9,7 +9,7 @@
 #include "rtc.h"
 #include "alarm.h"
 #include "display.h"
-#include "httpstream.h"
+#include "mp3stream.h"
 
 #define n 5
 
@@ -71,7 +71,6 @@ void setSnooze(int idx){
 	alarm[idx].state = 2;
 	snooze[idx].snoozeTime = ct;
 	snooze[idx].snoozeTime.tm_min += alarm[idx].snooze;
-	//stopStream();
 }
 
 int daysInMonth(int m, int y) {
@@ -127,7 +126,12 @@ void setState(int idx){
 		if(alarm[idx].state != 1) {
 			alarm[idx].state = 1;
 			printf("\n\nAlarm gaat nu af!\n\n");
-			playStream(alarm[idx].ip, alarm[idx].port, alarm[idx].url);
+			bool success = connectToStream(alarm[idx].ip, alarm[idx].port, alarm[idx].url);
+			if (success == true){
+				play();
+			}else {
+				printf("ConnectToStream failed. Aborting.\n\n");
+			}
 		}
 	} else if (alarm[idx].state != 2){
 		alarm[idx].state = 0;
@@ -142,11 +146,20 @@ void setState(int idx){
 		snooze[idx].snoozeTime = ct;
 		AddSnoozeMinutes(idx, alarm[idx].snooze);
 		LcdBackLight(LCD_BACKLIGHT_OFF);
-		stopStream();
+		killPlayerThread();
 	}
 	
 	if (alarm[idx].state == 2 && compareTime(ct, snooze[idx].snoozeTime) >= 1){
-		alarm[idx].state = 1;
+		if(alarm[idx].state != 1){
+			printf("Alarm komt nu uit snooze!!");
+			bool success = connectToStream(alarm[idx].ip, alarm[idx].port, alarm[idx].url);
+			if (success == true){
+				play();
+			}else {
+				printf("ConnectToStream failed. Aborting.\n\n");
+			}
+			alarm[idx].state = 1;
+		}
 		AddSnoozeMinutes(idx, 1);
 	}
 }
@@ -185,6 +198,7 @@ void deleteAlarm(int idx){
 void handleAlarm(int idx){
 	alarm[idx].state = 0;
 	alarm[idx].time.tm_mday += 1;
+	killPlayerThread();
 	printf("state is %d \n",alarm[idx].state);
 }
 

+ 9 - 4
contentparser.c

@@ -5,10 +5,10 @@
 #include "ntp.h"
 #include "network.h"
 #include "jsmn.h"
+#include "mp3stream.h"
 #include "rtc.h"
 #include "alarm.h"
 #include "vs10xx.h"
-#include "httpstream.h"
 
 void parseAlarmJson(char* content){
     int r;
@@ -123,7 +123,7 @@ void parseCommandQue(char* content){
                 VsSetVolume(vol, vol);
                 i += 3;
             }else if(jsoneq(content, &token[i + 1], "stopstream") == 0){
-                stopStream();
+                killPlayerThread();
                 i += 3;
             }else if(jsoneq(content, &token[i + 1], "startstream") == 0){
                 u_short port = getIntegerToken(content, &token[i + 9]);
@@ -131,7 +131,12 @@ void parseCommandQue(char* content){
                 char ip[24];
                 getStringToken(content, &token[i + 7], url);
                 getStringToken(content, &token[i + 5], ip);
-                playStream(ip, port, url);
+                bool success = connectToStream(ip, port, url);
+                if (success == true){
+                    play();
+                }else {
+                    printf("ConnectToStream failed. Aborting.\n\n");
+                }
                 i += 9;
             }
         }
@@ -142,5 +147,5 @@ void parsetimezone(char* content)
 {
     int timezone = atoi(content);
     setTimeZone(timezone);
-    printf("%d", timezone);
 }
+

+ 4 - 3
displayHandler.c

@@ -14,7 +14,6 @@
 #include "rtc.h"
 #include "alarm.h"
 #include "network.h"
-#include "httpstream.h"
 
 #define MONTH_OFFSET 1
 #define YEAR_OFFSET 1900
@@ -67,7 +66,7 @@ void displayAlarm(int line_number, int line_numberTwo, int idx)
 	int startidx;
     char str[16];
 	struct _alarm am = getAlarm(idx);
-	
+
     sprintf(str, "    %02d:%02d:%02d    ", am.time.tm_hour, am.time.tm_min, am.time.tm_sec);
     if (line_number > -1 && line_number < 2){
         (*write_display_ptr[line_number])(str, 16);
@@ -80,7 +79,7 @@ void displayAlarm(int line_number, int line_numberTwo, int idx)
 			j = j + 1;
 		}
 	}
-	
+
 	if (j != 16){
 		startidx = (8-(j/2));
 	}
@@ -101,6 +100,8 @@ void displayAlarm(int line_number, int line_numberTwo, int idx)
         (*write_display_ptr[line_numberTwo])(str2, 16);
         LcdBackLight(LCD_BACKLIGHT_ON);
     }
+
+
 }
 
 void displayVolume(int pos)

+ 10 - 37
main.c

@@ -15,8 +15,6 @@
 
 #define LOG_MODULE  LOG_MAIN_MODULE
 
-#define _SUPPRESS_ALARMSYNC
-
 /*--------------------------------------------------------------------------*/
 /*  Include files                                                           */
 /*--------------------------------------------------------------------------*/
@@ -34,17 +32,13 @@
 #include "contentparser.h"
 #include "display.h"
 #include "displayHandler.h"
-#include "flash.h"
-#include "httpstream.h"
 #include "keyboard.h"
 #include "led.h"
 #include "log.h"
 #include "mp3stream.h"
-#include "mmc.h"
 #include "network.h"
 #include "ntp.h"
 #include "portio.h"
-#include "remcon.h"
 #include "rtc.h"
 #include "spidrv.h"
 #include "system.h"
@@ -90,10 +84,13 @@ static void SysMainBeatInterrupt(void *p)
 {
 
     /*
-     *  scan for valid keys AND check if a MMCard is inserted or removed
+     *  scan for valid keys
      */
     KbScan();
-    CardCheckCard();
+
+    if(KbGetKey() != KEY_NO_KEY){
+        LcdBackLight(LCD_BACKLIGHT_ON);
+    }
 }
 
 /*!
@@ -210,7 +207,7 @@ THREAD(StartupInit, arg)
 
 THREAD(AlarmSync, arg)
 {
-    NutThreadSetPriority(200);
+    NutThreadSetPriority(50);
 
     while(initialized == false){
         NutSleep(1000);
@@ -218,7 +215,6 @@ THREAD(AlarmSync, arg)
 
     NtpSync();
 
-    #ifndef _SUPPRESS_ALARMSYNC
     for(;;)
     {
         if((initialized == true) && (hasNetworkConnection() == true))
@@ -235,7 +231,6 @@ THREAD(AlarmSync, arg)
         }
         NutSleep(3000);
     }
-    #endif
     NutThreadExit();
 }
 
@@ -291,22 +286,17 @@ int main(void)
     Uart0DriverStart();
 	LogInit();
 
-    CardInit();
-
     X12Init();
 
     VsPlayerInit();
 
- 
-    NtpInit();
+     NtpInit();
 
     NutThreadCreate("BackgroundThread", StartupInit, NULL, 1024);
     NutThreadCreate("BackgroundThread", AlarmSync, NULL, 2500);
     //NutThreadCreate("BackgroundThread", NTPSync, NULL, 700);
     /** Quick fix for turning off the display after 10 seconds boot */
 
-    RcInit();
-
 	KbInit();
 
     SysControlMainBeat(ON);             // enable 4.4 msecs heartbeat interrupt
@@ -350,22 +340,6 @@ int main(void)
 			}
 		}
 
-        if(KbGetKey() == KEY_01){
-            //> "62.195.226.247";
-            printf("KEY_01 DETECTED\n");
-
-            bool success = connectToStream(inet_addr("62.195.226.247"), 80, "/test5.mp3");
-            if (success == true){
-                play();
-            }else {
-                printf("ConnectToStream failed. Aborting.\n\n");
-            }
-            //playStream("62.195.226.247", 80, "/test.mp3");
-        }
-        if(KbGetKey() == KEY_02){
-            killPlayerThread();
-        }
-
         if(KbGetKey() == KEY_DOWN)
         {
             NutSleep(150);
@@ -392,12 +366,11 @@ int main(void)
 						handleAlarm(idx);
 						//NutDelay(50);
 						LcdBackLight(LCD_BACKLIGHT_OFF);
-                        stopStream();
-					} else if (KbGetKey() == KEY_01 || KbGetKey() == KEY_02 || KbGetKey() == KEY_03 || KbGetKey() == KEY_04 || KbGetKey() == KEY_05 || KbGetKey() == KEY_ALT){
+                    } else if (KbGetKey() == KEY_01 || KbGetKey() == KEY_02 || KbGetKey() == KEY_03 || KbGetKey() == KEY_04 || KbGetKey() == KEY_05 || KbGetKey() == KEY_ALT){
 						setSnooze(idx);
 						LcdBackLight(LCD_BACKLIGHT_OFF);
-                        stopStream();
-					}
+                        killPlayerThread();
+                    }
 				}
 			}
 		}

+ 4 - 7
mp3stream.c

@@ -38,8 +38,7 @@ static u_long metaInt = 0;
 FILE *stream;
 TCPSOCKET *socket;
 
-bool connectToStream(u_long ipAddressStream, u_short port, char *radioUrl
-)
+bool connectToStream(char *ipaddr, u_short port, char *radioUrl)
 {
     if (stream_connected == true)
         return false;
@@ -49,7 +48,8 @@ bool connectToStream(u_long ipAddressStream, u_short port, char *radioUrl
     char* data;
 
     socket = NutTcpCreateSocket();
-    if (NutTcpConnect(socket, inet_addr("62.195.226.247"), port))
+    printf("Connecting to %s:%d%s\r\n", ipaddr, port, radioUrl);
+    if (NutTcpConnect(socket, inet_addr(ipaddr), port))
     {
         // An error has occurred.
         printf("ConnectToStream: Error creating tcp socket.\n");
@@ -60,11 +60,8 @@ bool connectToStream(u_long ipAddressStream, u_short port, char *radioUrl
 
     stream = _fdopen((int)socket, "r+b");
 
-    // Tell the console what we are doing.
-    printf("GET %s HTTP/1.0\r\n", radioUrl);
-
     fprintf(stream, "GET %s HTTP/1.0\r\n", radioUrl);
-    fprintf(stream, "Host: %s\r\n", inet_ntoa(ipAddressStream));
+    fprintf(stream, "Host: %s\r\n", ipaddr);
     fprintf(stream, "User-Agent: Ethernut\r\n");
     fprintf(stream, "Accept: */*\r\n");
     fprintf(stream, "Icy-MetaData: 1\r\n");

+ 1 - 1
mp3stream.h

@@ -14,7 +14,7 @@
 #include <string.h>
 
 bool play(void);
-bool connectToStream(u_long ipAddressStream, u_short port, char *radioUrl);
+bool connectToStream(char* ipaddr, u_short port, char *radioUrl);
 void killPlayerThread(void);
 
 u_char volumeUp(void);