Kategori arşivi: dev

python GPS – NMEA sentence Parser

from datetime import datetime
import sqlite3
import time
import requests

class db_create():
    def __init__(self,lon,lat,speed):
        self.lon=lon
        self.lat=lat
        self.speed=speed
        self.time=time.time()
    def __str__(self):
        return(" Lon={}\n Lat={}\n Speed={}".format(self.lon,self.lat,self.speed))
class decode():
    def __init__(self,serial_data):
        self.raw_lat=serial_data[3]
        self.raw_lon=serial_data[5]
        self.speed_knot=serial_data[7]

        self.to_decaminal()

    def to_decaminal(self):
        self.lat=float(self.raw_lat[0:2])+(float(self.raw_lat[2:4])/60)+(float(self.raw_lat[5:7])/3600)
        self.lon=float(self.raw_lon[0:3])+(float(self.raw_lon[3:5])/60)+(float(self.raw_lon[6:8])/3600)
        self.speed=float(self.speed_knot)*1.85200 #knots to kmh
        
gprmc="$GNRMC,091805.00,A,3953.300557,N,03252.202539,E,0.102,,200619,,,A*6"#exapmle data string of telnet

if (gprmc[0:6] == "$GNRMC"):
    parsed_data=gprmc.split(",")
    if (parsed_data[2]=="A"):
        decoded_data=decode(parsed_data)
        print(db_create(decoded_data.lon,decoded_data.lat,decoded_data.speed))
    else:
        print("gps error")

It is an example for parsing nmea sentes with python and it creates the db , you need to create serial connection to use with gps receiver.

#gprmc string is example of serial data stream you need to create serial connection to use

http://aprs.gids.nl/nmea/ # here, you can find more information about gps nema sentences

C examples

FINDING QUADRATIC EQUATION ROOTS FROM QUADRATIC FORMULA


#include<stdio.h>
#include<conio.h>
#include<math.h>
#define PI 3.14159265359
 
float main(void)
{
   double a , b , c, delta ;
   printf("a,b,c katsayilarini sirasi ile gir=\n");
   scanf("%lf%lf%lf", &a, &b, &c);
   delta = pow(b, 2) - (4 * a * c );
   printf("delta=%2.2lf\n" , delta);
   
   if (delta > 0 ){
   printf("2 reel kok var\n");
   }
     else{
     	printf ("reel kok yok\n");
	 }

     
	 
	 if (delta < 0) {
	 
      printf("cikmak icin bir tusa bas\n ");
        getch();
      } 
         else{
         	double x1, x2;
         	x1 = (-b + sqrt(delta)) / (2 *a);
         	x2 = (-b - sqrt(delta)) / (2 *a); 
         	printf("x1=%2.lf x2=%2.lf\n",x1 ,x2);
         	printf ("cikmak icin bir tusa bas");
			 getch();
         	
		 }
      
   return 0;
}

BASIC UPTIME COUNTER

#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main (void){
	int secup;
	int min, hour, day, week, sec ;
	for (; ;){
		secup += 1;
		sleep(1);
		sec=secup%60;
		min= (secup / 60)%60;
		hour = (secup / (60*60))%24;
		day = (secup / (60*60*24))%7;
		week = (secup / (60*60*24*7))%52;
		printf("uptime = week:%d,day:%d,hour:%d,min:%d,sec:%d\n",week, day, hour, min, sec);
		
	}
}

Calculating square’s perimeter or area from char veriable(If)

#include <math.h>
 int main (void) {
 
 float side, peri, area ;
 char code ;
 printf("enter p for perimeter, enter a for area\n");
 scanf("%c",&code);
 printf ("enter lenght of one side of square:");
 scanf("%f", &side);
 
 if (code == 'p'){
 	peri=side * 4;
 	printf("perimeter is :%f",peri);
 }
    else if (code =='P'){
    		peri=side * 4;
    		printf("perimeter is :%f",peri);
    		}
    		else if (code == 'a'){
    		area= pow(side,2);
    		printf("area=%f",area);
			}
			 else if (code == 'A'){
			 area= pow(side,2);
    		printf("area=%f",area);
			 }
			 else 
			 printf("wrong type input");
 	
 
 	return(0);
 }

Calculating square’s perimeter or area from char veriable(switch)

#include <stdio.h>
#include <stdlib.h>
#include <math.h>
 int main (void) {
 
 float side, peri, area ;
 char code ;
 printf("enter p for perimeter, enter a for area\n");
 scanf("%c",&code);
 printf ("enter lenght of one side of square:");
 scanf("%f", &side);
 
 switch (code) {
 case 'p':
 case 'P':
 	peri = side * 4;
 	printf("perimeter is:%f:", peri);
 	break;
 case 'A':
 case 'a':
    area = pow(side,2);	
    printf("area is:%f", area);
    break;
default:
    	printf("wrong format input only a or p");
 }
 	return(0);
 }

Discount calculator due to total bill

// t for tables and tables are $25(per unit)

// “c” for chairs and chairs are$18(per unit)

/*if total bill is between$0-$499 discount rate is %0 ,  $500-$999 discount rate is %1.5,  $1000-$1499 discount rate is %2 , over $1500 discount rate is %3*/

#include <stdio.h>
#include <stdlib.h>
 int main (void) {
 	 char code;
 	 float bill, number_item;
 	 printf ("enter the code of the item:");
 	 scanf("%c", &code);
 	 switch (code) {
 	 	
 	 	case 'T':
 	 	case 't':	
 	 		printf("enter the number of tables sold");
 	 		scanf("%f", &number_item);
 	 		bill= 25 * number_item;
 	 		break;
 	    case 'C':
 	    case 'c':
 	 		printf("enter the number of chair sold");
			  scanf("%f", &number_item);
			  bill= 18 * number_item;
			  break;
		default:
		 printf("wrong format input");
		 	  		
	  }
 
 if (bill > 1500) {
 
 	bill= bill* 97/100;
	 }
 	else if( bill > 1000){
	 
 		bill=bill*98/100;
		 }
 		else if (bill > 500){
		 
 			bill=bill*98.5/100;
			 }
		 
	 
 	
 	printf("The bill is:%f", bill);
 	return(0);
 }