2017-07-28 36 views
0

我使用mbed在線編譯器來編寫程序,並把它上傳到百科MDOT LORA收發。我的程序基本上是將特定大小的數據包發送到網關。在我的計劃結束時,我想獲得關於通信的一些統計數據。所以我被告知要使用一個名爲getStats()的函數;那是在一個頭文件(mDot.h)中。到底什麼提到的關於此功能的mDot.h如下:應該返回一個結構的函數,我怎麼可以打印此結構在C++?

class mDot { 
    public: 
    typedef struct { 
       uint32_t Up; 
       uint32_t Down; 
       uint32_t Joins; 
       uint32_t JoinFails; 
       uint32_t MissedAcks; 
     } mdot_stats; 

// get current statistics 
// Join Attempts, Join Fails, Up Packets, Down Packets, Missed Acks 

mdot_stats getStats(); 

所以任何想法,請我如何可以調用這個函數在我的main.cpp和獲取值(上,下,加入,JoinFails和MissedAcks)在我的consle屏幕上打印。 非常感謝您的幫助,我真的需要這個..

諾曼

回答

0

如何:

mDot::mdot_stats stats = dot->getStats(); 
printf("Number of uplink packets %d\n", stats.Up); 
+0

謝謝揚,這正是我一直在尋找... – Noman

+0

歡迎堆棧溢出!如果答案解決您的問題,請點擊「接受」框旁邊的答案:-)。 –

0

假設你有可用的printf,你可以簡單地做:

void print(const mdot_stats& stats){ 
    printf("Join Attempts: %d,\t" stats.Joins); 
    printf("Join Fails: %d,\t" stats.JoinFails); 
    printf("Up Packets: %d,\t" stats.Up); 
    printf("Down Packets: %d,\t" stats.Down); 
    printf("Missed Acks: %d,\t" stats.MissedAcks); 
} 

否則,如果你足夠幸運,在你的嵌入式環境ostreams你總是可以覆蓋< <操作。