1_capture 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118
  1. #!/bin/bash
  2. source ~/BallonSonde/variables.sh
  3. CONVERTLL_PATH="/home/pi/BallonSonde/convert_ll_dec.py"
  4. READ_NMEA_PATH="/home/pi/BallonSonde/read_nmea.py"
  5. rm -rf /ramfs/*.jpg
  6. echo "=> Acquisition on !"
  7. DATE=$(date +%y%m%d_%H%M%S)
  8. acquire_with_gps() {
  9. DATA=$(cat /ramfs/.out)
  10. NS=$(echo $DATA| tr ' ' '\n' | grep NS | cut -d'=' -f2 | cut -d',' -f1)
  11. EW=$(echo $DATA| tr ' ' '\n' | grep EW | cut -d'=' -f2 | cut -d',' -f1)
  12. LAT=$(echo $DATA| tr ' ' '\n' | grep 'lat=' | cut -d'=' -f2 | cut -d',' -f1)
  13. echo "Latitude $LAT"
  14. LATD=$($CONVERTLL_PATH $LAT | grep "d:" | cut -d':' -f2)
  15. LATM=$($CONVERTLL_PATH $LAT | grep "m:" | cut -d':' -f2)
  16. LATS=$($CONVERTLL_PATH $LAT | grep "s:" | cut -d':' -f2 | sed 's/\.//' )
  17. echo "$LATD $LATM $LATS"
  18. LON=$(echo $DATA| tr ' ' '\n' | grep 'lon=' | cut -d'=' -f2 | cut -d',' -f1)
  19. echo "Longitude : $LON"
  20. LOND=$($CONVERTLL_PATH $LON| grep "d:" | cut -d':' -f2)
  21. LONM=$($CONVERTLL_PATH $LON | grep "m:" | cut -d':' -f2)
  22. LONS=$($CONVERTLL_PATH $LON | grep "s:" | cut -d':' -f2 | sed 's/\.//')
  23. echo "$LOND $LONM $LONS"
  24. ALTITUDE=$(echo $DATA| tr ' ' '\n' | grep 'alt=' | cut -d'=' -f2 | cut -d',' -f1)
  25. echo "$ALTITUDE meters ! Wooo so hiiigh !"
  26. # Creation du script pour ajout des données Exif dans le JPG
  27. cat <<EOF > /ramfs/.conf_exif
  28. # Ajouter aux metadatas les informations de geolocalisation
  29. # 'add' pour ajouter les informations
  30. # 'set' pour remplacer celles déjà exisante
  31. # 'del' pour les supprimer (sans préciser de valeur)
  32. add Exif.GPSInfo.GPSLatitudeRef ${NS}
  33. add Exif.GPSInfo.GPSLatitude ${LATD}/1 ${LATM}/1 ${LATS}/10000
  34. add Exif.GPSInfo.GPSLongitudeRef ${EW}
  35. add Exif.GPSInfo.GPSLongitude ${LOND}/1 ${LONM}/1 ${LONS}/10000
  36. EOF
  37. echo $LAT
  38. if [ "$LAT" == "NO_DATA" ]; then
  39. echo "Don't have GPS datas, continue without these datas"
  40. else
  41. exiv2 -m /ramfs/.conf_exif /ramfs/$DATE.jpg
  42. exiftool -GPSAltitude=$ALTITUDE /ramfs/$DATE.jpg -overwrite_original
  43. fi
  44. echo "Picz $DATE.jpg saved in RAM"
  45. cp /ramfs/$DATE.jpg ~/_Pictures
  46. echo "$DATE.jpg" > /ramfs/.canbeconvert
  47. echo "Sleeping... zzzZZZzzZZZzzz..."
  48. sleep 5
  49. }
  50. acquire_without_gps() {
  51. echo "Picz $DATE.jpg saved in RAM (without GPS Datas)"
  52. cp /ramfs/$DATE.jpg ~/_Pictures
  53. echo "$DATE.jpg" > /ramfs/.canbeconvert
  54. echo "Sleeping... zzzZZZzzZZZzzz..."
  55. sleep 5
  56. }
  57. raspistill -o /ramfs/$DATE.jpg
  58. if [ $? -eq 0 ]; then
  59. if [[ $HAVEGPS == 1 ]]
  60. then
  61. $READ_NMEA_PATH > /ramfs/.out
  62. cat /ramfs/.out | grep "Pas de signal GPS"
  63. if [[ $? -eq 0 ]]; then
  64. echo "Pas de signal GPS"
  65. acquire_without_gps
  66. else
  67. echo "Signal GPS OK"
  68. acquire_with_gps
  69. fi
  70. else
  71. acquire_without_gps
  72. fi
  73. # pour le raspistille
  74. else
  75. echo "Picz failed to be acquired..."
  76. /home/pi/BallonSonde/tx_process/4_tx_file /home/pi/BallonSonde/sound/error_camera.wav
  77. fi
  78. if [[ $HAVEGPS == 1 ]]
  79. then
  80. $READ_NMEA_PATH > /ramfs/.out
  81. cat /ramfs/.out | grep "Pas de signal GPS"
  82. if [[ $? -eq 0 ]]; then
  83. echo "Pas de signal GPS"
  84. echo "Don't have GPS datas, continue without these datas"
  85. GPS_SIGNAL="KO"
  86. else
  87. echo "Signal GPS OK"
  88. fi
  89. else
  90. GPS_SIGNAL="KO"
  91. fi