Avaleht
uus teema   vasta Tarkvara »  Programmeerimine »  UDP käsu saatmine märgi kõik teemad loetuks
märgi mitteloetuks
vaata eelmist teemat :: vaata järgmist teemat
Hinnavaatlus :: Foorum :: Uudised :: Ärifoorumid :: HV F1 ennustusvõistlus :: Pangalink :: Telekavad :: HV toote otsing
autor
sõnum Saada viide sõbrale. Teata moderaatorile
otsing:  
TEcH
HV kasutaja

liitunud: 28.01.2004




sõnum 13.11.2018 14:11:40 UDP käsu saatmine vasta tsitaadiga

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
vaata kasutaja infot saada privaatsõnum
tiit97
HV vaatleja

liitunud: 24.11.2003




sõnum 13.11.2018 22:45:20 vasta tsitaadiga

Minu jaoks segane lugu, mida täpselt soovid. Kui on wifi kasutada, siis ma kasutaks esp8266 ja seda näidist:

https://thearduinoandme.wordpress.com/tutorials/esp8266-send-receive-binary-data/

_________________
Tiit Ülejõe
Kommentaarid: 1 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 1
tagasi üles
vaata kasutaja infot saada privaatsõnum mine selle kasutaja kodulehele
Supiplex
HV veteran
Supiplex

liitunud: 11.12.2002




sõnum 14.11.2018 03:44:12 vasta tsitaadiga

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
vaata kasutaja infot saada privaatsõnum
TEcH
HV kasutaja

liitunud: 28.01.2004




sõnum 14.11.2018 11:06:35 vasta tsitaadiga

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
vaata kasutaja infot saada privaatsõnum
kalvis
Kreisi kasutaja

liitunud: 20.10.2009




sõnum 14.11.2018 13:54:46 vasta tsitaadiga

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
vaata kasutaja infot saada privaatsõnum
tiit97
HV vaatleja

liitunud: 24.11.2003




sõnum 14.11.2018 14:13:37 vasta tsitaadiga

Html puhul oleks loomulik lahendus javascripti kasutada. Paraku see ei ole brauseris toetatud:

https://stackoverflow.com/questions/29532157/how-to-talk-to-udp-sockets-with-html5

Kui on mingi veebiserver kasutada, siis serveri poole peal saab muidugi teha.

Kui on vaja väga lihtsalt, siis võiks python-ga teha:
https://wiki.python.org/moin/UdpCommunication

Ise teeksin ilmselt wxwidgets ja C++ abil väikse rakenduse.

_________________
Tiit Ülejõe
Kommentaarid: 1 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 1
tagasi üles
vaata kasutaja infot saada privaatsõnum mine selle kasutaja kodulehele
Supiplex
HV veteran
Supiplex

liitunud: 11.12.2002




sõnum 14.11.2018 14:29:06 vasta tsitaadiga

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
vaata kasutaja infot saada privaatsõnum
mikk36
HV Guru
mikk36

liitunud: 21.02.2004




sõnum 14.11.2018 23:57:53 vasta tsitaadiga

Võib ka Javascriptis NodeJS otsa kirjutada, ei pea tingimata Pythonit õppima.
Kommentaarid: 85 loe/lisa Kasutajad arvavad:  :: 0 :: 2 :: 78
tagasi üles
vaata kasutaja infot saada privaatsõnum
tiit97
HV vaatleja

liitunud: 24.11.2003




sõnum 15.11.2018 12:33:27 vasta tsitaadiga

Jah, võimalusi erinevaid programmeerimiskeeli kasutada on väga palju. Siin on küll TCP protokolliga näidised eri keeltes:

https://rosettacode.org/wiki/Sockets

Üks rida koodi bash käsurealt tundub kõige lihtsam:
echo -n "hello" >/dev/udp/remotehost/port

allikas:
https://stackoverflow.com/questions/9696129/how-to-send-only-one-udp-packet-with-netcat

_________________
Tiit Ülejõe


viimati muutis tiit97 15.11.2018 22:52:21, muudetud 1 kord
Kommentaarid: 1 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 1
tagasi üles
vaata kasutaja infot saada privaatsõnum mine selle kasutaja kodulehele
TEcH
HV kasutaja

liitunud: 28.01.2004




sõnum 15.11.2018 16:29:40 vasta tsitaadiga

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
vaata kasutaja infot saada privaatsõnum
Dev Grex
HV Guru

liitunud: 29.07.2012



Autoriseeritud ID-kaardiga

sõnum 15.11.2018 16:41:23 vasta tsitaadiga

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.

_________________
Keeletoimetamine
Taimetoitlane
Kommentaarid: 343 loe/lisa Kasutajad arvavad:  :: 0 :: 1 :: 293
tagasi üles
vaata kasutaja infot saada privaatsõnum
tiit97
HV vaatleja

liitunud: 24.11.2003




sõnum 16.11.2018 09:51:29 vasta tsitaadiga

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:

pip install -U wxPython


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:
python server.py


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

python simple.py


Vajuta nuppe ja vaata, mis serveri konsooliaknas juhtub.

_________________
Tiit Ülejõe
Kommentaarid: 1 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 1
tagasi üles
vaata kasutaja infot saada privaatsõnum mine selle kasutaja kodulehele
TEcH
HV kasutaja

liitunud: 28.01.2004




sõnum 19.11.2018 21:21:48 vasta tsitaadiga

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
vaata kasutaja infot saada privaatsõnum
napoleon
Unknown virus
napoleon

liitunud: 08.12.2008



Autoriseeritud ID-kaardiga

sõnum 19.11.2018 22:38:10 vasta tsitaadiga

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
vaata kasutaja infot saada privaatsõnum
tiit97
HV vaatleja

liitunud: 24.11.2003




sõnum 20.11.2018 23:24:19 vasta tsitaadiga

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:

node server.js


Seejärel avada brauseris:

http://localhost:8080/


Siin on 3 nuppu, mida saab vajutada.

_________________
Tiit Ülejõe
Kommentaarid: 1 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 1
tagasi üles
vaata kasutaja infot saada privaatsõnum mine selle kasutaja kodulehele
aht0
HV veteran

liitunud: 14.10.2003




sõnum 26.11.2018 19:24:01 vasta tsitaadiga

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
vaata kasutaja infot saada privaatsõnum
napoleon
Unknown virus
napoleon

liitunud: 08.12.2008



Autoriseeritud ID-kaardiga

sõnum 26.11.2018 20:44:46 vasta tsitaadiga

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
vaata kasutaja infot saada privaatsõnum
näita postitusi alates eelmisest:   
uus teema   vasta Tarkvara »  Programmeerimine »  UDP käsu saatmine
[vaata eelmist teemat] [vaata järgmist teemat]
 lisa lemmikuks
näita foorumit:  
 ignoreeri teemat 
sa ei või postitada uusi teemasid siia foorumisse
sa ei või vastata selle foorumi teemadele
sa ei või muuta oma postitusi selles foorumis
sa ei või kustutada oma postitusi selles foorumis
sa ei või vastata küsitlustele selles foorumis
sa ei saa lisada manuseid selles foorumis
sa võid manuseid alla laadida selles foorumis



Hinnavaatlus ei vastuta foorumis tehtud postituste eest.