Вверх ↑
Ответов: 39
Рейтинг: 0
#1: 2024-06-08 10:09:52 ЛС | профиль | цитата
Здравствуйте. В приложении пример программы, если при данной скорости отправки данных (чем быстрее тем раньше) на графике наберется более 3000 точек то загрузка одного ядра процессора доходит до 100% и дальше вплоть до вылета программы. Если отправлять одновременно на 3 графика, то соответственно примерно после 1000 точек на каждом графике загрузка ядра 100%. Если какой способ вывода на график большого количества точек? немного помогает уменьшение частоты отправки данных, но ждать несколько часов не лучший вариант.

Add(MainForm,14372191,357,119)
{
Left=21
Top=105
Width=1450
Height=871
Color=-16777194
Font=[Arial,8,0,0,1]
Ctl3D=0
Caption="тест SCD40"
BorderStyle=1
}
Add(Plotter,13668624,1295,77)
{
Left=140
Width=1000
Height=400
Name="1"
GridX=20
GridY=20
MaxH=1600
LeftMargin=40
TopMargin=30
Point(MinY)
Point(MaxY)
Point(doMinH)
Point(doMaxH)
Point(doEnabled)
Point(doMinW)
Point(doMaxW)
Point(MinX)
Point(MaxX)
}
Add(Button,3649645,1211,119)
{
Left=5
Top=740
Width=120
Height=35
Caption="Очистить график"
Data=Integer(0)
link(onClick,5720659:doEvent1,[])
}
Add(Hub,5720659,1260,119)
{
OutCount=3
link(onEvent1,13668624:doClear,[(1284,125)(1284,83)])
link(onEvent2,14196124:doClear,[(1284,132)(1284,139)])
link(onEvent3,16236745:doClear,[(1284,139)(1284,216)])
}
Add(Plotter,14196124,1295,133)
{
Left=140
Top=405
Width=1000
Height=210
Name="2"
GridX=5
MinH=1
MaxH=100
LeftMargin=40
TopMargin=30
Point(MinY)
Point(MaxY)
Point(doMinH)
Point(doMaxH)
Point(doEnabled)
Point(doMinW)
Point(doMaxW)
Point(MinX)
Point(MaxX)
}
Add(Plotter,16236745,1295,210)
{
Left=140
Top=625
Width=1000
Height=210
Name="3"
GridX=5
MinH=20
MaxH=40
LeftMargin=40
TopMargin=30
Point(MinY)
Point(MaxY)
Point(doMinH)
Point(doMaxH)
Point(doEnabled)
Point(doMinW)
Point(doMaxW)
Point(MinX)
Point(MaxX)
}
Add(CounterEx,6717573,567,364)
{
link(onNext,8481559:doEvent1,[(607,370)(607,286)])
}
Add(PlotPoints,16575108,973,350)
{
Grapher="2"
Color=0
Size=3
Step=1
Shape=2
Point(doColor)
link(ValueY,11133996:GetData,[])
}
Add(EventFromData,11133996,973,294)
{
}
Add(Hub,13794139,931,294)
{
link(onEvent1,11133996:doData,[])
link(onEvent2,16575108:doAdd,[(959,307)(959,356)])
}
Add(Timer,15344409,511,364)
{
Interval=5
link(onTimer,6717573:doNext,[])
}
Add(PlotPoints,15831482,1015,483)
{
Grapher="3"
Size=3
Step=1
Shape=2
Point(doColor)
link(ValueY,9797081:GetData,[])
}
Add(EventFromData,9797081,1015,427)
{
}
Add(Hub,2529222,973,427)
{
link(onEvent1,9797081:doData,[])
link(onEvent2,15831482:doAdd,[(1001,440)(1001,489)])
}
Add(PlotPoints,7507624,1015,210)
{
Grapher="1"
Color=0
Size=3
Step=1
Shape=2
Point(doColor)
link(ValueY,5746096:GetData,[])
}
Add(EventFromData,5746096,1015,154)
{
}
Add(Hub,3703532,973,154)
{
link(onEvent1,5746096:doData,[])
link(onEvent2,7507624:doAdd,[(1001,167)(1001,216)])
}
Add(Button,3350393,392,371)
{
Left=55
Top=325
Caption="выкл"
Data=Integer(1)
link(onClick,15344409:doStop,[])
}
Add(Memo,1824552,756,364)
{
Left=1145
Top=40
Width=310
Height=645
ScrollBars=2
link(onChange,10324091:doData,[(800,370)(800,412)(751,412)(751,454)])
}
Add(DoData,10324091,763,448)
{
Data=Integer(0)
link(onEventData,11676252:doText,[])
link(Data,1824552:Count,[])
}
Add(Edit,11676252,812,448)
{
Left=1195
Top=700
Width=110
}
Add(Button,9926212,396,340)
{
Left=50
Top=300
Caption="вкл"
Data=Integer(1)
link(onClick,15344409:doTimer,[(470,346)(470,370)])
}
Add(StrCat,13187429,658,322)
{
Str2=" тестовая с тестовая строкатрока"
link(onStrCat,1824552:doAdd,[(723,328)(723,370)])
link(Str1,5358733:GetData,[])
}
Add(EventFromData,5358733,658,280)
{
}
Add(Hub,8481559,616,280)
{
InCount=2
OutCount=3
link(onEvent1,5358733:doData,[])
link(onEvent2,13187429:doStrCat,[(644,293)(644,328)])
link(onEvent3,13794139:doEvent1,[])
}
Add(CounterEx,10884692,581,448)
{
link(onNext,8481559:doEvent2,[(615,454)(615,293)])
}
Add(Timer,1052605,525,448)
{
Interval=50
Enable=1
link(onTimer,10884692:doNext,[])
}
Add(Button,13428654,406,455)
{
Left=50
Top=390
Caption="выкл низ"
Data=Integer(1)
link(onClick,1052605:doStop,[])
}
Add(Button,4819930,410,424)
{
Left=50
Top=360
Caption="вкл низ"
Data=Integer(1)
link(onClick,1052605:doTimer,[(484,430)(484,454)])
}

карма: 0

0