一个应该 return 结构的函数,我如何在 C++ 中打印这个结构?
A function that should return a struct, how can i print this struct in C++?
我正在使用 mbed 在线编译器编写程序并将其上传到 multitech mDot LoRa 收发器。我的程序基本上是关于将特定大小的数据包发送到网关。在我的程序结束时,我想获得一些关于通信的统计数据。所以我被告知使用一个名为 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 中调用此函数并获取在我的控制台屏幕上打印的值(Up、Down、Joins、JoinFails 和 MissedAcks)的任何想法。
非常感谢你的帮助,因为我真的需要这个..
诺曼
怎么样:
mDot::mdot_stats stats = dot->getStats();
printf("Number of uplink packets %d\n", stats.Up);
假设您有可用的 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,您可以随时覆盖 << 运算符。
我正在使用 mbed 在线编译器编写程序并将其上传到 multitech mDot LoRa 收发器。我的程序基本上是关于将特定大小的数据包发送到网关。在我的程序结束时,我想获得一些关于通信的统计数据。所以我被告知使用一个名为 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 中调用此函数并获取在我的控制台屏幕上打印的值(Up、Down、Joins、JoinFails 和 MissedAcks)的任何想法。 非常感谢你的帮助,因为我真的需要这个..
诺曼
怎么样:
mDot::mdot_stats stats = dot->getStats();
printf("Number of uplink packets %d\n", stats.Up);
假设您有可用的 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,您可以随时覆盖 << 运算符。