ERIS CORE

◆ printStats()

void FLASHMEM AudioDirector::printStats ( )

Definition at line 145 of file AudioDirector.cpp.

145  {
146  if (sci==NULL) return;
147 
148  if (printstats_select == 0){
150  sci->print(F("STATS {\"AudioDirector\":{"));
151  sci->print(F("\"AudioStreams\":{"));
152 
153  uint16_t from, to;
154  from = printstats_block++ * 16; //block size
155  to = printstats_block * 16;
156  if (to >= obj_count){
157  to = obj_count;
159  printstats_block = 0;
160  }
161  for(uint16_t i=from; i < to;i++){ //transmitt in blocks
162  sci->print(F("\""));
163  sci->print(p_audiostream_obj_pool[i]->short_name);sci->print(F(":"));
164  sci->print(p_audiostream_obj_pool[i]->instance);
165  sci->print(F("\":{\"cpu\":"));
166  sci->print(p_audiostream_obj_pool[i]->processorUsage());
167  sci->print(F(",\"cpu_max\":"));
168  sci->print(p_audiostream_obj_pool[i]->processorUsageMax());
169  sci->print(F(",\"category\":\""));
170  sci->print(p_audiostream_obj_pool[i]->category);sci->print(F("\""));
171  sci->print(F(",\"inputs\":"));
172  sci->print(p_audiostream_obj_pool[i]->unum_inputs);
173  sci->print(F(",\"outputs\":"));
174  sci->print(p_audiostream_obj_pool[i]->unum_outputs);
175  sci->print("}"); //close obj
176  if ( i < (to -1)) sci->print(",");
177  }
178  sci->print(F("}}}"));
179  sci->sendLZ4Message();
180  }
181  }else if (printstats_select == 1){
183  sci->print(F("STATS {\"AudioDirector\":{"));
184  sci->print(F("\"AudioConnectionPool\":{"));
185  sci->print(F("\"active_connections\":"));
186  sci->print(active_connections);
187 
188  uint16_t from, to;
189  from = printstats_block++ * 32;
190  to = printstats_block * 32;
191  if (to >= MAX_CONNECTIONS){
192  to = MAX_CONNECTIONS;
194  printstats_block = 0;
195  }
196 
197  for(uint16_t i=from; i < to;i++){ //transmitt in blocks
198  sci->print(F(",\""));
199  sci->print(i); //connection index used as a container
200  sci->print(F("\":{"));
201  sci->print(F("\"inUse\":"));
202  sci->print(p_cord[i]->isConnected);
203  if (p_cord[i]->isConnected == true){ //assigned connections
204  sci->print(F(",\"srcType\":\""));
205  sci->print(p_cord[i]->pSrc->short_name);
206  sci->print(F("\",\"srcInstance\":"));
207  sci->print(p_cord[i]->pSrc->instance);
208  sci->print(F(",\"srcPort\":"));
209  sci->print(p_cord[i]->src_index);
210  sci->print(F(",\"destType\":\""));
211  sci->print(p_cord[i]->pDst->short_name);
212  sci->print(F("\",\"destInstance\":"));
213  sci->print(p_cord[i]->pDst->instance);
214  sci->print(F(",\"destPort\":"));
215  sci->print(p_cord[i]->dest_index);
216  }else{
217  //unassigned connections
218  sci->print(F(",\"srcType\":\""));
219  sci->print(F("None"));
220  sci->print(F("\",\"srcInstance\":\""));
221  sci->print(F("None"));
222  sci->print(F("\",\"srcPort\":\""));
223  sci->print(F("None"));
224  sci->print(F("\",\"destType\":\""));
225  sci->print(F("None"));
226  sci->print(F("\",\"destInstance\":\""));
227  sci->print(F("None"));
228  sci->print(F("\",\"destPort\":\""));
229  sci->print(F("None\""));
230  }
231  sci->print(F("}")); //close the connection container
232  }
233  sci->println(F("}}}")); //close the connection container
234  sci->sendLZ4Message();
235  }
236  }else if (printstats_select == 2){
237  printstats_select = 0;
238  //only check 'once in a great while' as the ADC serial link is relatively slow
239  if( (random(100) > 80) && (!sci->throttle())){
240  sci->print(F("STATS {"));
242  sci->println(F("}"));
243  sci->send();
244  }
245  }
246 }
void ExtADCPrintStatus(Print *p)
Definition: PCM1863.h:57
uint8_t printstats_select
Definition: AudioDirector.h:74
AudioStream * p_audiostream_obj_pool[MAX_AUDIO_STREAM_OBJECTS]
Definition: AudioDirector.h:71
uint16_t printstats_block
Definition: AudioDirector.h:75
AudioConnection * p_cord[MAX_CONNECTIONS]
Definition: AudioDirector.h:82
uint16_t active_connections
Definition: AudioDirector.h:76
SvcSerialCommandInterface * sci
Definition: AudioDirector.h:67
uint16_t obj_count
Definition: AudioDirector.h:77
bool requestStartLZ4Message()
request to start a lz4 compressed message starts the message and returns true if available returns f...
bool throttle()
returns true if the available serial buffer falls below SERIAL_THROTTLE_BUFFER_REMAINING_THRESHOLD if...
void send()
immediately transmit then clear the txBuffer
void sendLZ4Message()
Calling this function signals the end of a compressed message. The txBuffer contents are lz4 compres...

References active_connections, ExtADCPrintStatus(), obj_count, p_audiostream_obj_pool, p_cord, printstats_block, printstats_select, SvcSerialCommandInterface::requestStartLZ4Message(), sci, SvcSerialCommandInterface::send(), SvcSerialCommandInterface::sendLZ4Message(), and SvcSerialCommandInterface::throttle().

Referenced by SvcSerialCommandInterface::update().

+ Here is the call graph for this function:
+ Here is the caller graph for this function: