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
Returns a new instance of Connector.
30 31 32 33 34 35 |
# 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 |
Instance Attribute Details
#card_num ⇒ Object (readonly)
Returns the value of attribute card_num.
14 15 16 |
# File 'lib/amdgpu_fan/connector.rb', line 14 def card_num @card_num end |
#dir_path ⇒ Object (readonly)
Returns the value of attribute dir_path.
14 15 16 |
# File 'lib/amdgpu_fan/connector.rb', line 14 def dir_path @dir_path end |
#index ⇒ Object (readonly)
Returns the value of attribute index.
14 15 16 |
# File 'lib/amdgpu_fan/connector.rb', line 14 def index @index end |
#type ⇒ Object (readonly)
Returns the value of attribute type.
14 15 16 |
# File 'lib/amdgpu_fan/connector.rb', line 14 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.
20 21 22 23 24 25 26 27 |
# 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 |
Instance Method Details
#connected? ⇒ Boolean
37 38 39 |
# File 'lib/amdgpu_fan/connector.rb', line 37 def connected? status.casecmp('connected').zero? end |
#display_name ⇒ Object
41 42 43 44 45 |
# 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 ⇒ Object
47 48 49 |
# File 'lib/amdgpu_fan/connector.rb', line 47 def status File.read(File.join(dir_path, 'status')).strip end |