Skip to content

Commit

Permalink
code to send to aprs.fi
Browse files Browse the repository at this point in the history
  • Loading branch information
on4akh committed Aug 3, 2014
1 parent 3495ac6 commit defcd73
Show file tree
Hide file tree
Showing 6 changed files with 44 additions and 12 deletions.
13 changes: 12 additions & 1 deletion Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ LibPath := "$(LibraryPathSwitch)."
## User defined environment variables
##
CodeLiteDir:=/usr/share/codelite
Objects=$(IntermediateDirectory)/main$(ObjectSuffix) $(IntermediateDirectory)/dmr$(ObjectSuffix) $(IntermediateDirectory)/rdac$(ObjectSuffix) $(IntermediateDirectory)/smaster$(ObjectSuffix) $(IntermediateDirectory)/sqlite$(ObjectSuffix) $(IntermediateDirectory)/webserv$(ObjectSuffix) $(IntermediateDirectory)/htmlreplace$(ObjectSuffix) $(IntermediateDirectory)/htmlpost$(ObjectSuffix) $(IntermediateDirectory)/convbin$(ObjectSuffix) $(IntermediateDirectory)/BPTC1969$(ObjectSuffix) $(IntermediateDirectory)/decode34Rate$(ObjectSuffix) $(IntermediateDirectory)/hyteraDecode$(ObjectSuffix)
Objects=$(IntermediateDirectory)/main$(ObjectSuffix) $(IntermediateDirectory)/dmr$(ObjectSuffix) $(IntermediateDirectory)/rdac$(ObjectSuffix) $(IntermediateDirectory)/smaster$(ObjectSuffix) $(IntermediateDirectory)/sqlite$(ObjectSuffix) $(IntermediateDirectory)/webserv$(ObjectSuffix) $(IntermediateDirectory)/htmlreplace$(ObjectSuffix) $(IntermediateDirectory)/htmlpost$(ObjectSuffix) $(IntermediateDirectory)/convbin$(ObjectSuffix) $(IntermediateDirectory)/BPTC1969$(ObjectSuffix) $(IntermediateDirectory)/decode34Rate$(ObjectSuffix) $(IntermediateDirectory)/hyteraDecode$(ObjectSuffix) $(IntermediateDirectory)/aprs$(ObjectSuffix)

##
## Main Build Targets
Expand Down Expand Up @@ -158,6 +158,14 @@ $(IntermediateDirectory)/hyteraDecode$(DependSuffix): hyteraDecode.c
$(IntermediateDirectory)/hyteraDecode$(PreprocessSuffix): hyteraDecode.c
@$(C_CompilerName) $(CmpOptions) $(IncludePath) $(PreprocessOnlySwitch) $(OutputSwitch) $(IntermediateDirectory)/hyteraDecode$(PreprocessSuffix) "hyteraDecode.c"

$(IntermediateDirectory)/aprs$(ObjectSuffix): aprs.c $(IntermediateDirectory)/aprs$(DependSuffix)
$(C_CompilerName) $(SourceSwitch) "aprs.c" $(CmpOptions) $(ObjectSwitch)$(IntermediateDirectory)/aprs$(ObjectSuffix) $(IncludePath)
$(IntermediateDirectory)/aprs$(DependSuffix): aprs.c
@$(C_CompilerName) $(CmpOptions) $(IncludePath) -MT$(IntermediateDirectory)/aprs$(ObjectSuffix) -MF$(IntermediateDirectory)/aprs$(DependSuffix) -MM "aprs.c"

$(IntermediateDirectory)/aprs$(PreprocessSuffix): aprs.c
@$(C_CompilerName) $(CmpOptions) $(IncludePath) $(PreprocessOnlySwitch) $(OutputSwitch) $(IntermediateDirectory)/aprs$(PreprocessSuffix) "aprs.c"


-include $(IntermediateDirectory)/*$(DependSuffix)
##
Expand Down Expand Up @@ -200,6 +208,9 @@ clean:
$(RM) $(IntermediateDirectory)/hyteraDecode$(ObjectSuffix)
$(RM) $(IntermediateDirectory)/hyteraDecode$(DependSuffix)
$(RM) $(IntermediateDirectory)/hyteraDecode$(PreprocessSuffix)
$(RM) $(IntermediateDirectory)/aprs$(ObjectSuffix)
$(RM) $(IntermediateDirectory)/aprs$(DependSuffix)
$(RM) $(IntermediateDirectory)/aprs$(PreprocessSuffix)

$(RM) $(OutputFile)

Expand Down
4 changes: 2 additions & 2 deletions dmr.c
Original file line number Diff line number Diff line change
Expand Up @@ -368,8 +368,8 @@ void *dmrListener(void *f){
repeaterList[repPos].sending[slot] = false;
syslog(LOG_NOTICE,"[%i-%s]All data blocks received",baseDmrPort + repPos,repeaterList[repPos].callsign);
printf("--------------------------------------------------------------\n");
if(memcmp(decodedString[slot] + 4,gpsString,4) == 0) decodeHyteraGps(srcId,repeaterList[repPos].id,decodedString[slot]);
if(memcmp(decodedString[slot] + 4,gpsCompressedString,4) == 0) decodeHyteraGpsCompressed(srcId,repeaterList[repPos].id,decodedString[slot]);
if(memcmp(decodedString[slot] + 4,gpsString,4) == 0) decodeHyteraGps(srcId,repeaterList[repPos],decodedString[slot]);
if(memcmp(decodedString[slot] + 4,gpsCompressedString,4) == 0) decodeHyteraGpsCompressed(srcId,repeaterList[repPos],decodedString[slot]);
memset(decodedString[slot],0,300);
}
}
Expand Down
18 changes: 11 additions & 7 deletions hyteraDecode.c
Original file line number Diff line number Diff line change
Expand Up @@ -18,22 +18,26 @@
*/

#include "master_server.h"
void sendAprs();

void decodeHyteraGps(int radioId,int repeaterId, unsigned char data[300]){
void decodeHyteraGps(int radioId,struct repeater repeater, unsigned char data[300]){

struct gpsCoordinates gpsData = {0};


memcpy(gpsData.latitude,data+32,4);
memcpy(gpsData.latitude+4,data+38,4);
memcpy(gpsData.longitude,data+44,9);
memcpy(gpsData.latitude,data+33,3);
memcpy(gpsData.latitude+3,data+38,4);
memcpy(gpsData.latitude+7,data+32,1);
memcpy(gpsData.longitude,data+45,8);
memcpy(gpsData.longitude+8,data+44,1);
memcpy(gpsData.speed,data+57,3);
memcpy(gpsData.heading,data+60,3);

syslog(LOG_NOTICE,"Decoded GPS data(Hytera): LAT(%s) LONG(%s) SPEED(%s) HEADING(%s)",gpsData.latitude,gpsData.longitude,gpsData.speed,gpsData.heading);
syslog(LOG_NOTICE,"[%s]Decoded GPS data(Hytera): LAT(%s) LONG(%s) SPEED(%s) HEADING(%s)",repeater.callsign,gpsData.latitude,gpsData.longitude,gpsData.speed,gpsData.heading);
sendAprs(gpsData,radioId,repeater);
}

void decodeHyteraGpsCompressed(int radioId,int repeaterId, unsigned char data[300]){
void decodeHyteraGpsCompressed(int radioId,struct repeater repeater, unsigned char data[300]){

syslog(LOG_NOTICE,"Compressed GPS data(Hytera) not decoding");
syslog(LOG_NOTICE,"[%s]Compressed GPS data(Hytera) not decoding",repeater.callsign);
}
2 changes: 1 addition & 1 deletion main.c
Original file line number Diff line number Diff line change
Expand Up @@ -103,7 +103,7 @@ int initRepeater(struct repeater repeaterInfo){

//oops, max repeaters reached
if (i == maxRepeaters){
syslog(LOG_NOTICE,"Not possible to add repeater, maximum number reached");
syslog(LOG_NOTICE,"Not possible to add repeater, maximum number reached. Max set to %i",maxRepeaters);
return 99;
}
//Set all the needed info for a repeater
Expand Down
12 changes: 12 additions & 0 deletions master_server.h
Original file line number Diff line number Diff line change
Expand Up @@ -61,6 +61,18 @@ struct repeater{
unsigned char aprsPHG[7];
};


struct idInfo{
int radioId;
char callsign[32];
char name[32];
long aprsTimeStamp;
char aprsSuffix[4];
char aprsBeacon[100];
int aprsSymbol;
int messageStore;
};

struct masterData{
struct sockaddr_in address;
int sockfd;
Expand Down
7 changes: 6 additions & 1 deletion rdac.c
Original file line number Diff line number Diff line change
Expand Up @@ -64,6 +64,11 @@ void delRdacRepeater(struct sockaddr_in address){
memset(rdacList[i].hardware,0,11);
memset(rdacList[i].firmware,0,14);
memset(rdacList[i].mode,0,4);
memset(rdacList[i].language,0,50);
memset(rdacList[i].geoLocation,0,20);
memset(rdacList[i].aprsPass,0,5);
memset(rdacList[i].aprsBeacon,0,100);
memset(rdacList[i].aprsPHG,0,7);
syslog(LOG_NOTICE,"Deleted repeater in rdac list on pos %i",i);
return;
}
Expand Down Expand Up @@ -111,7 +116,7 @@ int setRdacRepeater(struct sockaddr_in address){
sprintf(rdacList[i].geoLocation,"%s",sqlite3_column_text(stmt,8));
sprintf(rdacList[i].aprsPass,"%s",sqlite3_column_text(stmt,9));
sprintf(rdacList[i].aprsBeacon,"%s",sqlite3_column_text(stmt,10));
sprintf(rdacList[i].aprsPHG,"%s",sqlite3_column_text(stmt,7));
sprintf(rdacList[i].aprsPHG,"%s",sqlite3_column_text(stmt,11));
syslog(LOG_NOTICE,"Assigning %s %s %s %s %s %s %s to repeater on pos %i from database [%s]",rdacList[i].callsign,rdacList[i].hardware
,rdacList[i].firmware,rdacList[i].mode,rdacList[i].txFreq,rdacList[i].shift,rdacList[i].language,i,str);
sqlite3_finalize(stmt);
Expand Down

0 comments on commit defcd73

Please sign in to comment.