Skip to content

Commit aa069ca

Browse files
authored
Update API (Ameba-AIoT#286)
- Fix warning issue - Add audio deinit and sd gpio deinit function after playing mp3
1 parent 94718f2 commit aa069ca

File tree

4 files changed

+24
-22
lines changed

4 files changed

+24
-22
lines changed

Arduino_package/hardware/libraries/FileSystem/src/AmebaFatFS.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@ void AmebaFatFS::end(void)
3535
fatfs_sd_close();
3636
memset(&fatfs_sd, 0, sizeof(fatfs_sd_params_t));
3737
fatfs_sd.drv_num = -1;
38+
sd_gpio_deinit();
3839
}
3940

4041
File AmebaFatFS::open(const String &path)

Arduino_package/hardware/libraries/Multimedia/src/helix_mp3_drv.c

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -75,6 +75,8 @@ void audio_play_binary_array(uint8_t *srcbuf, uint32_t len)
7575
}
7676
}
7777

78+
audio_deinit(&g_taudio);
79+
printf("audio deinitialized\r\n");
7880
printf("decoding finished\r\n");
7981
}
8082

Arduino_package/hardware/libraries/NeuralNetwork/examples/GenAIVision/GenAIVision.ino

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ void initWiFi()
4646
Serial.print("Connecting to ");
4747
Serial.println(wifi_ssid);
4848

49-
long int StartTime = millis();
49+
uint32_t StartTime = millis();
5050
while (WiFi.status() != WL_CONNECTED) {
5151
delay(500);
5252
if ((StartTime + 5000) < millis()) {
@@ -59,7 +59,6 @@ void initWiFi()
5959
Serial.println("STAIP address: ");
6060
Serial.println(WiFi.localIP());
6161
Serial.println("");
62-
6362
break;
6463
}
6564
}
@@ -83,10 +82,10 @@ void setup()
8382
Camera.getImage(0, &img_addr, &img_len);
8483

8584
// openAI vision prompt
86-
llm.openaivision(openAI_key, prompt_msg, img_addr, img_len, client);
85+
// llm.openaivision(openAI_key, prompt_msg, img_addr, img_len, client);
8786

8887
// Gemini vision prompt
89-
// llm.geminivision(Gemini_key, prompt_msg, img_addr, img_len, client);
88+
llm.geminivision(Gemini_key, prompt_msg, img_addr, img_len, client);
9089

9190
// Llama vision prompt
9291
// llm.llamavision(Llama_key, prompt_msg, img_addr, img_len, client);

Arduino_package/hardware/libraries/NeuralNetwork/src/NNGenAIVision.cpp

Lines changed: 18 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -20,12 +20,12 @@ void NNGenAIVision::openaivision(String key, String message, uint32_t img_addr,
2020
Serial.println("Connection successful");
2121

2222
uint8_t *fbBuf = (uint8_t *)img_addr;
23-
size_t fbLen = img_len;
23+
uint32_t fbLen = img_len;
2424

2525
char *input = (char *)fbBuf;
2626
char output[base64_enc_len(3)];
2727
String imageFile = "data:image/jpeg;base64,";
28-
for (int i = 0; i < fbLen; i++) {
28+
for (uint32_t i = 0; i < fbLen; i++) {
2929
base64_encode(output, (input++), 3);
3030
if (i % 3 == 0) {
3131
imageFile += String(output);
@@ -41,13 +41,13 @@ void NNGenAIVision::openaivision(String key, String message, uint32_t img_addr,
4141
client.println("Connection: close");
4242
client.println();
4343

44-
int Index;
44+
unsigned int Index;
4545
for (Index = 0; Index < Data.length(); Index = Index + 1024) {
4646
client.print(Data.substring(Index, Index + 1024));
4747
}
4848

49-
int waitTime = 10000;
50-
long startTime = millis();
49+
uint32_t waitTime = 10000;
50+
uint32_t startTime = millis();
5151
boolean state = false;
5252
boolean markState = false;
5353
while ((startTime + waitTime) > millis()) {
@@ -79,7 +79,7 @@ void NNGenAIVision::openaivision(String key, String message, uint32_t img_addr,
7979
client.stop();
8080

8181
JsonObject obj;
82-
DynamicJsonDocument doc(4096);
82+
JsonDocument doc;
8383
deserializeJson(doc, Feedback);
8484
obj = doc.as<JsonObject>();
8585
getResponse = obj["choices"][0]["message"]["content"].as<String>();
@@ -103,11 +103,11 @@ void NNGenAIVision::geminivision(String key, String message, uint32_t img_addr,
103103
Serial.println("Connection successful");
104104

105105
uint8_t *fbBuf = (uint8_t *)img_addr;
106-
size_t fbLen = img_len;
106+
uint32_t fbLen = img_len;
107107
char *input = (char *)fbBuf;
108108
char output[base64_enc_len(3)];
109109
String imageFile = "";
110-
for (int i = 0; i < fbLen; i++) {
110+
for (uint32_t i = 0; i < fbLen; i++) {
111111
base64_encode(output, (input++), 3);
112112
if (i % 3 == 0) {
113113
imageFile += String(output);
@@ -123,13 +123,13 @@ void NNGenAIVision::geminivision(String key, String message, uint32_t img_addr,
123123
client.println("Connection: close");
124124
client.println();
125125

126-
int Index;
126+
unsigned int Index;
127127
for (Index = 0; Index < Data.length(); Index = Index + 1024) {
128128
client.print(Data.substring(Index, Index + 1024));
129129
}
130130

131-
int waitTime = 10000;
132-
long startTime = millis();
131+
uint32_t waitTime = 10000;
132+
uint32_t startTime = millis();
133133
boolean state = false;
134134
boolean markState = false;
135135
while ((startTime + waitTime) > millis()) {
@@ -161,7 +161,7 @@ void NNGenAIVision::geminivision(String key, String message, uint32_t img_addr,
161161
client.stop();
162162

163163
JsonObject obj;
164-
DynamicJsonDocument doc(4096);
164+
JsonDocument doc;
165165
deserializeJson(doc, Feedback);
166166
obj = doc.as<JsonObject>();
167167
getResponse = obj["candidates"][0]["content"]["parts"][0]["text"].as<String>();
@@ -185,12 +185,12 @@ void NNGenAIVision::llamavision(String key, String message, uint32_t img_addr, u
185185
Serial.println("Connection successful");
186186

187187
uint8_t *fbBuf = (uint8_t *)img_addr;
188-
size_t fbLen = img_len;
188+
uint32_t fbLen = img_len;
189189

190190
char *input = (char *)fbBuf;
191191
char output[base64_enc_len(3)];
192192
String imageFile = "data:image/jpeg;base64,";
193-
for (int i = 0; i < fbLen; i++) {
193+
for (uint32_t i = 0; i < fbLen; i++) {
194194
base64_encode(output, (input++), 3);
195195
if (i % 3 == 0) {
196196
imageFile += String(output);
@@ -206,13 +206,13 @@ void NNGenAIVision::llamavision(String key, String message, uint32_t img_addr, u
206206
client.println("Connection: close");
207207
client.println();
208208

209-
int Index;
209+
unsigned int Index;
210210
for (Index = 0; Index < Data.length(); Index = Index + 1024) {
211211
client.print(Data.substring(Index, Index + 1024));
212212
}
213213

214-
int waitTime = 10000;
215-
long startTime = millis();
214+
uint32_t waitTime = 10000;
215+
uint32_t startTime = millis();
216216
boolean state = false;
217217
boolean markState = false;
218218
while ((startTime + waitTime) > millis()) {
@@ -244,7 +244,7 @@ void NNGenAIVision::llamavision(String key, String message, uint32_t img_addr, u
244244
client.stop();
245245

246246
JsonObject obj;
247-
DynamicJsonDocument doc(4096);
247+
JsonDocument doc;
248248
deserializeJson(doc, Feedback);
249249
obj = doc.as<JsonObject>();
250250
getResponse = obj["choices"][0]["message"]["content"].as<String>();

0 commit comments

Comments
 (0)