2017-07-28 33 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你总是可以覆盖< <操作。