Hinnavaatlus
:: Foorum
:: Uudised
:: Ärifoorumid
:: HV F1 ennustusvõistlus
:: Pangalink
:: Telekavad
:: HV toote otsing
|
|
autor |
sõnum |
|
TEcH
HV kasutaja
liitunud: 28.01.2004
|
13.11.2018 14:11:40
UDP käsu saatmine |
|
|
Tere
kas keegi teab mingit lihtsat moodust, näiteks mõnda lihtsat programmi millega saab tekitada mõned nupud, iga nupp saadab oma käsu mingi ip ja udp käsu ?
või läbi htmli mis teeks sama, ainult et htmli ma ei jaga
siin on mingit juttu, aga ma ei oska neid nuppe sinna tekkitada
https://brightsign.zendesk.com/hc/en-us/community/posts/209965477-Send-UDP-from-a-HTML-interface
läbi arduino sain näiteks tööle, nupu vajutuse,
aga nüüd oleks tarkvara poolt vaja kasutada.
tänud ette
|
|
Kommentaarid: 48 loe/lisa |
Kasutajad arvavad: |
|
:: |
1 :: |
0 :: |
44 |
|
tagasi üles |
|
|
tiit97
HV vaatleja
liitunud: 24.11.2003
|
|
Kommentaarid: 1 loe/lisa |
Kasutajad arvavad: |
|
:: |
0 :: |
0 :: |
1 |
|
tagasi üles |
|
|
Supiplex
HV veteran
liitunud: 11.12.2002
|
14.11.2018 03:44:12
|
|
|
Sul on vaja PC-st saata käske üle võrgu mingile seadmele? Aitaks kui sa räägid täpsemalt mis keeli sa kasutad, mis opsüsteemi otsa proged; samuti seda, mis seadmega suhtled ja kust selle seadme tarkvara on pärit.
Kuni seda infot pole, siis lihtsalt UDP pakettide välja saatmine näiteks linuxi või windowsi peal on lihtne. Otsi "udp socket tutorial" ja lisa sinna oma opsüsteem ning programmeerimiskeel. See lihtsus on muidugi pisut petlik, aga eks enne merre ära uppumist tuleb ikka jalad märjaks teha.
_________________ The young lady had an unusual list,
Linked in part to a structural weakness.
She set no preconditions. |
|
Kommentaarid: 38 loe/lisa |
Kasutajad arvavad: |
|
:: |
0 :: |
1 :: |
34 |
|
tagasi üles |
|
|
TEcH
HV kasutaja
liitunud: 28.01.2004
|
14.11.2018 11:06:35
|
|
|
ma olen kasutanud mingi hercules pisikest progammi juppi
kus ma määran IP ja pordi
ja kirjutan asci tabelisse 'kala' ja send, minu seade võtab selle vastu ja näitab kala pilti ( sinna seadmesse ma saan ise tekitada samamoodi et on pilt , lisan talle add udp event, kirjutan 'kala' ja ta jääb seda ootama et kuskilt tuleb,
okei neid c++ jne programmikesi ma kahjuks ei oska, kunagi ammu ammu leidsin mingi graafilise disainiga tarkvara mis lasi teha nagu MS visio nupu ja sellele nuppule siis samamoodi öelda et send udp string või miskit sellist, pärast sai mingi .exe faili sellest teha.
aga noo enam ei leia,
aga tahaks uuenda ja sama asja teha htmli pealt mis kuskil desktopis vedeleb.
tänud ette, kes soovib nats pühenduda siis võin pakkuda ka mingit vaevatasu.
|
|
Kommentaarid: 48 loe/lisa |
Kasutajad arvavad: |
|
:: |
1 :: |
0 :: |
44 |
|
tagasi üles |
|
|
kalvis
Kreisi kasutaja
liitunud: 20.10.2009
|
14.11.2018 13:54:46
|
|
|
gcc (mingw või linux) sai C keeles socket käsku kasutatud (määrasingi IP ja pordi). Töötas väga lihtsalt, koodinäide netis olemas ja programm vaid paar rida.
|
|
tagasi üles |
|
|
tiit97
HV vaatleja
liitunud: 24.11.2003
|
|
Kommentaarid: 1 loe/lisa |
Kasutajad arvavad: |
|
:: |
0 :: |
0 :: |
1 |
|
tagasi üles |
|
|
Supiplex
HV veteran
liitunud: 11.12.2002
|
14.11.2018 14:29:06
|
|
|
Päris ilma programmeerimiseta sa ei pääse, juhtugu see siis mingi rakenduse või veebiserveri kaudu - ainult HTML UDP pakette ei saada.
Üldiselt sekundeerin tiit97 soovitusele Python ette võtta, see on lihtne ja praktiline tööriist. Saad ka serverisse mingi lihtsa rakenduse kirjutada mis HTML-i serveerib ja nupuvajutusele reageerib.
_________________ The young lady had an unusual list,
Linked in part to a structural weakness.
She set no preconditions. |
|
Kommentaarid: 38 loe/lisa |
Kasutajad arvavad: |
|
:: |
0 :: |
1 :: |
34 |
|
tagasi üles |
|
|
mikk36
HV Guru
liitunud: 21.02.2004
|
14.11.2018 23:57:53
|
|
|
Võib ka Javascriptis NodeJS otsa kirjutada, ei pea tingimata Pythonit õppima.
|
|
Kommentaarid: 85 loe/lisa |
Kasutajad arvavad: |
|
:: |
0 :: |
2 :: |
78 |
|
tagasi üles |
|
|
tiit97
HV vaatleja
liitunud: 24.11.2003
|
|
Kommentaarid: 1 loe/lisa |
Kasutajad arvavad: |
|
:: |
0 :: |
0 :: |
1 |
|
tagasi üles |
|
|
TEcH
HV kasutaja
liitunud: 28.01.2004
|
15.11.2018 16:29:40
|
|
|
okei, siin palju variante, aga mismoodi ma saan sellele käsule tekitada nupu,
ja mis on pc arvutis käivitatav
|
|
Kommentaarid: 48 loe/lisa |
Kasutajad arvavad: |
|
:: |
1 :: |
0 :: |
44 |
|
tagasi üles |
|
|
Dev Grex
HV Guru
liitunud: 29.07.2012
|
15.11.2018 16:41:23
|
|
|
TEcH kirjutas: |
okei, siin palju variante, aga mismoodi ma saan sellele käsule tekitada nupu,
ja mis on pc arvutis käivitatav |
HTML kaudu teed päringu näiteks php või pythoni skripti pihta. Võibolla ajax ja php kooslus oleks kõige lihtsam. Selle kohta piisavalt palju õpetusi ka.
|
|
Kommentaarid: 343 loe/lisa |
Kasutajad arvavad: |
|
:: |
0 :: |
1 :: |
293 |
|
tagasi üles |
|
|
tiit97
HV vaatleja
liitunud: 24.11.2003
|
16.11.2018 09:51:29
|
|
|
Postitan siis siia ühe võimaliku lahenduse Pythonis. See on desktopi programmike, mis ei nõua veebiserverit. Html tundub selle lihtsa asja puhul liiast. Põhineb kahel näitel:
https://wiki.python.org/moin/UdpCommunication
https://www.wxpython.org/presentations/OSCON2006/examples/simple.py
Peaks töötama nii Maci, Windowsi, kui Linuxiga.
Eeldab, et on installeeritud Python ja wxPython.
Windowsi puhul installi siit: https://www.python.org/downloads/release/python-2715/
Seejärel käsurealt:
Salvesta server.py
import socket
UDP_IP = "127.0.0.1"
UDP_PORT = 5005
sock = socket.socket(socket.AF_INET, # Internet
socket.SOCK_DGRAM) # UDP
sock.bind((UDP_IP, UDP_PORT))
while True:
data, addr = sock.recvfrom(1024) # buffer size is 1024 bytes
print "received message:", data |
Üks asi, millega tuleb Python-i puhul harjuda on see, et seal, kus on 4 tühikut, peabki olema 4 tühikut.
Ava konsooliaken ja käivita:
Salvesta simple.py
import wx
import socket
UDP_IP = "127.0.0.1"
UDP_PORT = 5005
class MyFrame(wx.Frame):
def __init__(self, parent, title):
wx.Frame.__init__(self, parent, -1, title,
pos=(150, 150), size=(450, 300))
panel = wx.Panel(self)
text = wx.StaticText(panel, -1, "UDP demo")
text.SetFont(wx.Font(14, wx.SWISS, wx.NORMAL, wx.BOLD))
text.SetSize(text.GetBestSize())
btn_close = wx.Button(panel, -1, "Lahku")
btn_send = wx.Button(panel, -1, "Saada lahtri tekst")
self.textToSend = wx.TextCtrl(panel, -1, value="kala")
self.Bind(wx.EVT_BUTTON, self.on_time_to_close, btn_close)
self.Bind(wx.EVT_BUTTON, self.on_send_button, btn_send)
sizer = wx.BoxSizer(wx.VERTICAL)
sizer.Add(text, 0, wx.ALL, 10)
sizer.Add(btn_close, 0, wx.ALL, 10)
sizer.Add(self.textToSend, 0, wx.ALL, 10)
sizer.Add(btn_send, 0, wx.ALL, 10)
panel.SetSizer(sizer)
panel.Layout()
def on_time_to_close(self, evt):
self.send_udp(text="Close")
self.Close()
def on_send_button(self, evt):
self.send_udp(text=self.textToSend.GetValue())
@staticmethod
def send_udp(text):
sock = socket.socket(socket.AF_INET, # Internet
socket.SOCK_DGRAM) # UDP
sock.sendto(text, (UDP_IP, UDP_PORT))
class MyApp(wx.App):
def OnInit(self):
frame = MyFrame(None, "UDP demo App")
self.SetTopWindow(frame)
frame.Show(True)
return True
app = MyApp(redirect=True)
app.MainLoop()
|
Käivita simple.py
Vajuta nuppe ja vaata, mis serveri konsooliaknas juhtub.
_________________ Tiit Ülejõe |
|
Kommentaarid: 1 loe/lisa |
Kasutajad arvavad: |
|
:: |
0 :: |
0 :: |
1 |
|
tagasi üles |
|
|
TEcH
HV kasutaja
liitunud: 28.01.2004
|
19.11.2018 21:21:48
|
|
|
tere,
kas ma saan aru et enne peab kõigile arvutitele hakkama installima seda pytonit ?
momendil ei saanud seda asja nagu toimetama,
aga samas mul on mingi Hercules SETUP utility programm panen ip, pordi ja käsu , send ja toimetab.
arduino ja nupud ka toimetavad, aga 22 nuppu sinna teha et viisakas väljanägemine ka, siis see oleks ulme.
mingi suvaline androidi telefon ka oskab saata ja toimib.
kas mingi visual basicu varianti ei ole võimalik kiiresti teha ?,
ja nagu ma aru saan et mingitel x põhjustel on kellegi palvel on kunagine udp läbi htmli saatmine nüüd kinni keeratud ja peab hakkama mingeid x lahendusi jne programeerida.
vahepeal sain teada et kohas kuhu seda vaja, ei ole webiserverit,
selle võib muidugi mingi xsamp ja wamp jne asjadega teha,, kuid mina ei ole enne enne virtual serverisse sellist asja tekitanud.
asutusel on kasutusel vanemad ipadid mida lähi tulevikus välja ei vahetata, ja uus brightsign app just nendega ei tööta, muidu annad ip ja toob ise kohe kõik nupud mulle ette.
tõesti suht ädas, sorry
|
|
Kommentaarid: 48 loe/lisa |
Kasutajad arvavad: |
|
:: |
1 :: |
0 :: |
44 |
|
tagasi üles |
|
|
napoleon
Unknown virus
liitunud: 08.12.2008
|
19.11.2018 22:38:10
|
|
|
Visual basicuga saad ka https://www.codeguru.com/columns/vb/communication-using-udp-and-visual-basic.html
näide on console jaoks, aga pole just raketiteadus teha graafiline UI ja funktsionaalsus mingi nupu alla panna, teoorias peaks selle vist isegi wordi/exceli makrona saama teha.
Kui üldse ei oska, siis pead töövahenduse teemas küsima kas keegi viitsib sulle selle proge valmis teha
|
|
Kommentaarid: 76 loe/lisa |
Kasutajad arvavad: |
|
:: |
0 :: |
0 :: |
59 |
|
tagasi üles |
|
|
tiit97
HV vaatleja
liitunud: 24.11.2003
|
20.11.2018 23:24:19
|
|
|
Kas VB.Net või VB6? VB.NET nõuab .NET raamistikku, mis on uuemas windowsi masinas olemas.
Kui on vaja VB6-ga teha, siis võib vaadata: https://github.com/wqweto/VbAsyncSocket
Viimases postituses loen, et on ka veel kasutusel ipadid. Sellisel juhul ei ole ju visual basicuga midagi teha ja mõistlikum oleks tõesti panna üles väike veebiserver, mis ise UDP käsklusi saadab.
Tegin siis variandi ka node.js-ga. Peaks ka ipad-dega töötama. Olgu selle nimeks server.js
const http = require('http');
const dgram = require('dgram');
const PORT = 5005;
const HOST = '127.0.0.1';
http.createServer(function (req, res) {
if(req.url.substring(0,9) === '/command/') {
var msgText = req.url.substring(9);
var message = new Buffer(msgText);
var client = dgram.createSocket('udp4');
client.send(message, 0, message.length, PORT, HOST, function(err, bytes) {
if (err) throw err;
console.log('UDP message "' + msgText + '" sent to ' + HOST +':'+ PORT);
client.close();
});
} else {
res.writeHead(200, {'Content-Type': 'text/html'});
var html = `
<!doctype html>
<html>
<head>
<script>
function httpGetAsync(text)
{
var xmlHttp = new XMLHttpRequest();
xmlHttp.open("GET", '/command/'+text, true);
xmlHttp.send(null);
}
</script>
</head>
<body>
<button onclick="httpGetAsync('b1')">b1 nupp</button>
<button onclick="httpGetAsync('b2')">b2 nupp</button>
<button onclick="httpGetAsync('b3')">b3 nupp</button>
</body>
</html>
`;
res.write(html);
res.end();
}
}).listen(8080); |
Testimiseks võib serverina kasutada sedasama ülaltoodud pythoni skripti.
Käivitada siis käsureal:
Seejärel avada brauseris:
Siin on 3 nuppu, mida saab vajutada.
_________________ Tiit Ülejõe |
|
Kommentaarid: 1 loe/lisa |
Kasutajad arvavad: |
|
:: |
0 :: |
0 :: |
1 |
|
tagasi üles |
|
|
aht0
HV veteran
liitunud: 14.10.2003
|
26.11.2018 19:24:01
|
|
|
Pascal (tasuta Lazarus IDE) või tasuta Community versioon Embarcadero Delphi'st.
Mõlemaga saad teha exe GUI ja sellele nupu, millega saata kuhugi UDP pakke..
|
|
Kommentaarid: 82 loe/lisa |
Kasutajad arvavad: |
|
:: |
0 :: |
1 :: |
71 |
|
tagasi üles |
|
|
napoleon
Unknown virus
liitunud: 08.12.2008
|
26.11.2018 20:44:46
|
|
|
Delphis on see tõesti vist GUI-s komponent paika ja paar rida koodi. Vähemalt C++ builderiga oli küll imelihtne. TCP oli tiba keerulisem kuna pidi erinevate sessioonidega majandama, aga UDP on ju stateless.
|
|
Kommentaarid: 76 loe/lisa |
Kasutajad arvavad: |
|
:: |
0 :: |
0 :: |
59 |
|
tagasi üles |
|
|
|