char net_msgp_environment(char stat) { char *s; unsigned long park; if (car_parktime == 0) park = 0; else park = car_time - car_parktime; s = stp_i(net_scratchpad, "MP-0 D", car_doors1); s = stp_i(s, ",", car_doors2); s = stp_i(s, ",", car_lockstate); s = stp_i(s, ",", car_tpem); s = stp_i(s, ",", car_tmotor); s = stp_i(s, ",", car_tbattery); s = stp_i(s, ",", car_trip); s = stp_ul(s, ",", car_odometer); s = stp_i(s, ",", car_speed); s = stp_ul(s, ",", park); s = stp_i(s, ",", car_ambient_temp); s = stp_i(s, ",", car_doors3); s = stp_i(s, ",", car_stale_temps); s = stp_i(s, ",", car_stale_ambient); s = stp_l2f(s, ",", car_12vline, 1); s = stp_i(s, ",", car_doors4); s = stp_l2f(s, ",", car_12vline_ref, 1); s = stp_i(s, ",", car_doors5); return net_msg_encode_statputs(stat, &crc_environment); }
void net_msg_12v_alert(void) { char *s; s = stp_l2f(net_scratchpad, "MP-0 PAALERT!!! 12V BATTERY CRITICAL (", car_12vline, 1); s = stp_l2f(s, "V, ref=", car_12vline_ref, 1); s = stp_rom(s, "V)"); net_msg_encode_puts(); }
void net_msg_12v_alert(void) { char *s; delay100(2); net_msg_start(); if (can_minSOCnotified & CAN_MINSOC_ALERT_12V) s = stp_l2f(net_scratchpad, "MP-0 PAALERT!!! 12V BATTERY CRITICAL (", car_12vline, 1); else s = stp_l2f(net_scratchpad, "MP-0 PA12V BATTERY OK (", car_12vline, 1); s = stp_l2f(s, "V, ref=", car_12vline_ref, 1); s = stp_rom(s, "V)"); net_msg_encode_puts(); net_msg_send(); }
BOOL net_sms_handle_diag(char *caller, char *command, char *arguments) { char *s; if (sys_features[FEATURE_CARBITS] & FEATURE_CB_SOUT_SMS) return FALSE; net_send_sms_start(caller); s = stp_rom(net_scratchpad, "DIAG:"); s = stp_i(s, "\n RED Led:", led_code[OVMS_LED_RED]); s = stp_i(s, "\n GRN Led:", led_code[OVMS_LED_GRN]); s = stp_x(s, "\n NET State:0x", net_state); if (car_12vline > 0) { s = stp_l2f(s, "\n 12V Line:", car_12vline, 1); s = stp_l2f(s, " ref=", car_12vline_ref, 1); } #ifndef OVMS_NO_CRASHDEBUG /* DEBUG / QA stats: output crash counter and decode last reason: */ s = stp_i(s, "\n Crashes:", debug_crashcnt); if (debug_crashreason) { s = stp_rom(s, "\n ..last:"); if (debug_crashreason & 0x01) s = stp_rom(s, " BOR"); // Brown Out Reset if (debug_crashreason & 0x02) s = stp_rom(s, " POR"); // Power On Reset if (debug_crashreason & 0x04) s = stp_rom(s, " PD"); // Power-Down Detection if (debug_crashreason & 0x08) s = stp_rom(s, " TO"); // Watchdog Timeout if (debug_crashreason & 0x10) s = stp_rom(s, " RI"); // Reset Instruction if (debug_crashreason & 0x20) s = stp_rom(s, " STKFUL"); // Stack overflow if (debug_crashreason & 0x40) s = stp_rom(s, " STKUNF"); // Stack underflow s = stp_i(s, " - ", debug_checkpoint); } #endif // OVMS_NO_CRASHDEBUG net_puts_ram(net_scratchpad); return TRUE; }
char net_msgp_tpms(char stat) { char k, *s; long p; #if 0 if ((car_tpms_t[0] == 0) && (car_tpms_t[1] == 0) && (car_tpms_t[2] == 0) && (car_tpms_t[3] == 0)) return stat; // No TPMS, no report // ...new stat fn: No TMPS = one report with stale=-1 #endif s = stp_rom(net_scratchpad, "MP-0 W"); for (k = 0; k < 4; k++) { if (car_tpms_t[k] > 0) { p = (long) ((float) car_tpms_p[k] / 0.2755); s = stp_l2f(s, NULL, p, 1); s = stp_i(s, ",", car_tpms_t[k] - 40); s = stp_rom(s, ","); } else { s = stp_rom(s, "0,0,"); } } s = stp_i(s, NULL, car_stale_tpms); return net_msg_encode_statputs(stat, &crc_tpms); }
void net_sms_12v_alert(char* number) { char *s; delay100(10); net_send_sms_start(number); if (can_minSOCnotified & CAN_MINSOC_ALERT_12V) s = stp_l2f(net_scratchpad, "MP-0 PAALERT!!! 12V BATTERY CRITICAL (", car_12vline, 1); else s = stp_l2f(net_scratchpad, "MP-0 PA12V BATTERY OK (", car_12vline, 1); s = stp_l2f(s, "V, ref=", car_12vline_ref, 1); s = stp_rom(s, "V)"); net_puts_ram(net_scratchpad); net_send_sms_finish(); delay100(5); }
char net_msgp_stat(char stat) { char *p, *s; p = par_get(PARAM_MILESKM); s = stp_i(net_scratchpad, "MP-0 S", car_SOC); s = stp_s(s, ",", p); s = stp_i(s, ",", car_linevoltage); s = stp_i(s, ",", car_chargecurrent); switch (car_chargestate) { case 0x01: s = stp_rom(s, ",charging"); break; case 0x02: s = stp_rom(s, ",topoff"); break; case 0x04: s = stp_rom(s, ",done"); break; case 0x0d: s = stp_rom(s, ",prepare"); break; case 0x0f: s = stp_rom(s, ",heating"); break; default: s = stp_rom(s, ",stopped"); } switch (car_chargemode) { case 0x00: s = stp_rom(s, ",standard"); break; case 0x01: s = stp_rom(s, ",storage"); break; case 0x03: s = stp_rom(s, ",range"); break; case 0x04: s = stp_rom(s, ",performance"); break; default: s = stp_rom(s, ","); } if (*p == 'M') // Kmh or Miles { s = stp_i(s, ",", car_idealrange); s = stp_i(s, ",", car_estrange); } else { s = stp_i(s, ",", KmFromMi(car_idealrange)); s = stp_i(s, ",", KmFromMi(car_estrange)); } s = stp_i(s, ",", car_chargelimit); s = stp_i(s, ",", car_chargeduration); s = stp_i(s, ",", car_charge_b4); s = stp_i(s, ",", car_chargekwh); s = stp_i(s, ",", car_chargesubstate); s = stp_i(s, ",", car_chargestate); s = stp_i(s, ",", car_chargemode); s = stp_i(s, ",", car_timermode); s = stp_i(s, ",", car_timerstart); s = stp_i(s, ",", car_stale_timer); s = stp_l2f(s, ",", (unsigned long)car_cac100, 2); s = stp_i(s, ",", car_chargefull_minsremaining); s = stp_i(s, ",", car_chargelimit_minsremaining); s = stp_i(s, ",", car_chargelimit_rangelimit); s = stp_i(s, ",", car_chargelimit_soclimit); s = stp_i(s, ",", car_coolingdown); s = stp_i(s, ",", car_cooldown_tbattery); s = stp_i(s, ",", car_cooldown_timelimit); s = stp_i(s, ",", car_chargeestimate); return net_msg_encode_statputs(stat, &crc_stat); }