Вверх ↑
Этот топик читают: Гость
Ответов: 54
Рейтинг: -4
#1: 2008-06-19 15:55:24 ЛС | профиль | цитата
Подскажите пожалуйста как передать инфу о дисках через UDP
Вот схемы у меня не получается вот схемы:
Add(MainForm,16446525,56,217)
{
Left=20
Top=105
Width=146
Height=232
link(onCreate,6550112:doOpen,[(201,237)(201,342)])
}
Add(UDP,6550112,238,336)
{
LocalPort=8888
RemotePort=9999
LocalIP="10.71.18.118"
RemoteIP="10.71.18.118"
AutoConnect=0
link(onReceive,7760830:doAdd,[])
}
Add(Edit,12844596,154,336)
{
Left=5
Top=10
Width=125
Text="doInfo"
link(onEnter,6550112:doSend,[])
}
Add(ListBox,7760830,294,336)
{
Left=5
Top=35
Width=125
Height=155
}

Add(MainForm,13779453,21,105)
{
Left=20
Top=105
Width=231
Height=106
link(onCreate,11456131:doOpen,[])
}
Add(UDP,11456131,154,119)
{
LocalPort=9999
RemotePort=8888
LocalIP="10.71.18.118"
RemoteIP="10.71.18.118"
AutoConnect=0
link(onReceive,11159379:doCase,[])
}
Add(DiskInfo,12888210,315,119)
{
Point(OccupiedSpace)
Point(FreeSpace)
Point(FullSize)
link(onInfo,7764291:doData,[(386,125)(386,192)(163,192)(163,251)])
}
Add(Case,11159379,210,119)
{
Value=String(doInfo)
link(onTrue,10575197:doEvent,[(250,132)(250,125)])
}
Add(DoData,7764291,175,245)
{
link(onEventData,11456131:doSend,[(219,251)(219,183)(146,183)(146,132)])
link(Data,12888210:DeviceID,[(181,201)(321,201)])
}
Add(Debug,10575197,259,119)
{
link(onEvent,12888210:doInfo,[])
}
[size=9]------------ Дoбавленo:[/size]

Add(MainForm,13779453,21,105)
{
Left=20
Top=105
Width=231
Height=106
link(onCreate,11456131:doOpen,[])
}
Add(UDP,11456131,154,119)
{
LocalPort=9999
RemotePort=8888
LocalIP="10.71.18.118"
RemoteIP="10.71.18.118"
AutoConnect=0
link(onReceive,11159379:doCase,[])
}
Add(DiskInfo,12888210,315,119)
{
Point(OccupiedSpace)
Point(FreeSpace)
Point(FullSize)
link(onInfo,7764291:doData,[(386,125)(386,192)(163,192)(163,251)])
}
Add(Case,11159379,210,119)
{
Value=String(doInfo)
link(onTrue,10575197:doEvent,[(250,132)(250,125)])
}
Add(DoData,7764291,175,245)
{
link(onEventData,11456131:doSend,[(219,251)(219,183)(146,183)(146,132)])
link(Data,12888210:DeviceID,[(181,201)(321,201)])
}
Add(Debug,10575197,259,119)
{
link(onEvent,12888210:doInfo,[])
}
карма: 1

0
Ответов: 3851
Рейтинг: 159
#2: 2008-06-19 16:02:32 ЛС | профиль | цитата
схема кривая - приведи в порядок тэги code
уточни задачу - передача по UDP, или получение данных о дисках?
карма: 0
начавший
0
Ответов: 1088
Рейтинг: 112
#3: 2008-06-19 16:08:26 ЛС | профиль | цитата
вот читаемый код приведенный автором(я изменений в СХЕМУ не вносил):

#sha
Add(UDP,6550112,231,245)
{
LocalPort=8888
RemotePort=9999
LocalIP="10.71.18.118"
RemoteIP="10.71.18.118"
AutoConnect=0
link(onReceive,7760830:doAdd,[])
}
Add(Edit,12844596,147,245)
{
Left=5
Top=10
Width=125
Text="doInfo"
link(onEnter,6550112:doSend,[])
}
Add(ListBox,7760830,287,245)
{
Left=5
Top=35
Width=125
Height=155
}
Add(UDP,11456131,147,28)
{
LocalPort=9999
RemotePort=8888
LocalIP="10.71.18.118"
RemoteIP="10.71.18.118"
AutoConnect=0
link(onReceive,5057160:doCase,[])
}
Add(DiskInfo,12888210,308,28)
{
Point(OccupiedSpace)
Point(FreeSpace)
Point(FullSize)
link(onInfo,10776676:doData,[(379,34)(379,101)(156,101)(156,160)])
}
Add(Case,11159379,203,28)
{
Value=String(doInfo)
link(onTrue,2639141:doEvent,[(243,41)(243,34)])
}
Add(DoData,7764291,168,154)
{
link(onEventData,16485369:doSend,[(212,160)(212,92)(139,92)(139,41)])
link(Data,15064611:DeviceID,[(174,110)(314,110)])
}
Add(Debug,10575197,252,28)
{
link(onEvent,15064611:doInfo,[])
}
Add(MainForm,13779453,14,14)
{
Left=20
Top=105
Width=231
Height=106
link(onCreate,16485369:doOpen,[])
}
Add(UDP,16485369,147,28)
{
LocalPort=9999
RemotePort=8888
LocalIP="10.71.18.118"
RemoteIP="10.71.18.118"
AutoConnect=0
link(onReceive,5057160:doCase,[])
}
Add(DiskInfo,15064611,308,28)
{
Point(OccupiedSpace)
Point(FreeSpace)
Point(FullSize)
link(onInfo,10776676:doData,[(379,34)(379,101)(156,101)(156,160)])
}
Add(Case,5057160,203,28)
{
Value=String(doInfo)
link(onTrue,2639141:doEvent,[(243,41)(243,34)])
}
Add(DoData,10776676,168,154)
{
link(onEventData,16485369:doSend,[(212,160)(212,92)(139,92)(139,41)])
link(Data,15064611:DeviceID,[(174,110)(314,110)])
}
Add(Debug,2639141,252,28)
{
link(onEvent,15064611:doInfo,[])
}

читаемый, но не годный для работы))
карма: 0
Время верстки: %cr_time% Текущее время: %time%
0
Ответов: 54
Рейтинг: -4
#4: 2008-06-19 16:30:17 ЛС | профиль | цитата
Получение данных о дисках и передача их через сокет
Add(UDP,6550112,238,336)
{
LocalPort=8888
RemotePort=9999
LocalIP="10.71.18.118"
RemoteIP="10.71.18.118"
AutoConnect=0
link(onReceive,7760830:doAdd,[(282,342)(282,328)])
}
Add(Edit,12844596,84,336)
{
Left=5
Top=10
Width=125
Text="doInfo"
link(onEnter,6550112:doSend,[])
}
Add(ListBox,7760830,294,322)
{
Left=5
Top=35
Width=125
Height=155
}
Add(UDP,11456131,161,518)
{
LocalPort=9999
RemotePort=8888
LocalIP="10.71.18.118"
RemoteIP="10.71.18.118"
AutoConnect=0
link(onReceive,11159379:doCase,[])
}
Add(DiskInfo,12888210,322,518)
{
Point(OccupiedSpace)
Point(FreeSpace)
Point(FullSize)
link(onInfo,7764291:doData,[(393,524)(393,591)(170,591)(170,650)])
}
Add(Case,11159379,217,518)
{
Value=String(doInfo)
link(onTrue,12888210:doInfo,[(285,531)(285,524)])
}
Add(DoData,7764291,182,644)
{
link(onEventData,11456131:doSend,[(226,650)(226,582)(153,582)(153,531)])
link(Data,12888210:DeviceID,[(188,600)(328,600)])
}
Add(Hub,4609391,84,392)
{
link(onEvent1,6550112:doOpen,[(177,398)(177,342)])
link(onEvent2,11456131:doOpen,[(138,405)(138,524)])
}
карма: 1

0
Ответов: 3851
Рейтинг: 159
#5: 2008-06-19 21:21:09 ЛС | профиль | цитата
По UDP есть пример, по аналогии примерно так: code_9309.txt
Вот только с дисками не вышло..
Почему-то DiskInfo странно работает в потоках: code_9310.txt
карма: 0
начавший
0
файлы: 2code_9309.txt [1.6KB] [120], code_9310.txt [1KB] [125]
Ответов: 1088
Рейтинг: 112
#6: 2008-06-20 05:19:05 ЛС | профиль | цитата
Андрей. писал(а):
Почему-то DiskInfo странно работает в потоках:

Незнаю как он у тебя работает, но у меня он ничего не выдает даже если подключен к onSyncExec
так же молчит если подключен к UDP.
хе хе все таки заставил заработать)))

#sha
Add(MainForm,10153734,10,47)
{
Left=20
Top=105
link(onCreate,4609391:doEvent1,[])
}
Add(UDP,6550112,234,5)
{
LocalPort=8888
RemotePort=9999
LocalIP="127.0.0.1"
RemoteIP="127.0.0.1"
AutoConnect=0
link(onReceive,7760830:doAdd,[])
}
Add(Edit,12844596,150,19)
{
Left=5
Top=10
Width=125
Text="doInfo"
link(onEnter,6550112:doSend,[(208,32)(208,18)])
}
Add(ListBox,7760830,290,5)
{
Left=5
Top=35
Width=125
Height=155
}
Add(UDP,11456131,157,187)
{
LocalPort=9999
RemotePort=8888
LocalIP="127.0.0.1"
RemoteIP="127.0.0.1"
AutoConnect=0
link(onReceive,12663661:doTimer,[])
}
Add(DiskInfo,12888210,339,187)
{
Point(OccupiedSpace)
Point(FreeSpace)
Point(FullSize)
link(onInfo,7764291:doData,[(403,193)(403,260)(166,260)(166,319)])
}
Add(DoData,7764291,178,313)
{
link(onEventData,11456131:doSend,[(222,319)(222,259)(145,259)(145,200)])
link(Data,12888210:DeviceID,[(184,269)(345,269)])
}
Add(Hub,4609391,80,61)
{
link(onEvent1,6550112:doOpen,[(123,67)(123,11)])
link(onEvent2,11456131:doOpen,[(134,74)(134,193)])
}
Add(Timer,12663661,269,187)
{
Interval=1
Enable=1
AutoStop=1
link(onTimer,12888210:doInfo,[])
}

карма: 0
Время верстки: %cr_time% Текущее время: %time%
0
Ответов: 3851
Рейтинг: 159
#7: 2008-06-20 09:02:11 ЛС | профиль | цитата
Sniper36 писал(а):
Незнаю как он у тебя работает,
смотри code_9310.txt - там две кнопы, в одном случае работает, в другом - нет.
Твоя схема работает видимо потому, что Timer генерит событие потока формы (не уверен в правильности терминов), хорошая находка..

Остаётся вопрос - почему DiskInfo так работает в Thread?
карма: 0
начавший
0
Разработчик
Ответов: 26151
Рейтинг: 2127
#8: 2008-06-20 10:02:57 ЛС | профиль | цитата
Странно как-то у вас UDP подключены

Лучше, все же, вот так делать:



Add(MainForm,10153734,224,189)
{
Left=20
Top=105
link(onCreate,4609391:doEvent1,[])
}
Add(UDP,6550112,483,147)
{
LocalPort=8888
RemotePort=9999
LocalIP="127.0.0.1"
RemoteIP="127.0.0.1"
Point(doSendTo)
link(onReceive,7760830:doAdd,[])
}
Add(Edit,12844596,371,168)
{
Left=5
Top=10
Width=125
Text="doInfo"
link(onEnter,6550112:doSendTo,[])
}
Add(ListBox,7760830,539,147)
{
Left=5
Top=35
Width=125
Height=155
}
Add(UDP,11456131,371,252)
{
LocalPort=9999
RemotePort=8888
LocalIP="127.0.0.1"
RemoteIP="127.0.0.1"
AutoConnect=0
link(onReceive,12663661:doTimer,[])
}
Add(DiskInfo,12888210,553,252)
{
Point(OccupiedSpace)
Point(FreeSpace)
Point(FullSize)
link(onInfo,7764291:doData,[])
}
Add(DoData,7764291,630,252)
{
link(onEventData,11456131:doSend,[(680,258)(680,333)(351,333)(351,265)])
link(Data,12888210:DeviceID,[(636,240)(598,240)(598,296)(559,296)])
}
Add(Hub,4609391,294,203)
{
link(onEvent1,6550112:doOpen,[(340,209)(340,153)])
link(onEvent2,11456131:doOpen,[(351,216)(351,258)])
}
Add(Timer,12663661,483,252)
{
Interval=10
Enable=1
AutoStop=1
link(onTimer,12888210:doInfo,[])
}

карма: 22

1
Голосовали:Konst
Ответов: 54
Рейтинг: -4
#9: 2008-06-20 10:51:59 ЛС | профиль | цитата
nesco, я тоже пробовал через таймер, указав чтобы он автоматически выключался чезез 1 срабатывание, но таймер не отключается и продолжает работать!
карма: 1

0
Разработчик
Ответов: 26151
Рейтинг: 2127
#10: 2008-06-20 11:05:41 ЛС | профиль | цитата
Можно немного увеличить скорость обнаружения дисков:



Add(MainForm,10153734,203,189)
{
Left=20
Top=105
link(onCreate,4609391:doEvent1,[])
}
Add(UDP,6550112,462,147)
{
LocalPort=8888
RemotePort=9999
LocalIP="127.0.0.1"
RemoteIP="127.0.0.1"
Point(doSendTo)
link(onReceive,7760830:doAdd,[])
}
Add(Edit,12844596,350,168)
{
Left=5
Top=10
Width=125
Text="doInfo"
link(onEnter,6550112:doSendTo,[])
}
Add(ListBox,7760830,518,147)
{
Left=5
Top=35
Width=125
Height=155
}
Add(UDP,11456131,350,252)
{
LocalPort=9999
RemotePort=8888
LocalIP="127.0.0.1"
RemoteIP="127.0.0.1"
AutoConnect=0
link(onReceive,12663661:doTimer,[])
}
Add(DiskInfo,12888210,532,245)
{
Point(OccupiedSpace)
Point(FreeSpace)
Point(FullSize)
}
Add(Hub,4609391,273,203)
{
link(onEvent1,6550112:doOpen,[(319,209)(319,153)])
link(onEvent2,11456131:doOpen,[(330,216)(330,258)])
}
Add(Timer,12663661,406,252)
{
Interval=10
Enable=1
AutoStop=1
link(onTimer,4523079:doEvent1,[])
}
Add(ArrayEnum,7924878,553,308)
{
link(onItem,11456131:doSend,[(598,314)(598,352)(338,352)(338,265)])
link(Array,12888210:IdArray,[])
}
Add(Hub,4523079,462,252)
{
link(onEvent1,12888210:doArrayId,[])
link(onEvent2,7924878:doEnum,[(524,265)(524,314)])
}

карма: 22

1
Голосовали:Konst
Ответов: 54
Рейтинг: -4
#11: 2008-06-20 13:06:15 ЛС | профиль | цитата
Вот так вот ОТЛИЧНО работает! Спасибо!
карма: 1

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