Skip to content
This repository

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
branch: master
Fetching contributors…

Octocat-spinner-32-eaf2f5

Cannot retrieve contributors at this time

file 63 lines (44 sloc) 1.509 kb
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62
#!/usr/bin/python
# -*- coding: utf-8 -*-
"""
Yksinkertainen UDP-paketti Instanssin valojen ohjailuun Pythonilla.

UDP-paketti koostuu speksin versiosta, nick-tagista sekä yhdestä tai
useammasta tehostekäskystä.

Tämä ei ole mitenkään Python spesifinen tapa toteuttaa valojen ohjausta.
Vastaava onnistuu aivan yhtä helposti millä tahansa ohjelmointikielellä.
Googlaa vain "How send packet over UDP with XXX" tms.

Tämän esimerkin pitäisi toimia millä tahansa alustalla jossa on
Python-tulkki asennettuna.

Monipuolisempi esimerkki jossa UDP-paketti rakennetaan dynaamisesti
löytyy täältä:
https://github.com/epeli/effectserver/blob/master/examples/instanssi.py
"""



import socket

udp_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)

packet = bytearray([
    1, # Speksin versio aina yksi

    0, # Nick tag
    101, # e
    112, # p
    101, # e
    108, # l
    105, # i
    0, # Nick lopetus

    # Ensimmäinen tehostekäsky
    1, # Tehosteen tyyppi on yksi eli valo
    0, # Ensimmäinen valo löytyy indeksistä nolla
    0, # Laajennustavu. Aina nolla.
    255, # Punaisuus maksimiin
    0, # Vihreys nollaan
    0, # Sinisyys nollaan


    # Toinen tehostekäsky
    1, # Toinen tehoste on myöskin valo eli yksi
    1, # Toinen valo on indeksissä yksi
    0, # Laajennustavu. Aina nolla.
    # Ja sit rbg kuten edellä
    0,
    255,
    0,

    # Tähän voisi laittaa vielä n-kappaletta tehostekäskyjä

])


udp_socket.sendto(packet, ('172.18.12.2', 9909))

Something went wrong with that request. Please try again.