Вверх ↑
Этот топик читают: Гость
Ответов: 85
Рейтинг: 0
#46: 2018-12-17 12:20:07 ЛС | профиль | цитата
Обвязка сом-порта, а именно по точке doRead не работает. Убрал ее временно, до выяснения.

SQL запрос SQL="SELECT count() FROM data WHERE julianday(date('now','localtime')||' 00:00:00')=data;
Тоже не работает, выдает в MainForm синтаксическую ошибку. Вместо =data ставлю =%data ошибка уходит. Я думаю, это неправильно..

А вообще объеденять так можно??? julianday(date('now','localtime')||' 00:00:00' ????????
карма: 0

0
Ответов: 16884
Рейтинг: 1239
#47: 2018-12-17 14:36:14 ЛС | профиль | цитата
RT9U писал(а):
SELECT count() FROM data WHERE julianday(date('now','localtime')||' 00:00:00')=data;|
выдает в MainForm синтаксическую ошибку
Какую?
RT9U писал(а):
А вообще объеденять так можно??? julianday(date('now','localtime')||' 00:00:00' ????????
Так "объеденять" нельзя, а вот так объединять julianday(date('now','localtime')||' 00:00:00') можно.

Редактировалось 3 раз(а), последний 2018-12-17 20:00:00
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Ответов: 85
Рейтинг: 0
#48: 2018-12-18 04:16:17 ЛС | профиль | цитата
исправил. пока работает. база данных заполняется. отчёты с начала суток. Пока контролирую.Я думаю пока всё. Если что-то появиться нехорошое- отпишусь. Спасибо Tad, -у и всем кто принял участие.
карма: 0

0
Ответов: 16884
Рейтинг: 1239
#49: 2018-12-18 08:09:39 ЛС | профиль | цитата
RT9U писал(а):
Я думаю пока всё.
а как же
RT9U писал(а):
Я просто хочу разобраться, а не получать готовые решения..

А где недельный, месячный, сезонный графики min и max температур ?
Хотя-бы такой, как на этом сайте внизу каждой странички (клик на иконке).
А где печать графиков ?
БД у тебя есть.


Редактировалось 1 раз(а), последний 2018-12-18 09:19:45
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Ответов: 85
Рейтинг: 0
#50: 2018-12-18 10:29:58 ЛС | профиль | цитата
. Tad, да я не против и дальше разбираться. Только как мне кажется это избыточные запросы в БД. Достаточно посмотреть день или несколько дней. Для тренировки согласен "позаниматься и дальше". Печать графиков я и не планировал. Сделал, сохранение в файл bmp. Хотя мне этот формат не нравиться. большой он. Сейчас на работе "предпраздничный завал". Я думаю,дней через 20 вернусь к проекту.
БД есть..... Я думаю дней черз 20 будет еще больше.....
карма: 0

0
Ответов: 16884
Рейтинг: 1239
#51: 2018-12-18 10:54:42 ЛС | профиль | цитата
RT9U писал(а):
Я думаю,дней через 20 вернусь к проекту.
Успехов!
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Ответов: 85
Рейтинг: 0
#52: 2019-01-09 11:45:39 ЛС | профиль | цитата
Всем привет!!
Как и обещал, что вернусь
Сегодня первый день работы решил потренировать свой мозг
Сделал блок запросов по средней, максимальной, и минимальной температуре за период.
Как ни странно всё работает...
Add(MainForm,2953706,357,189)
{
Width=544
Height=286
link(onCreate,7935657:doOpen,[])
}
Add(DS_SQLite,7935657,413,203)
{
Name="rt"
FileName="C:\\Room_temperature.db"
}
Add(FormatStr,10501672,567,203)
{
Mask="\r\n\r\n\r\n"
Point(FString)
Point(doMask)
link(onFString,1775200:doQuery,[])
link(Str1,1427951:Result,[(573,194)(454,194)])
link(Str2,7684290:Result,[(580,194)(643,194)])
}
Add(DSC_Query,1775200,616,203)
{
DSManager="rt"
link(onQuery,10103646:doDelete,[])
}
Add(DatePicker,13886836,357,133)
{
Left=45
Top=20
Width=155
Height=21
Point(DateTime)
link(onChange,1427951:doConvert,[])
}
Add(DatePicker,4791201,581,133)
{
Left=240
Top=20
Width=195
Height=21
Point(DateTime)
link(onChange,7684290:doConvert,[])
}
Add(DateConvertor,1427951,448,133)
{
Mode=9
Format="yyyy-MM-dd"
Point(Data)
Point(Result)
link(Data,13886836:DateTime,[(454,121)(422,121)(422,177)(363,177)])
}
Add(DateConvertor,7684290,637,133)
{
Mode=9
Format="yyyy-MM-dd"
Point(Data)
Point(Result)
link(Data,4791201:DateTime,[(643,121)(622,121)(622,177)(587,177)])
}
Add(StrList,14964945,469,245)
{
Strings=#92:SELECT MAX( t ) FROM data WHERE julianday(data) BETWEEN julianday('%1') AND julianday('%2');|92:SELECT MIN( t ) FROM data WHERE julianday(data) BETWEEN julianday('%1') AND julianday('%2');|92:SELECT AVG( t ) FROM data WHERE julianday(data) BETWEEN julianday('%1') AND julianday('%2');|0:|
Point(doGetString)
Point(onGetString)
link(onGetString,10501672:doMask,[(532,258)(532,216)])
}
Add(ComboBox,514375,357,280)
{
Left=110
Top=90
Width=405
Height=21
Strings=#34:Максимальная температура за период|33:Минимальная температура за период|29:Средняя температура за период|
Text="ВЫБОР"
Point(Index)
link(onClick,14964945:doGetString,[])
}
Add(Button,13989828,469,203)
{
Left=20
Top=90
Caption="ЗАПРОС"
link(onClick,10501672:doString,[])
}
Add(Edit,16308748,721,203)
{
Left=60
Top=135
Width=250
Height=70
Font=[MS Sans Serif,18,1,0,1]
Text=""
MaxLenField=5
Point(doMaxLenField)
}
Add(Delete,10103646,665,203)
{
Position=5
Count=6
link(onDelete,16308748:doText,[])
}


Однако не без дегтя в бочке. Дело в том, что в БД есть ошибки. Которые связаны с ошибками при начале работы устройства измерения, выключении устройства , напомню оно на ардуинке, датчик используется DS18S20.
Так вот в БД есть некоторые записи с температурой +85 градусов, -0.5 градусов. Это ошибки связанные с включение-выключениеми т.д., таким образом вычисление максимальной температуры и минимальной - смысла особого нет..Да и на среднее значение тоже это влияет.
Хотел поковырятся в БД. Однако в софте DataBase4 можно править до 500 строк.. Подскажите какой софт лучше использовать для просмотра и редактирования БД, желательно бесплатный..

Редактировалось 1 раз(а), последний 2019-01-09 11:59:35
карма: 0

0
Ответов: 16884
Рейтинг: 1239
#53: 2019-01-09 14:22:03 ЛС | профиль | цитата
Для SQLite
SQLite Expert Personal 3
или
SQLite Expert Personal 4
RT9U писал(а):
Хотел поковырятся в БД. Однако в софте DataBase4 можно править до 500 строк.

А SELECT * FROM data LIMIT 500 OFFSET 500; применить никак ?

Редактировалось 1 раз(а), последний 2019-01-09 19:41:50
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Ответов: 16884
Рейтинг: 1239
#54: 2019-01-09 18:40:23 ЛС | профиль | цитата
Ну и нахрена лишние телодвижения ?
Add(MainForm,16400211,168,266)
{
Width=342
Height=154
Position=1
link(onCreate,7935657:doOpen,[])
}
Add(DS_SQLite,7935657,217,280)
{
Name="rt"
FileName="C:\\Room_temperature.db"
link(onOpen,4537997:doWork2,[])
}
Add(FormatStr,10501672,322,336)
{
Mask="SELECT \r\ncast(round(max( t ),2) AS text)||" °C",\r\ncast(round(min( t ),2) AS text)||" °C",\r\ncast(round(avg( t ),2) AS text)||" °C"\r\n FROM data \r\n WHERE julianday(data-1721424.5) BETWEEN %1 AND %2;"
link(onFString,1775200:doQuery,[])
link(Str1,13886836:DateInt,[(328,324)(286,324)])
link(Str2,4791201:DateInt,[])
}
Add(DSC_Query,1775200,364,336)
{
DSManager="rt"
link(onQuery,8765599:doStr,[])
link(onColumns,7386169:doClear,[])
}
Add(DatePicker,13886836,280,280)
{
Left=20
Top=20
Width=140
Height=21
Point(DateInt)
link(onChange,13017189:doWork3,[(319,286)])
}
Add(DatePicker,4791201,329,280)
{
Left=175
Top=20
Width=140
Height=21
Point(DateInt)
link(onChange,13017189:doWork2,[(366,286)(366,277)])
}
Add(StringTable,7386169,462,336)
{
Left=20
Top=55
Width=295
Height=50
Columns=#15:Максимальная=90|14:Минимальная=90|10:Средняя=90|
Grid=0
}
Add(HubEx,4537997,258,280)
{
Angle=1
link(onEvent,10501672:doString,[(262,342)])
}
Add(HubEx,13017189,315,271)
{
Angle=2
link(onEvent,4537997:doWork1,[(262,277)])
}
Add(MT_String,8765599,413,336)
{
link(onResult,7386169:doAdd,[])
}


Редактировалось 3 раз(а), последний 2019-01-09 19:36:16
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Ответов: 16884
Рейтинг: 1239
#55: 2019-01-09 23:42:53 ЛС | профиль | цитата
Или так
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
файлы: 1Project379.zip [1KB] [372]
Ответов: 85
Рейтинг: 0
#56: 2019-01-10 04:33:30 ЛС | профиль | цитата
Это просто офигенно!! Я еще с cast и round не работал.....Просто класс. Конечно сразу почитал про эти функции. Tad, Спасибо, что подсказал.. Единственное, что я не фига не понял.. julianday(data-1721424,5) что это за число????? Пока всё же юлинский календарь для меня тяжеловат. Понимаю, что его лучше применять в БД....
карма: 0

0
Ответов: 16884
Рейтинг: 1239
#57: 2019-01-10 15:18:47 ЛС | профиль | цитата
Точка отсчёта даты в SQLite - 1 января 4713 г. до нашей эры.
julianday(1721424.5) это 0000-12-31
julianday(data-1721424,5) - сдвигаем точку отсчёта в нашу эру с которой работает наш DatePicker точка DateTime
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Ответов: 85
Рейтинг: 0
#58: 2019-01-11 05:34:47 ЛС | профиль | цитата
Tad, спасибо за разъяснение. В принципе я больше не знаю, что тут еще можно сделать. Меня устраивает всё. Вчера звонил в тепло снабжающую организацию, выслал им скриншот. Поняли на 1 градус температуру. . Если кому нужно данное ПО в ЛС плиз. Отдам безвозмездно

Редактировалось 1 раз(а), последний 2019-01-11 05:36:02
карма: 0

0
Разработчик
Ответов: 26061
Рейтинг: 2120
#59: 2019-01-11 10:54:03 ЛС | профиль | цитата
RT9U писал(а):
Вчера звонил в тепло снабжающую организацию, выслал им скриншот. Поняли на 1 градус температуру.

КМК, это они вам босячий взгрев сделали. С ТСО выдрать 1 градус, это надо умудриться. Они вполне могут и комиссию прислать для перемерки температуры или УК заставить, при наличии таковой.

Редактировалось 2 раз(а), последний 2019-01-11 10:58:19
карма: 22

0
Ответов: 8887
Рейтинг: 823
#60: 2019-01-11 11:18:57 ЛС | профиль | цитата
RT9U, в общем-то эта ТСО может послать вас с вашими скринами и юридически будет права И система измерения с датчиками должна быть занесена в реестр допущенных СИ (Средств Измерений) подвергаться Госповерке в установленные сроки, и программа должна пройти аттестацию и быть зафиксирована.
В ТСО наверняка есть и приборы, измеряющие температуры, и температурный график, и автомат, который этот график поддерживает.
карма: 19

0
Сообщение
...
Прикрепленные файлы
(файлы не залиты)