验证:补充2K刷新率与单显示器验收
This commit is contained in:
1 parent
a98d9ddeee
commit
b29b59c62f
21 files changed
+1195
-4
No files matched your search
@@ -0,0 +1,51 @@
|
||||
"""Query or change only the Windows desktop FPS in the box's local POC config."""
|
||||
import argparse
|
||||
import subprocess
|
||||
import sys
|
||||
|
||||
parser = argparse.ArgumentParser(description=__doc__)
|
||||
parser.add_argument("--fps", type=int, choices=[30, 45, 60], required=True)
|
||||
parser.add_argument("--apply", action="store_true")
|
||||
args = parser.parse_args()
|
||||
program = r'''
|
||||
from pathlib import Path
|
||||
from datetime import datetime
|
||||
import json, os, shutil, stat, tempfile
|
||||
path=Path.home()/'.config/vdi-terminal/desktops.json'
|
||||
original=path.read_bytes()
|
||||
data=json.loads(original)
|
||||
matches=[d for d in data['desktops'] if d.get('id')=='desk-win10-01']
|
||||
if len(matches)!=1 or matches[0].get('endpoint')!='192.168.1.70':
|
||||
raise RuntimeError('Unexpected Windows desktop identity; inspect before changing')
|
||||
desktop=matches[0]
|
||||
before=desktop.get('fps')
|
||||
backup=None
|
||||
if __APPLY__:
|
||||
backup=Path.home()/'vdi-terminal/backups'/('fps-'+datetime.now().strftime('%Y%m%d-%H%M%S-%f'))
|
||||
backup.mkdir(parents=True)
|
||||
shutil.copy2(path,backup/'desktops.json')
|
||||
desktop['fps']=__FPS__
|
||||
name=None
|
||||
try:
|
||||
with tempfile.NamedTemporaryFile(dir=path.parent,prefix='.desktops-',delete=False) as stream:
|
||||
name=stream.name
|
||||
stream.write((json.dumps(data,ensure_ascii=False,indent=2)+'\n').encode())
|
||||
os.chmod(name,stat.S_IMODE(path.stat().st_mode))
|
||||
if path.read_bytes()!=original:
|
||||
raise RuntimeError('Desktop configuration changed concurrently; left it intact')
|
||||
os.replace(name,path)
|
||||
name=None
|
||||
if json.loads(path.read_bytes())!=data:
|
||||
raise RuntimeError('Desktop configuration read-back mismatch')
|
||||
finally:
|
||||
if name is not None: os.unlink(name)
|
||||
print(json.dumps({'desktop':desktop['id'],'before':before,'fps':desktop['fps'],
|
||||
'requested':__FPS__,'applied':__APPLY__,
|
||||
'backup':str(backup) if backup else None}))
|
||||
'''.replace("__FPS__", str(args.fps)).replace("__APPLY__", str(args.apply))
|
||||
result = subprocess.run(["ssh", "-o", "ConnectTimeout=8", "armbian@192.168.1.188", "python3 -"],
|
||||
input=program, capture_output=True, text=True, encoding="utf-8")
|
||||
print(result.stdout, end="")
|
||||
if result.stderr:
|
||||
print(result.stderr, end="", file=sys.stderr)
|
||||
sys.exit(result.returncode)
|
||||
Reference in new issue
Block a user