דלג לתוכן הראשי

מערכת שליטה מרחוק

מודול השליטה מרחוק מאפשר למנהלים לשלוט במכשירי Android TV מרחוק באמצעות פקודות WebSocket. זה קריטי לפתרון תקלות במסכים ללא גישה פיזית.

ארכיטקטורה

  1. Session: "הפעלה" נוצרת בין controllerId (דפדפן המנהל) ל-deviceId.
  2. WebSocket: פקודות נשלחות דרך HTTP/WebSocket לשרת, שמעביר אותן למכשיר דרך MQTT או חיבור socket ישיר.
  3. מחוות (Gestures): המערכת תומכת במחוות מורכבות (Tap, Swipe, Pinch, Rotate).

פקודות API

ניהול הפעלה (Session)

  • התחלת הפעלה: POST /remote-control/:deviceId/session/start

    • דורש controllerId.
    • משמש לנעילת שליטה במכשיר למנהל ספציפי.
  • סיום הפעלה: POST /remote-control/:deviceId/session/end

    • משחרר את הנעילה.

ביצוע פקודות

הבקר תומך בשליחת מחוות ספציפיות:

  • tap: לחיצה בקואורדינטות x/y.
  • swipe: גרירה מ-startX/Y ל-endX/Y עם משך זמן.
  • keypress: שליחת קודי מקש אנדרואיד (Home, Back, D-Pad).
  • input: שליחת קלט טקסט לשדה ממוקד.

דוגמאות שימוש

לחיצה על כפתור

POST /remote-control/device123/command
{
"action": "tap",
"x": 500,
"y": 300
}

גלילה למטה

POST /remote-control/device123/command
{
"action": "swipe",
"startX": 500,
"startY": 800,
"endX": 500,
"endY": 200,
"duration": 300
}

לחצן Home

POST /remote-control/device123/command
{
"action": "keypress",
"keyCode": "KEYCODE_HOME"
}

פתרון תקלות

  • בדיקת סטטוס: GET /remote-control/:deviceId/status
    • מאמת אם המכשיר מחובר ומאזין לפקודות.
  • זמן השהיה: פקודות צריכות להיות כמעט מיידיות (פחות מ-200ms). זמן השהיה גבוה מעיד על בעיות רשת בצד המכשיר.

אבטחה

דורש הרשאת MANAGE_REMOTE_CONTROL. רק מכשירים מחוברים (online) ניתנים לשליטה.

הגבלות

  • הפעלה אחת בכל פעם: רק מנהל אחד יכול לשלוט במכשיר בו-זמנית.
  • Timeout: הפעלות פגות תוקף לאחר 5 דקות של חוסר פעילות.
  • רישום: כל פקודה נרשמת ב-CommandHistory לצורך ביקורת.