class AmdgpuFan::Connector
Connector
A model class for a GPU connector
Constants
- EDID_DESCRIPTORS_CONF
Attributes
card_num[R]
dir_path[R]
index[R]
type[R]
Public Class Methods
new(card_num:, dir_path:, index:, type:)
click to toggle source
# File lib/amdgpu_fan/connector.rb, line 30 def initialize(card_num:, dir_path:, index:, type:) @card_num = card_num @dir_path = dir_path @index = index @type = type end
where(card_num:)
click to toggle source
Return an array of connector objects for the provided card number. The files are sorted to improve how they are displayed to the user.
# File lib/amdgpu_fan/connector.rb, line 20 def where(card_num:) Dir["/sys/class/drm/card#{card_num}/card#{card_num}-*"].sort.map do |dir_path| Connector.new card_num: card_num, dir_path: dir_path, index: dir_path[-1], type: dir_path.slice(/(?<=card#{card_num}-)[A-z]+/) end end
Public Instance Methods
connected?()
click to toggle source
# File lib/amdgpu_fan/connector.rb, line 37 def connected? status.casecmp('connected').zero? end
display_name()
click to toggle source
# File lib/amdgpu_fan/connector.rb, line 41 def display_name return if edid.to_s.empty? (display_name_text + unspecified_text).join(' ').strip end
status()
click to toggle source
# File lib/amdgpu_fan/connector.rb, line 47 def status File.read(File.join(dir_path, 'status')).strip end
Private Instance Methods
display_descriptors_raw()
click to toggle source
# File lib/amdgpu_fan/connector.rb, line 53 def display_descriptors_raw edid.slice EDID_DESCRIPTORS_CONF[:index_range] end
display_name_text()
click to toggle source
# File lib/amdgpu_fan/connector.rb, line 57 def display_name_text display_descriptors_raw .scan(/(?<=#{EDID_DESCRIPTORS_CONF[:display_name_leading_bytes]}).{1,13}/) end
edid()
click to toggle source
# File lib/amdgpu_fan/connector.rb, line 62 def edid File.read("#{dir_path}/edid", encoding: 'ascii-8bit') end
unspecified_text()
click to toggle source
# File lib/amdgpu_fan/connector.rb, line 66 def unspecified_text display_descriptors_raw .scan(/(?<=#{EDID_DESCRIPTORS_CONF[:unspecified_text_leading_bytes]}).{1,13}/) end