Вверх ↑
Ответов: 16884
Рейтинг: 1239
#1: 2018-12-10 19:19:53 ЛС | профиль | цитата
RT9U писал(а):
А это надо в этом проекте?
Применение БД, а не текстового файла, избавляет от геморроя, если надо узнать:
Минимальную температуру за отопительный сезон : SELECT min(t) from Room_temperature;
Среднюю температуру за отопительный сезон : SELECT avg(t) from Room_temperature;
Максимальную температуру за отопительный сезон : SELECT max(t) from Room_temperature;
То же за любой месяц или день.
А попробуй создать график с линиями максимальных, средних и минимальных температур за весь отопительный сезон из текстового файла.
Я не позавидую.
А из БД - два пальца об асфальт.
А надо тебе это или нет - решать тебе.
Схема пишущая данные температуры в БД

Add(MainForm,15663453,245,182)
{
Width=289
Height=134
Color=15780518
Caption="Температура в помещении"
BorderStyle=1
Position=1
Point(onClose)
Point(Close)
link(onCreate,7098561:doEvent1,[])
link(Close,11914673:Left,[(251,170)(229,170)(229,312)(251,312)])
}
Add(Hub,7098561,294,196)
{
OutCount=3
link(onEvent1,7935657:doOpen,[])
link(onEvent3,4937493:doEnumPorts,[])
}
Add(DS_SQLite,7935657,539,196)
{
Name="rt"
FileName="Room_temperature.db"
link(onOpen,1699441:doExec,[])
}
Add(DSC_Exec,1699441,581,196)
{
SQL="CREATE TABLE IF NOT EXISTS data(\r\n data REAL,\r\n t REAL);\r\n "
DSManager="rt"
}
Add(Label,7480715,497,210)
{
Left=60
Top=14
Width=83
Height=42
Color=15780518
Font=[MS Sans Serif,8,1,16711680,1]
WinStyle=4
Caption="COM-порт №°\r\n\r\nСкорость"
AutoSize=1
}
Add(If_else,2513173,455,287)
{
Type=5
Op2=String()
link(onTrue,1696897:doSearch,[])
}
Add(ComboBox,7690426,455,210)
{
Left=125
Top=39
Width=75
Height=21
Color=15780518
Font=[MS Sans Serif,8,1,0,1]
WinStyle=4
Strings=#3:300|3:600|4:1200|4:2400|4:4800|4:9600|5:14400|5:19200|5:28800|5:38400|5:57600|6:115200|
Text="19200"
Point(EditText)
}
Add(ComboBox,8658105,392,210)
{
Left=150
Top=13
Width=50
Height=21
Color=15780518
Font=[MS Sans Serif,8,1,0,1]
WinStyle=4
Text=""
DataType=1
ReadOnly=0
DropDownCount=15
Point(EditText)
}
Add(Switch,7986566,336,266)
{
DataOn=String(255,СТОП)
DataOff=String(0,ПУСК)
Point(State)
Point(onOff)
Point(onOn)
link(onSwitch,11914673:doSplit,[(376,272)(376,260)(239,260)(239,272)])
link(onOff,6263210:doClose,[(387,279)(387,293)])
link(onOn,6263210:doOpen,[])
}
Add(COM,6263210,406,280)
{
link(onWrite,6263210:doRead,[(445,286)(445,326)(395,326)(395,314)])
link(onRead,2513173:doCompare,[])
link(Port,8658105:EditText,[])
link(BaudRate,7690426:EditText,[(419,268)(475,268)])
}
Add(EnumCOM,4937493,336,210)
{
OutType=0
link(onEnumPorts,8658105:doAdd,[])
}
Add(BlockFind,1696897,497,287)
{
IncludeBlock=1
StartBlock="T="
EndBlock="C"
link(onSearch,9240330:doData,[])
}
Add(BitBtn,12852987,287,266)
{
Left=70
Top=66
Width=125
Color=0
Font=[MS Sans Serif,8,1,16777215,1]
Caption="Пуск"
Point(doColor)
link(onClick,7986566:doSwitch,[])
}
Add(StrPart,11914673,245,266)
{
Char=","
Point(Left)
link(onSplit,12852987:doCaption,[])
link(onPart,12852987:doColor,[])
}
Add(ChangeMon,9240330,539,287)
{
link(onData,3396857:doString,[])
}
Add(DSC_Exec,6082265,623,287)
{
DSManager="rt"
link(onExec,6263210:doRXClear,[(665,293)(665,332)(386,332)(386,300)])
link(onError,15663453:doCaption,[(674,300)(674,158)(222,158)(222,188)])
}
Add(FormatStr,3396857,581,287)
{
DataCount=1
Mask="INSERT INTO data values(julianday('now', 'localtime'),%1);"
link(onFString,6082265:doExec,[])
}

Данные записываются только если они изменились.
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Редактировалось 3 раз(а), последний 2018-12-11 00:09:14