[[[slow]]]
This commit is contained in:
parent
76f049e4c1
commit
43d45025d3
1 changed files with 13 additions and 12 deletions
|
@ -21,7 +21,7 @@ private:
|
||||||
int wpos = 0;
|
int wpos = 0;
|
||||||
int rpos = 0;
|
int rpos = 0;
|
||||||
|
|
||||||
Timer bitTimer;
|
HardwareTimer bitTimer; // (HardwareTimerMode::eHWT_Maskable);
|
||||||
|
|
||||||
int pin;
|
int pin;
|
||||||
|
|
||||||
|
@ -35,6 +35,7 @@ private:
|
||||||
|
|
||||||
static SoftwareSerial* instance;
|
static SoftwareSerial* instance;
|
||||||
public:
|
public:
|
||||||
|
SoftwareSerial() : bitTimer(eHWT_Maskable) { }
|
||||||
bool write(uint8_t byte) {
|
bool write(uint8_t byte) {
|
||||||
if (full()) {
|
if (full()) {
|
||||||
return false;
|
return false;
|
||||||
|
@ -57,8 +58,8 @@ public:
|
||||||
return (wpos + 1) % BUFSIZE == rpos;
|
return (wpos + 1) % BUFSIZE == rpos;
|
||||||
}
|
}
|
||||||
|
|
||||||
void feedBit() {
|
void IRAM_ATTR feedBit() {
|
||||||
Serial.printf(".");
|
//Serial.write('.');
|
||||||
if (empty()) {
|
if (empty()) {
|
||||||
bitnum = -startbits;
|
bitnum = -startbits;
|
||||||
end();
|
end();
|
||||||
|
@ -88,16 +89,16 @@ public:
|
||||||
digitalWrite(pin, cb);
|
digitalWrite(pin, cb);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void IRAM_ATTR staticFeedBit(void) {
|
||||||
|
if (SoftwareSerial::instance) {
|
||||||
|
SoftwareSerial::instance->feedBit();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void begin(int pin_, int rxtime) {
|
void begin(int pin_, int rxtime) {
|
||||||
pin = pin_;
|
pin = pin_;
|
||||||
instance = this;
|
instance = this;
|
||||||
bitTimer.initializeMs(rxtime, *[]() {
|
bitTimer.initializeMs(rxtime, &SoftwareSerial::staticFeedBit);
|
||||||
// FIXME
|
|
||||||
//Serial.write('!');
|
|
||||||
if (SoftwareSerial::instance) {
|
|
||||||
SoftwareSerial::instance->feedBit();
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void start() {
|
void start() {
|
||||||
|
@ -126,7 +127,7 @@ void tcpServerClientConnected (TcpClient* client) {
|
||||||
System.setCpuFrequency(eCF_160MHz);
|
System.setCpuFrequency(eCF_160MHz);
|
||||||
|
|
||||||
if (clientcount == 0) {
|
if (clientcount == 0) {
|
||||||
tty.begin(DATA_TX, 20);
|
tty.begin(DATA_TX, 19);
|
||||||
}
|
}
|
||||||
|
|
||||||
clientcount++;
|
clientcount++;
|
||||||
|
@ -138,7 +139,7 @@ void tcpServerClientConnected (TcpClient* client) {
|
||||||
bool tcpServerClientReceive (TcpClient& client, char *data, int size) {
|
bool tcpServerClientReceive (TcpClient& client, char *data, int size) {
|
||||||
for (int i = 0; i < size; i++) {
|
for (int i = 0; i < size; i++) {
|
||||||
tty.write(data[i]);
|
tty.write(data[i]);
|
||||||
Serial.write(data[i]);
|
//Serial.write(data[i]);
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue