Class: AmdgpuFan::Connector
- Inherits:
-
Object
- Object
- AmdgpuFan::Connector
- Defined in:
- lib/amdgpu_fan/connector.rb
Overview
Connector
A model class for a GPU connector
Constant Summary collapse
- EDID_DESCRIPTORS_CONF =
{ display_name_leading_bytes: String.new('\x00\xFC\x00', encoding: 'ascii-8bit'), unspecified_text_leading_bytes: String.new('\x00\xFE\x00', encoding: 'ascii-8bit'), index_range: (54..125) }.freeze
Instance Attribute Summary collapse
-
#card_num ⇒ Object
readonly
Returns the value of attribute card_num.
-
#dir_path ⇒ Object
readonly
Returns the value of attribute dir_path.
-
#index ⇒ Object
readonly
Returns the value of attribute index.
-
#type ⇒ Object
readonly
Returns the value of attribute type.
Class Method Summary collapse
-
.where(card_num:) ⇒ Object
Return an array of connector objects for the provided card number.
Instance Method Summary collapse
- #connected? ⇒ Boolean
- #display_name ⇒ Object
-
#initialize(card_num:, dir_path:, index:, type:) ⇒ Connector
constructor
A new instance of Connector.
- #status ⇒ Object
Constructor Details
#initialize(card_num:, dir_path:, index:, type:) ⇒ Connector
31 32 33 34 35 36 |
# File 'lib/amdgpu_fan/connector.rb', line 31 def initialize(card_num:, dir_path:, index:, type:) @card_num = card_num @dir_path = dir_path @index = index @type = type end |
Instance Attribute Details
#card_num ⇒ Object (readonly)
Returns the value of attribute card_num.
15 16 17 |
# File 'lib/amdgpu_fan/connector.rb', line 15 def card_num @card_num end |
#dir_path ⇒ Object (readonly)
Returns the value of attribute dir_path.
15 16 17 |
# File 'lib/amdgpu_fan/connector.rb', line 15 def dir_path @dir_path end |
#index ⇒ Object (readonly)
Returns the value of attribute index.
15 16 17 |
# File 'lib/amdgpu_fan/connector.rb', line 15 def index @index end |
#type ⇒ Object (readonly)
Returns the value of attribute type.
15 16 17 |
# File 'lib/amdgpu_fan/connector.rb', line 15 def type @type end |
Class Method Details
.where(card_num:) ⇒ Object
Return an array of connector objects for the provided card number. The files are sorted to improve how they are displayed to the user.
21 22 23 24 25 26 27 28 |
# File 'lib/amdgpu_fan/connector.rb', line 21 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 |
Instance Method Details
#connected? ⇒ Boolean
38 39 40 |
# File 'lib/amdgpu_fan/connector.rb', line 38 def connected? status.casecmp('connected').zero? end |
#display_name ⇒ Object
42 43 44 45 46 |
# File 'lib/amdgpu_fan/connector.rb', line 42 def display_name return if edid.to_s.empty? (display_name_text + unspecified_text).join(' ').strip end |
#status ⇒ Object
48 49 50 |
# File 'lib/amdgpu_fan/connector.rb', line 48 def status File.read(File.join(dir_path, 'status')).strip end |