137 lines
3.5 KiB
C++
137 lines
3.5 KiB
C++
#ifndef _IO_H_
|
||
#define _IO_H_
|
||
#include "Arduino.h"
|
||
|
||
class IoClass
|
||
{
|
||
public:
|
||
|
||
//input pin
|
||
#define PINI_EMG 30
|
||
#define PINI_BTN_1 31
|
||
#define PINI_BTN_2 32
|
||
#define PINI_BTN_3 33
|
||
#define PINI_BTN_4 34
|
||
|
||
#define PINI_OVERLOADL1 35
|
||
#define PINI_OVERLOADL2 36
|
||
|
||
#define PINI_OVERLOADR1 37
|
||
#define PINI_OVERLOADR2 38
|
||
|
||
#define PINI_EMPTY_38 39
|
||
|
||
#define PINI_BTN_ZUP 40
|
||
#define PINI_BTN_ZDN 41
|
||
#define PINI_LIMIT_LU 42
|
||
#define PINI_LIMIT_LD 43
|
||
#define PINI_LIMIT_RU 44
|
||
#define PINI_LIMIT_RD 45
|
||
#define PINI_STOP 46
|
||
|
||
//send data index
|
||
#define IDXI_EMG 0
|
||
#define IDXI_BTN_1 1
|
||
#define IDXI_BTN_2 2
|
||
#define IDXI_BTN_3 3
|
||
#define IDXI_BTN_4 4
|
||
#define IDXI_OVERLOADL 5
|
||
#define IDXI_OVERLOADR 6
|
||
#define IDXI_EMPTY7 7
|
||
#define IDXI_EMPTY8 8
|
||
#define IDXI_BTN_ZUP 9
|
||
#define IDXI_BTN_ZDN 10
|
||
#define IDXI_LIMIT_LU 11
|
||
#define IDXI_LIMIT_LD 12
|
||
#define IDXI_LIMIT_RU 13
|
||
#define IDXI_LIMIT_RD 14
|
||
#define IDXI_STOP 15
|
||
|
||
//output
|
||
#define PINO_GUIDEMOTOR_LDIR 22 //Guide Motor Direction
|
||
#define PINO_GUIDEMOTOR_LRUN 23 //Guide Motor Start
|
||
#define PINO_GUIDEMOTOR_RDIR 24 //
|
||
#define PINO_GUIDEMOTOR_RRUN 25 //Guide Motor Run(STA<54><41> <20><><EFBFBD><EFBFBD>ȭ<EFBFBD><C8AD> [IO.cpp:Update()] )
|
||
#define PINO_EMPTY_26 26
|
||
#define PINO_EMPTY_27 27
|
||
#define PINO_EMPTY_28 28
|
||
#define PINO_EMPTY_29 29
|
||
|
||
|
||
#define IDXO_GUIDEMOTOR_LDIR 0 //Guide Motor Direction
|
||
#define IDXO_GUIDEMOTOR_LRUN 1 //Guide Motor Start
|
||
#define IDXO_GUIDEMOTOR_RDIR 2 //
|
||
#define IDXO_GUIDEMOTOR_RRUN 3 //Guide Motor Run(STA<54><41> <20><><EFBFBD><EFBFBD>ȭ<EFBFBD><C8AD> [IO.cpp:Update()] )
|
||
#define IDXO_EMPTY_04 4
|
||
#define IDXO_EMPTY_05 5
|
||
#define IDXO_EMPTY_06 6
|
||
#define IDXO_EMPTY_07 7
|
||
#define IDXO_EMPTY_08 8
|
||
#define IDXO_CHARGE_ON 9
|
||
#define IDXO_MOT_POWER_L 10
|
||
#define IDXO_MOT_POWER_R 11
|
||
#define IDXO_EMPTY_42 12
|
||
#define IDXO_EMPTY_43 13
|
||
#define IDXO_EMPTY_44 14
|
||
#define IDXO_EMPTY_45 15
|
||
|
||
//<2F>Ƴ<EFBFBD><C6B3>α<EFBFBD><CEB1>Է<EFBFBD>(<28>ɹ<EFBFBD>ȣ)
|
||
#define PINAI_0 A0 //<2F><><EFBFBD>׳ݼ<D7B3><DDBC><EFBFBD>(FRONT) <20><>ġ <20><>
|
||
#define PINAI_1 A1 //<2F><><EFBFBD>׳ݼ<D7B3><DDBC><EFBFBD>(REAR) <20><>ġ <20><>
|
||
#define PINAI_2 A2 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
#define PINAI_3 A3 //<2F><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20>б<EFBFBD>
|
||
|
||
//<2F>Ƴ<EFBFBD><C6B3>α<EFBFBD> <20>Է<EFBFBD>(<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ε<EFBFBD><CEB5><EFBFBD>)
|
||
#define IDXAI_0 0
|
||
#define IDXAI_1 1
|
||
#define IDXAI_2 2
|
||
#define IDXAI_3 3
|
||
|
||
//<2F>Ƴ<EFBFBD><C6B3>α<EFBFBD><CEB1><EFBFBD><EFBFBD>(PWM)
|
||
#define PINAO_4 A4 //Z<><5A> <20><><EFBFBD><EFBFBD> <20>ӵ<EFBFBD>
|
||
#define PINAO_5 A5 //<2F><><EFBFBD>ʸ<EFBFBD><CAB8><EFBFBD> <20>ӵ<EFBFBD>
|
||
#define PINAO_6 A6 //<2F><><EFBFBD>ʸ<EFBFBD><CAB8><EFBFBD> <20>ӵ<EFBFBD>
|
||
#define PINAO_7 A7 //<2F><><EFBFBD><EFBFBD><EFBFBD>ʸ<EFBFBD><CAB8><EFBFBD> <20>ӵ<EFBFBD>
|
||
|
||
//<2F>Ƴ<EFBFBD><C6B3>α<EFBFBD><CEB1><EFBFBD><EFBFBD>(<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ε<EFBFBD><CEB5><EFBFBD>)
|
||
#define IDXAO_0 0 //Z<><5A> <20><><EFBFBD><EFBFBD> <20>ӵ<EFBFBD>
|
||
#define IDXAO_1 1 //(<28><>+<2B><>) <20><><EFBFBD><EFBFBD>
|
||
#define IDXAO_2 2 //<2F><><EFBFBD>ʸ<EFBFBD><CAB8><EFBFBD> <20>ӵ<EFBFBD>
|
||
#define IDXAO_3 3 //<2F><><EFBFBD><EFBFBD><EFBFBD>ʸ<EFBFBD><CAB8><EFBFBD> <20>ӵ<EFBFBD>
|
||
|
||
#define MAF_SIZE 30
|
||
|
||
void Setup();
|
||
void Update();
|
||
bool IsPowerLoss();
|
||
private:
|
||
|
||
int bufferF[MAF_SIZE];
|
||
int indexF = 0;
|
||
int countF = 0;
|
||
int iF;
|
||
int sumF = 0;
|
||
int tempF;
|
||
float avgF;
|
||
|
||
int bufferB[MAF_SIZE];
|
||
int indexB = 0;
|
||
int countB = 0;
|
||
int iB;
|
||
int sumB = 0;
|
||
int tempB;
|
||
float avgB;
|
||
|
||
long tm_gateoutOn = 0;
|
||
long tm_gateoutOf = 0;
|
||
long tm_markOn = 0;
|
||
long tm_markOff = 0;
|
||
|
||
unsigned long runtime = 0;
|
||
void IOValueChanged(bool isout, uint8_t index, bool newValue);
|
||
|
||
};
|
||
|
||
extern IoClass io;
|
||
#endif
|