Sha256: 085cbc57969e247e30025cc1db7e37096a2b79cb3b02b433f1c3a57889a05107
Contents?: true
Size: 1.47 KB
Versions: 1
Compression:
Stored size: 1.47 KB
Contents
require 'osc' require 'socket' #require 'ccg_logger' module CanControlsGateway class OscPackage ADDR = ['<broadcast>', OSC_BROADCAST_PORT] # broadcast address def initialize event, station_id @event = event @station_id = station_id end def broadcast my_message = prepare_message my_encoded_message = my_message.encode BasicSocket.do_not_reverse_lookup = true my_socket = UDPSocket.new my_socket.setsockopt(Socket::SOL_SOCKET, Socket::SO_BROADCAST, true) my_socket.send(my_encoded_message, 0, ADDR[0], ADDR[1]) my_socket.close my_encoded_message.to_s end private def prepare_message if @event.vector.nil? dimensionality = 0 else dimensionality = @event.vector.dimensions end if dimensionality == 0 my_message = OSC::Message.new "/cursor/#{@station_id}/1/#{dimensionality}", 's', @event.event_type elsif dimensionality == 2 my_message = OSC::Message.new "/cursor/#{@station_id}/1/#{dimensionality}", 'sff', @event.event_type, @event.vector.x, @event.vector.y else my_message = OSC::Message.new "/cursor/#{@station_id}/1/#{dimensionality}", 's', @event.event_type end my_message end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
tg-can-controls-gateway-0.1.3 | lib/osc_package.rb |