Sha256: 71e1f3e0b69e66158d4134e24790fff8dd465dffb6cf0bbd180e2d42396fcd51
Contents?: true
Size: 1.22 KB
Versions: 14
Compression:
Stored size: 1.22 KB
Contents
require 'omf_oml/network' require 'omf_oml/table' include OMF::OML nw = OmlNetwork.new 'mobile_network' nw.node_schema [[:x, :float], [:y, :float], [:capacity, :float]] nw.create_node :n0, :x => 0.2, :y => 0.2, :capacity => 0.3 nw.create_node :n1, :x => 0.8, :y => 0.2, :capacity => 0.5 nw.create_node :n2, :x => 0.8, :y => 0.8, :capacity => 0.8 nw.create_node :n3, :x => 0.2, :y => 0.8, :capacity => 0.8 nw.create_node :m1, :x => 0.5, :y => 0.7, :capacity => 0.8 nw.link_schema [[:load, :float]] l = nw.create_link :l01, :n0, :m1, :load => 0.8 require 'omf_web' OMF::Web.register_datasource nw.to_table(:nodes, :index => :id) OMF::Web.register_datasource nw.to_table(:links, :index => :id) # Move mobile node Thread.new do begin ts = 0 angle = 0 delta = Math::PI / 6 twoPi = 2 * Math::PI r = 0.25 loop do sleep 1 ts = ts + 1 angle += delta angle -= twoPi if angle >= twoPi nw.transaction do m = nw.node(:m1) #m[:ts] = ts m[:x] = r * Math.sin(angle) + 0.5 m[:y] = r * Math.cos(angle) + 0.5 l[:load] = rand() #puts m.describe end end rescue Exception => ex puts ex puts ex.backtrace.join("\n") end end
Version data entries
14 entries across 14 versions & 1 rubygems