#ifndef __MULTI_METERS__
#define __MULTI_METERS__

#include <sys/types.h>
#include "ipc_session.h"
#include "dy_utils/dy_common.h"

#define DEV_TYPE_MAX_LEN 32

typedef struct meter_s {
    CHAR type[DEV_TYPE_MAX_LEN];
    CHAR devSn[SN_MAX_LEN];
    CHAR belongGw[SN_MAX_LEN];
    double p;
    time_t lastUpdateTs;        // Ts: Timestamp
} meter_t;

typedef struct meters_offline_status_s {
    bool isP1MeterOffline;
    bool isP3MeterOffline;
} meter_offline_state_t;

typedef struct multi_meterss_var_s {
    ipc_session_t *session;
    meter_t *pgridMeters;
    int gridMeterCnt;
    meter_t *ploadMeters;
    int loadMeterCnt;
    meter_t *pbmsMeters;
    int bmsMeterCnt;
    meter_offline_state_t metersState;
    CHAR snStr[SN_MAX_LEN];
    CHAR destSn[SN_MAX_LEN];
    WORD period_poll_timer;
} multi_meters_var_t;

#endif