#include <SoftwareSerial.h>
SoftwareSerial Serial100(10, 11);
struct _sVFUPD
{
int mode=0;
int port=0;
int index=0;
String data="";
}
;
_sVFUPD _sVFUPDPort100;
int input_182067843_1;
int offset_182067843_1;
float amperage_182067843_1;
const float vpp_182067843_1= 0.00488758553;
int points_182067843_1;
float voltage_182067843_1;
int input_182067843_2;
int offset_182067843_2;
float amperage_182067843_2;
const float vpp_182067843_2= 0.00488758553;
int points_182067843_2;
float voltage_182067843_2;
bool _gtv1 = 0;
bool _gtv2 = 0;
float _gtv3;
float _gtv4;
bool _gtv5;
bool _gtv6;
bool _gtv7;
bool _gtv8;
int _gtv9;
int _gtv10;
bool _RV4CP100 = 1;
bool _RV1CP100 = 1;
bool _tim1I = 0;
bool _tim1O = 0;
unsigned long _tim1P = 0UL;
bool _tim2I = 0;
bool _tim2O = 0;
unsigned long _tim2P = 0UL;
unsigned long _stou1 = 0UL;
bool _RV2CP100 = 1;
bool _RV3CP100 = 1;
void setup()
{
pinMode(6, OUTPUT);
digitalWrite(6, 0);
pinMode(7, OUTPUT);
digitalWrite(7, 0);
pinMode(8, OUTPUT);
digitalWrite(8, 0);
pinMode(9, OUTPUT);
digitalWrite(9, 0);
Serial.begin(9600, SERIAL_8N1);
Serial100.begin(9600);
_stou1 = millis();
_sVFUPDPort100.port = 100;
delay(200);
}
void loop()
{
if (Serial100.available())
{
_readByteFromUART((Serial100.read()),100);
}
//Плата:1
//Наименование:проверка условия
_gtv9 = (analogRead (1));
if(((analogRead (1))) > (520))
{
_tim1O = 1;
_tim1I = 1;
}
else
{
if(_tim1I)
{
_tim1I = 0;
_tim1P = millis();
}
else
{
if (_tim1O)
{
if (_isTimer(_tim1P, 2000)) _tim1O = 0;
}
}
}
_gtv1 = !(_tim1O);
_gtv10 = (analogRead (3));
if(((analogRead (3))) > (520))
{
_tim2O = 1;
_tim2I = 1;
}
else
{
if(_tim2I)
{
_tim2I = 0;
_tim2P = millis();
}
else
{
if (_tim2O)
{
if (_isTimer(_tim2P, 2000)) _tim2O = 0;
}
}
}
_gtv2 = !(_tim2O);
//Плата:2
//Наименование:вычисление ампеража
input_182067843_1 = (analogRead (1));
offset_182067843_1 = 509;
points_182067843_1 = input_182067843_1 - offset_182067843_1;
voltage_182067843_1 = points_182067843_1 * vpp_182067843_1;
amperage_182067843_1 = voltage_182067843_1 / 0.02;
_gtv3 = amperage_182067843_1;
input_182067843_2 = (analogRead (3));
offset_182067843_2 = 515;
points_182067843_2 = input_182067843_2 - offset_182067843_2;
voltage_182067843_2 = points_182067843_2 * vpp_182067843_2;
amperage_182067843_2 = voltage_182067843_2 / 0.02;
_gtv4 = amperage_182067843_2;
//Плата:3
//Наименование:выполнение условия
digitalWrite(6, ((_RV1CP100) && (_gtv1)));
_gtv5 = _RV1CP100;
digitalWrite(7, ((_RV2CP100) && (_gtv1)));
_gtv6 = _RV2CP100;
digitalWrite(8, ((_RV3CP100) && (_gtv2)));
_gtv7 = _RV3CP100;
digitalWrite(9, ((_RV4CP100) && (_gtv2)));
_gtv8 = _RV4CP100;
if (1)
{
if (_isTimer(_stou1, 200))
{
Serial.println(((String("DT509 ")) + ((_floatToStringWitRaz(_gtv3,2))) + (String(" / ")) + ((String(_gtv9, DEC))) + (String(" ")) + (String("DT515 ")) + ((_floatToStringWitRaz(_gtv4,2))) + (String(" / ")) + ((String(_gtv10, DEC))) + ((String((char(_gtv5)), DEC))) + ((String((char(_gtv6)), DEC))) + ((String((char(_gtv7)), DEC))) + ((String((char(_gtv8)), DEC)))));
_stou1 = millis();
}
}
else
{
_stou1 = millis();
}
}
String _floatToStringWitRaz(float value, int raz)
{
return String(value,raz);
}
bool _isTimer(unsigned long startTime, unsigned long period)
{
unsigned long currentTime;
currentTime = millis();
if (currentTime>= startTime)
{
return (currentTime>=(startTime + period));
}
else
{
return (currentTime >=(4294967295-startTime+period));
}
}
void _readByteFromUART(byte data,int port)
{
if (port==100)
{
_sVFUPDPort100 = _ressiveByteFromUartForVariable(data, _sVFUPDPort100);
}
}
struct _sVFUPD _ressiveByteFromUartForVariable(byte resData, struct _sVFUPD data)
{
if(_ressiveFromUartByteIsCommand(resData))
{
data = _nextStepRessiveVariableFromUart(resData, data);
return data;
}
data.data = data.data + char(resData);
return data;
}
bool _ressiveFromUartByteIsCommand(byte data)
{
if(data==1)
{
return 1;
}
if(data==2)
{
return 1;
}
if(data==3)
{
return 1;
}
return 0;
}
struct _sVFUPD _nextStepRessiveVariableFromUart(byte resData, struct _sVFUPD data)
{
if((resData==1)&&(data.mode==0))
{
data.mode=1;
return data;
}
if((resData==2)&&(data.mode==1))
{
data.mode=2;
data.index=data.data.toInt();
data.data=String("");
return data;
}
if((resData==3)&&(data.mode==2))
{
data=_saveToVariableResiveFromUartVariable(data);
return data;
}
data.mode=0;
data.data=String("");
return data;
}
struct _sVFUPD _saveToVariableResiveFromUartVariable(struct _sVFUPD data)
{
if((data.index==1)&&(data.port==100))
{
_RV1CP100 = ((data.data).toInt());
}
if((data.index==2)&&(data.port==100))
{
_RV2CP100 = ((data.data).toInt());
}
if((data.index==3)&&(data.port==100))
{
_RV3CP100 = ((data.data).toInt());
}
if((data.index==4)&&(data.port==100))
{
_RV4CP100 = ((data.data).toInt());
}
data.mode=0;
data.data=String("");
return data;
}