Hayato Kikuchi / Mbed OS MonitoringTest

Dependencies:   SoftPWM

Revision:
0:a33375289d79
Child:
1:6633661058ec
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/CommunicationMonitoring.cpp	Wed Dec 22 11:15:12 2021 +0000
@@ -0,0 +1,35 @@
+#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::getAvailable(int _device_num)
+{
+    return comminfo[_device_num].Available;
+}