void net_msg_gps(void) { strcpypgm2ram(net_scratchpad,(char const rom far*)"MP-0 L"); format_latlon(car_latitude,net_msg_scratchpad); strcat(net_scratchpad,net_msg_scratchpad); strcatpgm2ram(net_scratchpad,(char const rom far*)","); format_latlon(car_longitude,net_msg_scratchpad); strcat(net_scratchpad,net_msg_scratchpad); net_msg_encode_puts(); }
void net_sms_gps(char* number) { delay100(2); net_send_sms_start(number); net_puts_rom(NET_MSG_GOOGLEMAPS); format_latlon(car_latitude,net_scratchpad); net_puts_ram(net_scratchpad); net_puts_rom(","); format_latlon(car_longitude,net_scratchpad); net_puts_ram(net_scratchpad); net_puts_rom("\x1a"); }
void net_sms_gps(char* number) { #ifdef OVMS_SUPPRESS_OUTGOING_SMS return; #endif delay100(2); net_send_sms_start(number); net_puts_rom(NET_MSG_GOOGLEMAPS); format_latlon(car_latitude,net_scratchpad); net_puts_ram(net_scratchpad); net_puts_rom(","); format_latlon(car_longitude,net_scratchpad); net_puts_ram(net_scratchpad); net_puts_rom("\x1a"); }
int main(int argc, char *argv[]) { int i, p; double s1, d1, r1, s2, d2, r2, plg[3], azm[3] ; double *eval3, **evec3, M0, Mw, scale ; char pdela[8], pdelo[9], cenla[8],cenlo[9] ; str_quake_params eq ; if (argc < 2) { fprintf(stderr,"Error syntax : %s CMTFILE\n",argv[0]); exit(1) ; } /* Allocate memory */ eq.vm = double_alloc2p(2) ; eq.vm[1] = double_calloc(6) ; /* Read cmtfile */ strcpy(eq.cmtfile,argv[1]) ; get_cmtf(&eq, 2) ; /* Best double couple solution */ get_planes(eq.vm[1], &eval3, &evec3, &s1,&d1,&r1, &s2,&d2,&r2) ; M0 = ((fabs(eval3[0]) + fabs(eval3[2])) * (double)POW) / 2. ; Mw = (log10(M0) - 16.1) / 1.5 ; /* Principal axes */ for (i=0; i<3 ; i++) { azm[i] = atan2(evec3[2][i],-evec3[1][i])/DEG2RAD+360.; scale = evec3[1][i]*evec3[1][i] + evec3[2][i]*evec3[2][i] ; plg[i] = atan2(-evec3[0][i],sqrt(scale))/DEG2RAD; if(plg[i]<0.0) { plg[i] *= -1. ; azm[i] += 180.; } azm[i] = fmod(azm[i], 360.); } /* Scale Seismic moment */ scale = 0. ; for (i=0;i<6;i++) if (fabs(eq.vm[1][i]) > scale) scale = fabs(eq.vm[1][i]) ; p = (int)log10(scale) ; scale = pow(10,(double)p) ; for (i=0;i<6;i++) eq.vm[1][i] /= scale; for (i=0;i<3;i++) eval3[i] /= scale; p += (int)round(log10(POW)); /* Display */ format_latlon(eq.pde_evla, eq.pde_evlo, pdela, pdelo); format_latlon(eq.evla, eq.evlo, cenla, cenlo); printf("Moment mag. : %5.2f\n",Mw) ; printf("PDE location : Lat=%7s; Lon=%8s; Dep=%5.1f km\n",pdela,pdelo,eq.pde_evdp) ; printf("Centroid loc.: Lat=%7s; Lon=%8s; Dep=%5.1f km\n",cenla,cenlo,eq.evdp) ; printf("Origin time : %04d/%02d/%02d %02d:%02d:%05.2f\n", eq.ot_ye,eq.ot_mo, eq.ot_dm,eq.ot_ho,eq.ot_mi, (double)eq.ot_se+(double)eq.ot_ms/1000.) ; printf("Time delay : %-5.1f sec\n",eq.ts) ; printf("Half duration: %-5.1f sec\n\n",eq.hd) ; printf("Moment tensor: scale= 1.0E+%02d dyn.cm\n",p) ; printf("rr=%6.3f ; tt=%6.3f ; pp=%6.3f \n",eq.vm[1][0],eq.vm[1][1],eq.vm[1][2]) ; printf("rt=%6.3f ; rp=%6.3f ; tp=%6.3f \n\n",eq.vm[1][3],eq.vm[1][4],eq.vm[1][5]) ; printf("Principal Axes: \n") ; printf("1.(T) Val=%6.3f ; Plg= %3.0f ; Azm=%3.0f\n",eval3[0],plg[0],azm[0]); printf("2.(N) %6.3f ; %3.0f ; %3.0f\n",eval3[1],plg[1],azm[1]); printf("3.(P) %6.3f ; %3.0f ; %3.0f\n\n",eval3[2],plg[2],azm[2]); printf("Best Double Couple: M0=%8.2E dyn.cm\n",M0) ; printf("NP1: Strike=%5.1f ; Dip=%4.1f ; Slip=%6.1f \n",s1,d1,r1) ; printf("NP2: Strike=%5.1f ; Dip=%4.1f ; Slip=%6.1f \n\n",s2,d2,r2) ; /* printf("NP1: Strike=%3.0f ; Dip=%.4f ; Slip=%3.0f \n",s1,d1,r1) ; */ /* printf("NP2: Strike=%3.0f ; Dip=%.4f ; Slip=%3.0f \n\n",s2,d2,r2) ; */ charplot(eq.vm[1], s1,d1, s2,d2, '-', '#', ' ', '\0','\0','\0', RX, RY, stdout) ; free((void*)eq.vm[1]) ; free((void**)eq.vm) ; for(i=0 ; i<3 ; i++) free((void*)evec3[i]) ; free((void**)evec3) ; free((void*) eval3) ; return 0; }