一个应该返回结构的函数,如何在C ++中打印这个结构?

时间:2017-07-28 15:02:33

标签: function mbed lora

我使用mbed在线编译器编写程序并将其上传到multitech mDot LoRa tranceiver。我的程序主要是关于将特定大小的数据包发送到网关。在我的程序结束时,我想获得一些有关通信的统计信息。所以我被告知要使用一个名为getStats()的函数;这是在一个头文件(mDot.h)中。关于这个函数的所有内容,mDot.h如下:

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中调用此函数并获取我的consle屏幕中打印的值(Up,Down,Joins,JoinFails和MissedAcks)。 真的很感谢你的帮助,因为我真的需要这个......

Noman

2 个答案:

答案 0 :(得分:0)

怎么样:

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

答案 1 :(得分: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);
}

否则,如果您有幸在嵌入式环境中拥有ostream,则可以始终覆盖<<操作