Sha256: c266a14edc7854c8a720449167526eaeb1662ffb8f5315232c0e8d0604f95390

Contents?: true

Size: 1.48 KB

Versions: 19

Compression:

Stored size: 1.48 KB

Contents

# encoding: ascii-8bit
require 'openc3/microservices/microservice'
require 'openc3/api/api'

module OpenC3
  class <%= microservice_class %> < Microservice
    include Api # Provides access to api methods

    def initialize(name)
      super(name)
      @config['options'].each do |option|
        # Update with your own OPTION handling
        case option[0].upcase
        when 'PERIOD'
          @period = option[1].to_i
        else
          @logger.error("Unknown option passed to microservice #{@name}: #{option}")
        end
      end

      @period = 60 unless @period # 1 minutes
      @sleeper = Sleeper.new
    end

    def run
      while true
        start_time = Time.now
        break if @cancel_thread

        # Do your microservice work here
        @logger.info("Template Microservice ran")
        # cmd("INST ABORT")

        # The @state variable is set to 'RUNNING' by the microservice base class
        # The @state is reflected to the user in the MICROSERVICES tab so you can
        # convey long running actions by changing it, e.g. @state = 'CALCULATING ...'

        run_time = Time.now - start_time
        delta = @period - run_time
        if delta > 0
          # Delay till the next period
          break if @sleeper.sleep(delta) # returns true and breaks loop on shutdown
        end
        @count += 1
      end
    end

    def shutdown
      @sleeper.cancel # Breaks out of run()
      super()
    end
  end
end

OpenC3::<%= microservice_class %>.run if __FILE__ == $0

Version data entries

19 entries across 19 versions & 1 rubygems

Version Path
openc3-6.2.1 templates/microservice/microservices/TEMPLATE/microservice.rb
openc3-6.2.0 templates/microservice/microservices/TEMPLATE/microservice.rb
openc3-6.1.0 templates/microservice/microservices/TEMPLATE/microservice.rb
openc3-6.0.2 templates/microservice/microservices/TEMPLATE/microservice.rb
openc3-6.0.1 templates/microservice/microservices/TEMPLATE/microservice.rb
openc3-6.0.0 templates/microservice/microservices/TEMPLATE/microservice.rb
openc3-5.20.0 templates/microservice/microservices/TEMPLATE/microservice.rb
openc3-5.19.0 templates/microservice/microservices/TEMPLATE/microservice.rb
openc3-5.18.0 templates/microservice/microservices/TEMPLATE/microservice.rb
openc3-5.17.1 templates/microservice/microservices/TEMPLATE/microservice.rb
openc3-5.17.0 templates/microservice/microservices/TEMPLATE/microservice.rb
openc3-5.16.0 templates/microservice/microservices/TEMPLATE/microservice.rb
openc3-5.15.2 templates/microservice/microservices/TEMPLATE/microservice.rb
openc3-5.15.1 templates/microservice/microservices/TEMPLATE/microservice.rb
openc3-5.15.0 templates/microservice/microservices/TEMPLATE/microservice.rb
openc3-5.14.2 templates/microservice/microservices/TEMPLATE/microservice.rb
openc3-5.14.1 templates/microservice/microservices/TEMPLATE/microservice.rb
openc3-5.14.0 templates/microservice/microservices/TEMPLATE/microservice.rb
openc3-5.13.0 templates/microservice/microservices/TEMPLATE/microservice.rb