Hayato Kikuchi / Mbed OS MonitoringTest

Dependencies:   SoftPWM

CommunicationMonitoring.cpp

Committer:
kikuchi8810
Date:
2021-12-23
Revision:
1:6633661058ec
Parent:
0:a33375289d79

File content as of revision 1:6633661058ec:

#include "CommunicationMonitoring.h"

CommunicationMonitoring::CommunicationMonitoring()
{
    device_num = 0;
}

int CommunicationMonitoring::init(int _time_out_ms, int _int_time_ms)
{
    comminfo[device_num].time_out_ms = _time_out_ms;
    comminfo[device_num].int_time_ms = _int_time_ms;
    comminfo[device_num].Available = false;
    comminfo[device_num].count_ms = _time_out_ms;
    comminfo[device_num].pre_count_ms = 0;

    return device_num;

    if(device_num < 9) device_num++;
}

void CommunicationMonitoring::Monitoring(bool commCheck, int _device_num)
{
    comminfo[_device_num].count_ms += comminfo[_device_num].int_time_ms;

    if(commCheck) comminfo[_device_num].pre_count_ms = comminfo[_device_num].count_ms - comminfo[_device_num].int_time_ms;

    comminfo[_device_num].Available = comminfo[_device_num].time_out_ms > (comminfo[_device_num].count_ms - comminfo[_device_num].pre_count_ms);

    if(comminfo[_device_num].count_ms > comminfo[_device_num].time_out_ms * 1000) comminfo[_device_num].count_ms = comminfo[_device_num].time_out_ms; //オーバーフロー対策
}

bool CommunicationMonitoring::isAvailable(int _device_num)
{
    return comminfo[_device_num].Available;
}
bool CommunicationMonitoring::isAllAvailable(void)
{
    bool checker = true;
    for(int i = 0; i <= device_num; i++) checker *= comminfo[i].Available;

    return checker;
}