initial commit
This commit is contained in:
119
Arduino_PLC/VarClass.h
Normal file
119
Arduino_PLC/VarClass.h
Normal file
@@ -0,0 +1,119 @@
|
||||
#ifndef _VAR_H_
|
||||
#define _VAR_H_
|
||||
|
||||
#define DEBUG
|
||||
#define sprint(...) Serial1.print(__VA_ARGS__)
|
||||
#define sprintln(...) Serial1.println(__VA_ARGS__)
|
||||
#ifdef DEBUG
|
||||
#define dprint(...) Serial1.print(__VA_ARGS__)
|
||||
#define dprintln(...) Serial1.println(__VA_ARGS__)
|
||||
#else
|
||||
#define dprint(...)
|
||||
#define dprint(...)
|
||||
#endif
|
||||
|
||||
|
||||
#include "arduino.h"
|
||||
#include <EEPROM.h>
|
||||
#include "UtilClass.h"
|
||||
|
||||
//모든 사용가능한 커맨드를 넣는다(이 파일은 서브PLC파일)
|
||||
enum eCommand
|
||||
{
|
||||
LOAD = 0, //EEPROM 불러오기
|
||||
SAVE, //EEPROM 저장
|
||||
RESET, //초기화
|
||||
PINGCHK,
|
||||
SET_PINMODE, //PINMODE 설정
|
||||
SET_DOUTPUT, //디지털출력설정(포트번호,값[1,0])
|
||||
SET_AOUTPUT, //아날로그출력설정(포트GET_SETTING = 50, //셋팅값 요청
|
||||
SET_FLAG,
|
||||
SET_EEPROM,
|
||||
SET_MANUALSPEED,
|
||||
GET_SETTING = 50,
|
||||
GUIDE_MOT= 90, //가이드커버(양쪽) 0=멈춤,1=UP,2=DN 아스키코드표 90=Z
|
||||
SET_EEP_DIREV,
|
||||
};
|
||||
|
||||
//asci 0=48,1=49,2=50
|
||||
|
||||
enum eEEPAddress
|
||||
{
|
||||
EEP_IOINTERVAL = 0,
|
||||
EEP_RESETCOUNT,
|
||||
EEP_DIREVH,
|
||||
EEP_DIREVL,
|
||||
EEP_OPTION,
|
||||
EEP_UPTIME,
|
||||
};
|
||||
|
||||
//플래그 총 32개 모두 다씀
|
||||
enum eFlag
|
||||
{
|
||||
FLAG_STOPZ= 0,
|
||||
FLAG_SETUP,
|
||||
FLAG_WAIT,
|
||||
FLAG_AUTORUN,
|
||||
FLAG_MANUALRUN,
|
||||
FLAG_LIMITHIGHL,
|
||||
FLAG_LIMITHIGHR,
|
||||
FLAG_LIMITLOWL,
|
||||
FLAG_LIMITLOWR,
|
||||
FLAG_POWERLOSS,
|
||||
FLAG_DIR,
|
||||
FLAG_LEFT_RUN,
|
||||
FLAG_RIGHT_RUN,
|
||||
FLAG_RUN_CMD,
|
||||
FLAG_GO_CHAGER = 26,
|
||||
FLAG_ENABLE_AD4INVERT=27,
|
||||
FLAG_ENABLE_LOG_SPEED = 28,
|
||||
};
|
||||
|
||||
class VarClass
|
||||
{
|
||||
|
||||
public:
|
||||
|
||||
unsigned long serialprinttime = 0;
|
||||
uint16_t runtime = 0;
|
||||
long pingtime = 0;
|
||||
|
||||
//SUB
|
||||
|
||||
uint32_t IOData = 0; //IO데이터가 있으며 DI : Low 16bit, DO : High 16bit
|
||||
uint8_t ANData[4]; //A0 ~ A3
|
||||
uint8_t AOData[4]; //A4 ~ A6
|
||||
|
||||
void Setup();
|
||||
void Update();
|
||||
void runCommand(eCommand cmd, uint8_t p1, uint8_t p2);
|
||||
|
||||
uint8_t _eep_resetcount = 0; //장치초기화 횟수
|
||||
uint8_t _eep_iosendinterval = 0;
|
||||
|
||||
uint8_t _eep_option = 0; //옵션값(이 값은 FLAG와 연결됨)
|
||||
|
||||
uint8_t _eep_pindir_iH = 0; //Input High
|
||||
uint8_t _eep_pindir_iL = 0; //Input Low
|
||||
|
||||
uint8_t manual_speed = 0; //속도고정값
|
||||
|
||||
void eeprom_save(); //EEPROM 쓰기
|
||||
void eeprom_load(); //EEPROM 읽기
|
||||
void eeprom_incResetCount(); //초기화횟수증가 및 저장
|
||||
|
||||
void setFlag(uint8_t pos, bool value, String Readson); //플래그쓰기
|
||||
bool getFlag(uint8_t pos); //플래그읽기
|
||||
uint32_t getFlagValue(); //플래그값확인
|
||||
|
||||
bool runReset = false; //이값을 설정하면 Project.Ino 에서 초기화를 수행함
|
||||
|
||||
private:
|
||||
|
||||
uint32_t flag = 0; //시스템플래그
|
||||
uint32_t flag_ = 0;
|
||||
//void FlagValueChanged(uint8_t index, bool newValue);
|
||||
};
|
||||
|
||||
extern VarClass var;
|
||||
#endif
|
||||
Reference in New Issue
Block a user