Edit Idea
View Ideas
Idea Date:
Idea Title:
Idea Description:
<p>Call <a href="../ESP32/rStock.php?ticker=">https://bfemuniversity.com/test/ESP32/rStock.php?ticker=</a> every minute</p>
Idea Notes:
<p class="p1">#include <stdio.h></p> <p class="p1">#include <stdlib.h></p> <p class="p1">#include <string.h></p> <p class="p2"> </p> <p class="p3">#define MAX_STOCKS 10</p> <p class="p2"> </p> <p class="p4">typedef struct {</p> <p class="p5"> char name[10];</p> <p class="p5"> float last_price;</p> <p class="p5"> float price_change;</p> <p class="p5"> float percent_change;</p> <p class="p5"> char bid_price[10];</p> <p class="p5"> char ask_price[10];</p> <p class="p5">} Stock;</p> <p class="p2"> </p> <p class="p5">void parse_stock_data(const char *data, Stock stocks[], int *count) {</p> <p class="p5"> *count = 0;</p> <p class="p5"> const char *delim = "\n";</p> <p class="p5"> char *line = strtok(strdup(data), delim);</p> <p class="p2"> </p> <p class="p5"> while (line != NULL && *count < MAX_STOCKS) {</p> <p class="p1"> sscanf(line, "%s Last Price: %f Price Change: %f Percent Change: %f%% Bid Price: %s Ask Price: %s",</p> <p class="p5"> stocks[*count].name,</p> <p class="p5"> &stocks[*count].last_price,</p> <p class="p5"> &stocks[*count].price_change,</p> <p class="p5"> &stocks[*count].percent_change,</p> <p class="p5"> stocks[*count].bid_price,</p> <p class="p5"> stocks[*count].ask_price);</p> <p class="p2"> </p> <p class="p6"> // Handle escaped N\/A values</p> <p class="p5"> if (strcmp(stocks[*count].bid_price, "N/A") == 0) strcpy(stocks[*count].bid_price, "N/A");</p> <p class="p5"> if (strcmp(stocks[*count].ask_price, "N/A") == 0) strcpy(stocks[*count].ask_price, "N/A");</p> <p class="p2"> </p> <p class="p5"> (*count)++;</p> <p class="p5"> line = strtok(NULL, delim);</p> <p class="p5"> }</p> <p class="p5">}</p> <p class="p2"> </p> <p class="p5">int main() {</p> <p class="p5"> const char *data =</p> <p class="p1"> "RIOT Last Price: 7.82 Price Change: +0.51 Percent Change: +6.98% Bid Price: N/A Ask Price: N/A\n"</p> <p class="p1"> "MSTY Last Price: 20.86 Price Change: +1.97 Percent Change: +10.43% Bid Price: 20.85 Ask Price: 20.92\n"</p> <p class="p1"> "DJT Last Price: 20.21 Price Change: +1.04 Percent Change: +5.43% Bid Price: N/A Ask Price: N/A\n"</p> <p class="p1"> "TQQQ Last Price: 61.89 Price Change: +4.10 Percent Change: +7.09% Bid Price: N/A Ask Price: N/A\n"</p> <p class="p1"> "TSLA Last Price: 249.98 Price Change: +9.30 Percent Change: +3.86% Bid Price: N/A Ask Price: N/A";</p> <p class="p2"> </p> <p class="p5"> Stock stocks[MAX_STOCKS];</p> <p class="p5"> int count = 0;</p> <p class="p2"> </p> <p class="p5"> parse_stock_data(data, stocks, &count);</p> <p class="p2"> </p> <p class="p5"> for (int i = 0; i < count; i++) {</p> <p class="p1"> printf("Stock: %s, Last Price: %.2f, Price Change: %.2f, Percent Change: %.2f%%, Bid Price: %s, Ask Price: %s\n",</p> <p class="p5"> stocks[i].name, stocks[i].last_price, stocks[i].price_change, stocks[i].percent_change,</p> <p class="p5"> stocks[i].bid_price, stocks[i].ask_price);</p> <p class="p5"> }</p> <p class="p2"> </p> <p class="p5"> return 0;</p> <p class="p5">}</p>
Update Idea