d82d9115a6
I accidentally ran git init in wrong folder lol
220 lines
7.5 KiB
Python
220 lines
7.5 KiB
Python
|
||
class ProcessorDevice():
|
||
""" Defines common interface to Extron Control Processors
|
||
|
||
Note:
|
||
- `DeviceAlias` must be a valid device Device Alias of an Extron device in the system.
|
||
- If the part number is provided, the device will trigger a warning message in the program log if it does not match the connected device.
|
||
|
||
---
|
||
|
||
Functions:
|
||
- Reboot: Performs a soft restart of this device – this is equivalent to rebooting a PC.
|
||
- SetExecutiveMode: Sets the desired Executive Mode
|
||
|
||
---
|
||
|
||
Arguments:
|
||
- DeviceAlias (string) - Device Alias of the Extron device
|
||
- (optional) PartNumber (string) - device’s part number
|
||
|
||
---
|
||
|
||
Parameters:
|
||
- CurrentLoad - Returns (float) - the current load of 12V DC power supply. This only applies to ProcessorDevice featuring 12V DC power supply. It returns None otherwise.
|
||
- DeviceAlias - Returns (string) - the device alias of the object
|
||
- ExecutiveMode - Returns (int) - The current executive mode number.
|
||
- FirmwareVersion - Returns (string) - the firmware version of this device
|
||
- Hostname - Returns (string) - the hostname of this device
|
||
- IPAddress - Returns (string) - IP address of this device
|
||
- LinkLicenses - Returns (list of strings) - List of LinkLicense® part numbers.
|
||
- MACAddress - Returns (string) - MAC address of this device. For dual NIC devices, the LAN address is returned.
|
||
- ModelName - Returns (string) - Model name of this device
|
||
- PartNumber - Returns (string) - the part number of this device
|
||
- SerialNumber - Returns (string) - Serial number of this device
|
||
- UserUsage - Returns (tuple of ints) - user data usage of this device in KB (used, total).
|
||
|
||
---
|
||
|
||
Events:
|
||
- ExecutiveModeChanged - (Event) Triggers when executive mode changes. The callback takes two arguments. The first one is the extronlib.device instance triggering the event and the second one is is the executive mode number.
|
||
- Offline - (Event) Triggers when the device goes offline. The callback takes two arguments. The first one is the extronlib.device instance triggering the event and the second one is a string ('Offline').
|
||
- Online - (Event) Triggers when the device comes online. The callback takes two arguments. The first one is the extronlib.device instance triggering the event and the second one is a string ('Online').
|
||
|
||
---
|
||
|
||
Example:
|
||
```
|
||
# Create Primary Processor
|
||
ConfRoom = ProcessorDevice('Main')
|
||
|
||
# Create Secondary Processor, Confirm Partnumber
|
||
ConfRoom3 = ProcessorDevice('profRobertsRm', '60-1234-01')
|
||
|
||
# Create Touch Panel
|
||
PodiumTLP = UIDevice('Podium TLP')
|
||
|
||
# Create System Switcher AV Device
|
||
SystemSwitcher = SPDevice('SysSwitcher')
|
||
```
|
||
"""
|
||
|
||
CurrentLoad: float
|
||
""" the current load of 12V DC power supply in watts
|
||
|
||
Note:
|
||
- This only applies to ProcessorDevice featuring 12V DC power supply. It returns None otherwise.
|
||
"""
|
||
DeviceAlias: str
|
||
ExecutiveMode: int
|
||
ExecutiveModeChanged: callable
|
||
"""Event: Triggers when executive mode changes.
|
||
|
||
The callback takes two arguments. The first is the extronlib.device instance triggering the event and the second is the executive mode number.
|
||
|
||
---
|
||
|
||
Example:
|
||
```
|
||
@event(proc, 'ExecutiveModeChanged')
|
||
def HandleExecutiveMode(device, ExecutiveMode):
|
||
- print('Executive mode changed to {}.'.format(ExecutiveMode))
|
||
```
|
||
"""
|
||
FirmwareVersion: str
|
||
HostName: str
|
||
IPAddress: str
|
||
"""Note:
|
||
- For control processors with AV LAN, the LAN address is returned."""
|
||
LinkLicenses: list[str]
|
||
""" List of LinkLicense® part numbers."""
|
||
MACAddress: str
|
||
"""
|
||
Note:
|
||
- For control processors with AV LAN, the LAN address is returned.
|
||
"""
|
||
ModelName: str
|
||
Offline: callable
|
||
"""
|
||
Event:
|
||
- Triggers when the device goes offline.
|
||
|
||
The callback takes two arguments. The first one is the extronlib.device instance triggering the event and the second one is a string ('Offline').
|
||
"""
|
||
Online: callable
|
||
"""
|
||
Event:
|
||
- Triggers when the device goes online.
|
||
|
||
The callback takes two arguments. The first one is the extronlib.device instance triggering the event and the second one is a string ('Online').
|
||
"""
|
||
PartNumber: str
|
||
SerialNumber: str
|
||
UserUsage: tuple[int, int]
|
||
"""user data usage of this device in KB (used, total)."""
|
||
SystemSettings: dict
|
||
"""
|
||
Returns:
|
||
- dict: a dictionary of data describing the settings (defined in Toolbelt) of this device
|
||
|
||
---
|
||
|
||
Example:
|
||
```
|
||
{
|
||
- 'Network': {
|
||
- 'LAN': [
|
||
- - 'DNSServers': ['192.168.1.1',],
|
||
- - 'Gateway': '192.168.254.1',
|
||
- - 'Hostname': 'ConfRoom',
|
||
- - 'IPAddress': '192.168.254.250',
|
||
- - 'SubnetMask': '255.255.255.0',
|
||
- - 'SearchDomains': ['extron.com',],
|
||
- ],
|
||
- 'AVLAN': [
|
||
- - 'DHCPServer': 'Off',
|
||
- - 'DNSServers': ['192.168.1.1',],
|
||
- - 'Hostname': 'ConfRoom',
|
||
- - 'IPAddress': '192.168.253.251',
|
||
- - 'SubnetMask': '255.255.255.0',
|
||
- - 'SearchDomains': ['extron.com',],
|
||
- ],
|
||
- },
|
||
- 'MailServer': {
|
||
- 'IPAddress': '192.168.254.100',
|
||
- 'SMTPPort': 25,
|
||
- 'SSLEnabled': True,
|
||
- 'UserID': 'jdoe',
|
||
- },
|
||
- 'DateTime': {
|
||
- 'NTPSettings': {
|
||
- - 'Enabled': True,
|
||
- - 'Server': '192.168.254.101', # '' if Enable == False
|
||
- },
|
||
- 'TimeZone': '(UTC-08:00/UTC-07:00) Pacific Time',
|
||
- }
|
||
- 'ProgramInformation': {
|
||
- 'Author': 'jdoe',
|
||
- 'DeviceName': 'IPCP Pro 550 : 192.168.254.250',
|
||
- 'FileLoaded': 'GS Project.gs',
|
||
- 'LastUpdated': '1/23/2016 9:08:29 AM',
|
||
- 'SoftwareVersion': '1.0.2.195',
|
||
- }
|
||
}
|
||
```
|
||
"""
|
||
|
||
def __init__(self, DeviceAlias: str, PartNumber: str=None):
|
||
"""
|
||
ProcessorDevice class constructor.
|
||
|
||
Arguments:
|
||
|
||
- DeviceAlias (string) - Device Alias of the Extron device
|
||
- PartNumber (string) - device’s part number
|
||
"""
|
||
...
|
||
|
||
def Reboot(self) -> None:
|
||
"""Performs a soft restart of this device – this is equivalent to rebooting a PC.
|
||
|
||
---
|
||
|
||
### WARNING
|
||
- Any unsaved data will be lost, including Program Log. Follow the example below.
|
||
|
||
---
|
||
|
||
Example:
|
||
```
|
||
from extronlib.system import File, SaveProgramLog
|
||
from datetime import datetime
|
||
|
||
# Save the ProgramLog for later inspection.
|
||
dt = datetime.now()
|
||
filename = 'ProgramLog {}.txt'.format(dt.strftime('%Y-%m-%d %H%M%S'))
|
||
|
||
with File(filename, 'w') as f:
|
||
- SaveProgramLog(f)
|
||
|
||
device.Reboot()
|
||
```
|
||
"""
|
||
...
|
||
|
||
def SetExecutiveMode(self, ExecutiveMode: int) -> float:
|
||
""" Sets the desired Executive Mode.
|
||
|
||
---
|
||
|
||
Note:
|
||
- See product manual for list of available modes.
|
||
|
||
---
|
||
|
||
Arguments:
|
||
- ExecutiveMode (int) - The mode to set. 0 to n.
|
||
"""
|
||
...
|
||
|
||
|