Skip to content

Instantly share code, notes, and snippets.

@uotw
Last active January 27, 2020 02:53
Show Gist options
  • Save uotw/0cb1b3758686dc396fca32ece1eddf11 to your computer and use it in GitHub Desktop.
Save uotw/0cb1b3758686dc396fca32ece1eddf11 to your computer and use it in GitHub Desktop.
options for iNav DJI FPV CRAFT_NAME tele insertion
//this snippet of code is from inav-2.4.0-RC1/src/main/io/osd_dji_hd.c
case DJI_MSP_NAME:
{
/* DIRECTION TO HOME, DIST TO HOME, SPEED, ALT */
int speed = (int)(gpsSol.groundSpeed * 0.0223694); // centimeters per second to MPH
int altitude = (int)lrintf(getEstimatedActualPosition(Z) * 0.0328084); // centimeters to feet
static char dirAndDist[16];
static char arrow[7];
int degToHome = DECIDEGREES_TO_DEGREES(osdGetHeading()) - GPS_directionToHome;
int distToHome = (int)(lrintf(GPS_distanceToHome * 3.28084)); //meters to feet
if(degToHome<22.5 || degToHome>337.5){
strncpy(arrow, "\u2190", 7); // ←
} else if(degToHome>22.5 && degToHome<67.5){
strncpy(arrow,"\u2199", 7); // ↙
} else if(degToHome>67.5 && degToHome<112.5){
strncpy(arrow,"\u2193", 7); // ↓
} else if(degToHome>112.5 && degToHome<157.5){
strncpy(arrow,"\u2198", 7); // ↘
} else if(degToHome>157.5 && degToHome<202.5){
strncpy(arrow,"\u2192", 7); // →
} else if(degToHome>202.5 && degToHome<247.5){
strncpy(arrow,"\u2197", 7); // ↗
} else if(degToHome>247.5 && degToHome<292.5){
strncpy(arrow,"\u2191", 7); // ↑
} else if(degToHome>292.5 && degToHome<337.5){
strncpy(arrow,"\u2196", 7); // ↖
}
if(degToHome>268 && degToHome<272){
strncpy(arrow,"\u21e7", 7); //⇧
}
int len = tfp_snprintf(dirAndDist,12, "%d4H%s %3dS %4dA", distToHome, arrow, speed, altitude);
if (len > 12) len = 12;
sbufWriteData(dst, dirAndDist, 20);
/* SPEED/ALT */
/*
int speed = (int)(gpsSol.groundSpeed * 0.0223694); // centimeters per second to MPH
int altitude = (int)lrintf(getEstimatedActualPosition(Z) * 0.0328084); // centimeters to feet
int len = tfp_snprintf(speedAndAlt, 12, "\u2191 %3d mph %4d ft", speed, altitude);
if (len > 12) len = 12;
sbufWriteData(dst, speedAndAlt, len);
*/
/* DIRECTION TO HOME */
/*
static char dirAndDist[16];
static char arrow[7];
int degToHome = DECIDEGREES_TO_DEGREES(osdGetHeading()) - GPS_directionToHome;
int distToHome = (int)(lrintf(GPS_distanceToHome * 3.28084)); //meters to feet
if(degToHome<22.5 || degToHome>337.5){
strncpy(arrow, "\u2190", 7); // ←
} else if(degToHome>22.5 && degToHome<67.5){
strncpy(arrow,"\u2199", 7); // ↙
} else if(degToHome>67.5 && degToHome<112.5){
strncpy(arrow,"\u2193", 7); // ↓
} else if(degToHome>112.5 && degToHome<157.5){
strncpy(arrow,"\u2198", 7); // ↘
} else if(degToHome>157.5 && degToHome<202.5){
strncpy(arrow,"\u2192", 7); // →
} else if(degToHome>202.5 && degToHome<247.5){
strncpy(arrow,"\u2197", 7); // ↗
} else if(degToHome>247.5 && degToHome<292.5){
strncpy(arrow,"\u2191", 7); // ↑
} else if(degToHome>292.5 && degToHome<337.5){
strncpy(arrow,"\u2196", 7); // ↖
}
if(degToHome>268 && degToHome<272){
strncpy(arrow,"\u2B06", 7); // ⬆
}
tfp_snprintf(dirAndDist,12, "%s %d ft",arrow,distToHome);
sbufWriteData(dst, dirAndDist, 12);
*/
/* CRAFT NAME */
/*
const char * name = systemConfig()->name;
int len = strlen(name);
if (len > 12) len = 12;
sbufWriteData(dst, name, len);
*/
}
break;
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment