?
Хотя стоп. Там же указатель. Блэат
?
Хотя ябы всеравно попробовал.
Anonymous
#define ESP8266 #include <SimplePgSQL.h> #include <ESP8266WiFi.h> #include <WiFiClient.h> IPAddress PGIP(46, 252, 181, 107); WiFiClient client; const char dbUser[] = "uxihjkyarp0ocjodftls"; const char dbPassword[] = "sXRzj4btBj33UTdZIJZP"; const char dbName[] = "bd0mkfbaqkwvkf9ccxsk"; char* ssid = "7-147"; char* password = "55512300"; char buffer[1024]; PGconnection conn(&client, 0, 1024, buffer); IPAddress apIP(8, 8, 8, 8); IPAddress netMsk(255, 255, 255, 0); void connectWifi() { WiFi.disconnect(); WiFi.begin(ssid, password); int connRes = WiFi.waitForConnectResult(); } void setup(){ Serial.begin(9600); WiFi.softAPConfig(apIP, apIP, netMsk); connectWifi(); Serial.println("Подключено к WIFI!"); conn.setDbLogin(PGIP, dbUser, dbPassword, dbName, "utf8", 5432); int rc = conn.status(); while ( rc == CONNECTION_AWAITING_RESPONSE ) { delay (500); Serial.print ( "----\n" ); rc = conn.status(); } Serial.println(rc); Serial.println("______________________________"); conn.execute("SELECT * FROM users"); Serial.println(conn.getData()); //conn.getData(); //conn.dataStatus(); Serial.println("______________________________"); if (conn.getColumn(0) == NULL){ Serial.println("NULL"); } else { Serial.println("Совсем другое"); } } void loop(){ }
Возможно проблема в библе? Так то последнее обновление 5 лет назад было
?
Conn.nfields() в консоль после гетдата Так-же в консоль выдать conn.getMessage()
?
Я подозреваю, что ответ еще и пачками получать придется. Лол. Но это не точно
Anonymous
Anonymous
?
Короче. Нужно время на обработку. Либо поставь таймауты, либо вайлом таймеры писать надо, чтобы он дождался ответа. После экзекьюта влепи таймаут 500
?
После гетдата тоже
?
Скорее всего в этом проблема. А вообще надо писать счетчики которые будут дожидаться каждого ответа чекая статус.
Anonymous
попробую десять, чтобы наверняка
?
К примеру можно написать цикл, который после запроса (екзекьюта) будет ждать пока не станут доступны имена столбцов. Либо там запрашивать колумнс надо пока не разродится. Тут пока не могу понять. Отвлекаюсь
?
попробую десять, чтобы наверняка
Не стоит много, получиш аборт сеовера. 3-4 сек уже много
Denis
Хотя бы по одному. Хоть как нибудь
PG_RSTAT_HAVE_ROW увас надо зарать строку
Denis
4 = PG_RSTAT_HAVE_ROW
?
А еще возможно нужно ждать статуса 1 перед следующим запросом. А потом ждать другим кодом когда данные прийдут
?
Сорян. Чп. Яж тракторист... Поеду вытаскивать чувака с обочтны
?
Хотел таймер написать тебе, но не успел. Отвлекли
᠌ Андрей
не притворяюсь я тобой
᠌ Андрей
я что-ли виноват что у нас одинаковые имена
Евгений
еще и зеленые оба =)
᠌ Андрей
не я написал сам около года назад
᠌ Андрей
alt+255 если что
᠌ Андрей
прикольно :)
Denis
а почему вы базовый пример не переделавыете по ваши нужды?
Denis
вам
Denis
поиграться с конектором например...
Anonymous
Как человек может программировать, который судит других за то, что пытаются кому-то помочь.
Anonymous
321
Всем привет, извиняюсь что не по теме. Может кто то сталкивался, на atmega328 на аналоговом пине во время чтения 0.5v, соответсивенно если входное напряжение ниже 0.5v atmega зависает
Сергей
деление на ноль
?
Ты знаешь сколько времени надо чтобы на ебучую мобилу скинуть скрин? Оно нахуй не надо. Видно и хуй с ним. Другое дело когда скан документов, там уж заливаю на мобилу исходник. Не надо базукой по воробьям.
?
Поверь, я много лет программировал хуево зная английский, и ничего, задачи выполнялись которые требовались(я не копипасты какие-то писал, а штуки с нуля)
?
Хуевый программист из тебя раз такое не понял с первого раза хаха. Шучу уж не обижайся
Sid
?
Ну не верь. С нуля писал сайт который автоматически баблом заведовал с оборотом в 2-3 ляма в сутки (когда яндекс еще лимиты не ввел). Прикинь и это все без предмодерации переводов, любой мойкосяк в коде и за кратчайшее время можно было влететь в 10 лямов. Код всего-то в 16к строк
?
Я распиздяй и не скрываю это. Твои притензии касательно пунктуации вполне уместны, но мне пох)
?
Как там дела, решилось? Я вытащил из болота тачку и вернулся. Ща подумаю еще малясь. Что-то я там писать пробовал.
?
Мне поздно в школу уже
?
а почему вы базовый пример не переделавыете по ваши нужды?
Тоже так думал, но прикол базовогопримера, что он просит взаимодействие с юзером и таймауты там отлетают сами. А при попытки дэлаи пихать еще есть броблема возможной остановки кода что будет мешать читать буффер
Denis
понятно
?
Все и серверную и фронт. Более того чаще всего пишу тупо в "блокноте" там просто код подсвечивается немного. Ардуинка конечно через иде... Хотя пох. Считай меня кем хочешь
?
Есть продвижения?
В общем нужно постоянно рвать соединение если получение данных не привело к успеху. вторая проблема это нужно дождаться когда данные будут готовы к обработке. в общем теперь все пашет. пологаю разберешся =)
?
Есть продвижения?
#include <SimplePgSQL.h> #include <ESP8266WiFi.h> #include <WiFiClient.h> IPAddress PGIP(46, 252, 181, 107); WiFiClient client; const char dbUser[] = "uxihjkyarp0ocjodftls"; const char dbPassword[] = "sXRzj4btBj33UTdZIJZP"; const char dbName[] = "bd0mkfbaqkwvkf9ccxsk"; char* ssid = "7-147"; char* password = "55512300"; char buffer[1024]; int rc; PGconnection conn(&client, 0, 1024, buffer); IPAddress apIP(8, 8, 8, 8); IPAddress netMsk(255, 255, 255, 0); uint32_t old_time; void connectWifi() { WiFi.disconnect(); WiFi.begin(ssid, password); int connRes = WiFi.waitForConnectResult(); } bool msgCheck(){ // проверяет сообщение и выводит его. char *msg; if (rc & PG_RSTAT_HAVE_MESSAGE) { msg = conn.getMessage(); Serial.println('_message debug_'); if (msg) Serial.println(msg); return false; } return true; } bool timeoutCheckData(int scope){ // ожидатор готовности данных old_time = millis(); int nxt= true; while(((millis() - old_time) < 1500) && nxt){ // таймаут на получение данных delay(50); rc = conn.getData(); nxt = !(rc & scope); } if (nxt) {conn.close(); return false;} // не получены столбцы за таймаут рвем коннект! return true; } void connectDB(){ conn.setDbLogin(PGIP, dbUser, dbPassword, dbName, "utf8", 5432); // тест соединения rc = conn.status(); if (rc == CONNECTION_BAD || rc == CONNECTION_NEEDED) { msgCheck(); Serial.println("bad connect or need connect"); conn.close(); return; // останавливает дальнейшие запросы т.к. нефиг делать когда нет коннекта. } else if (rc == CONNECTION_OK) { Serial.println("DB connect OK!"); } // ожидать ответа while (conn.status() == CONNECTION_AWAITING_RESPONSE ) { delay (200); Serial.print ( "--wait--\n" ); } conn.execute("SELECT * from users"); // запрос в БД if (!timeoutCheckData(PG_RSTAT_HAVE_COLUMNS)){return;} int i; for (i=0; i < conn.nfields(); i++) { //узнаем сколько столбцов и перебираем их печатая все if (i) Serial.print(" | "); Serial.print(conn.getColumn(i)); } Serial.println("\n=========="); if (!timeoutCheckData(PG_RSTAT_HAVE_ROW)){return;} char *msg; for (i=0; i < conn.nfields(); i++) { if (i) Serial.print(" | "); msg = conn.getValue(i); if (!msg) msg=(char *)"NULL"; Serial.print(msg); } Serial.println(); Serial.println("!______"); }; void setup(){ Serial.begin(115200); WiFi.softAPConfig(apIP, apIP, netMsk); connectWifi(); Serial.println("Подключено к WIFI!"); connectDB(); conn.close(); // если забыть закрыть соединие, все по бороде пойдет. } void loop(){ }
?
Есть продвижения?
только в коде что я скинул не учтены условия переполнения счетчика времени, но находясь в сетапе (как сейчас) это переполнение не должно наступить(легально). пользуйся.
321
Недостаточно данных для понимания сути вопроса. 0,5 это подается или "вырабаывается" может линия пробита
Вырабатывается, но вопрос решил, проблема в паяльной кислоте. В общем было сопротивление между ногой кварца и переходной точкой на линии аналогового пина
?
Ктслота используется только при пайке железа и оцинковки. Никогда не используй в электронике, загубишь
321
Ктслота используется только при пайке железа и оцинковки. Никогда не используй в электронике, загубишь
Да, теперь я в курсе, сколько боли она доставляет. Пукан горел знатно, пока искал в чем дело)
Denis
дефицит сплошной, всего из одной поделки придется снимать
Evgeniy
@izhbeeden в какой же поделке такой диод используется?)
Evgeniy
интересно, на диодах шоттки получится ли собрать такой же индикатор поля, в котором германиевые используются?
Evgeniy
https://efind.ru/offer/%D0%94%D0%9A-%D0%981%D0%9C
Схема целиком как выглядеть будет?
Indr1x
Если из желудей и спичек, то обычно эти индикаторы делали на полевиках, обычных которые jfet
Indr1x
Готовая индикаторная отвертка 😁
Не, я про индикатор поля, проводку там искать
Denis
Denis
примерно так
Evgeniy
Ого, и что оно позволяет детектировать?
Denis
Indr1x
Ого, и что оно позволяет детектировать?
Ввглядит как детектор атомного взрыва 😁
Denis
брелок 315 мгц
Denis
Denis
роутеры тоже видит
Evgeniy
красиво!
Evgeniy
Схема там такая же, да?
#include <SimplePgSQL.h> #include <ESP8266WiFi.h> #include <WiFiClient.h> IPAddress PGIP(46, 252, 181, 107); WiFiClient client; const char dbUser[] = "uxihjkyarp0ocjodftls"; const char dbPassword[] = "sXRzj4btBj33UTdZIJZP"; const char dbName[] = "bd0mkfbaqkwvkf9ccxsk"; char* ssid = "7-147"; char* password = "55512300"; char buffer[1024]; int rc; PGconnection conn(&client, 0, 1024, buffer); IPAddress apIP(8, 8, 8, 8); IPAddress netMsk(255, 255, 255, 0); uint32_t old_time; void connectWifi() { WiFi.disconnect(); WiFi.begin(ssid, password); int connRes = WiFi.waitForConnectResult(); } bool msgCheck(){ // проверяет сообщение и выводит его. char *msg; if (rc & PG_RSTAT_HAVE_MESSAGE) { msg = conn.getMessage(); Serial.println('_message debug_'); if (msg) Serial.println(msg); return false; } return true; } bool timeoutCheckData(int scope){ // ожидатор готовности данных old_time = millis(); int nxt= true; while(((millis() - old_time) < 1500) && nxt){ // таймаут на получение данных delay(50); rc = conn.getData(); nxt = !(rc & scope); } if (nxt) {conn.close(); return false;} // не получены столбцы за таймаут рвем коннект! return true; } void connectDB(){ conn.setDbLogin(PGIP, dbUser, dbPassword, dbName, "utf8", 5432); // тест соединения rc = conn.status(); if (rc == CONNECTION_BAD || rc == CONNECTION_NEEDED) { msgCheck(); Serial.println("bad connect or need connect"); conn.close(); return; // останавливает дальнейшие запросы т.к. нефиг делать когда нет коннекта. } else if (rc == CONNECTION_OK) { Serial.println("DB connect OK!"); } // ожидать ответа while (conn.status() == CONNECTION_AWAITING_RESPONSE ) { delay (200); Serial.print ( "--wait--\n" ); } conn.execute("SELECT * from users"); // запрос в БД if (!timeoutCheckData(PG_RSTAT_HAVE_COLUMNS)){return;} int i; for (i=0; i < conn.nfields(); i++) { //узнаем сколько столбцов и перебираем их печатая все if (i) Serial.print(" | "); Serial.print(conn.getColumn(i)); } Serial.println("\n=========="); if (!timeoutCheckData(PG_RSTAT_HAVE_ROW)){return;} char *msg; for (i=0; i < conn.nfields(); i++) { if (i) Serial.print(" | "); msg = conn.getValue(i); if (!msg) msg=(char *)"NULL"; Serial.print(msg); } Serial.println(); Serial.println("!______"); }; void setup(){ Serial.begin(115200); WiFi.softAPConfig(apIP, apIP, netMsk); connectWifi(); Serial.println("Подключено к WIFI!"); connectDB(); conn.close(); // если забыть закрыть соединие, все по бороде пойдет. } void loop(){ }
портянки лучше на паст бин (это на будущее) спс
Denis