Method: ImageRoi#precise_time_to_change
- Defined in:
- lib/roi/image/image_roi.rb
#precise_time_to_change(args = {}) ⇒ Object
Public: Measures the precise time for the given image Roi to change.
Corresponds to: api_hp_time_for_screen_to_change
key - String key press to trigger evaluation (default: nil).
If default, no key will be pressed.
delay - Integer total milliseconds to delay before starting evaluation (default: 0). timeout - Integer total milliseconds to allow before timing out (default: nil).
If default, timeout will be calculated as [ delay + 5000 ].
scale - Boolean if the larger image should be scaled to the size of the smaller image (default: false). priority - Symbol evaluation priority used to throttle CPU usage (default: :normal):
:critical - Sleep 10 ms between intensive tasks (USE SPARINGLY)
:high - Sleep 100 ms between intensive tasks
:normal - Sleep 1 second between intensive tasks
:low - Sleep 10 seconds between intensive tasks
:background - Sleep 1 minute between intensive tasks (USE SPARINGLY)
log_every - Integer total milliseconds between logs (default: 1000). report - Boolean indicating whether to report measurements to ITMS (default: true).
Returns the Float total milliseconds for the image Roi to change.
148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 |
# File 'lib/roi/image/image_roi.rb', line 148 def precise_time_to_change(args={}) logger.info('Measuring precise time for image to change') args[:precise] = true scale = args.fetch(:scale, false) values = [] measure(args, values) do |frame, frames| roi = to_json(ref_img: frame) if frames.empty? frames << frame result = false #TODO: do we need to implement this? logger.roi(self, args.merge(message: "Image #{result ? 'changed' : 'did not change'} on screen", use_last_image: true)) else json = get_json_for_match_2(roi, roi, scale: scale) resp = test_case.send(:tmc_post, '/api/roi/image/actions', json: json) result = !resp['value'] logger.roi(self, args.merge(message: "Image #{result ? 'changed' : 'did not change'} in frame", screenshot: false)) end result end end |