MCE BLASTER, ממיר של הוט וספרות צמודות זהות
שלום לכם.
בעקבות הדרישה של MCE לשלט המקורי ולBLASTERS המקוריים, נכנעתי ורכשתי את השלט המקורי.
ניסיון להגדיר את MCE לעבודה עם הממיר של HOT (ערוצי זהב, ממיר דוקסיס) עבר די בהצלחה, ונמצא קוד מתאים שמחליף ערוצים, אבל יש לו בעיה מטרידה אחת.
הקוד שנמצא הוא קוד עבור ממיר THOMSON (שזה אכן הממיר שמותקן אצלי, למרות שפרוטוקול הIR של הוט זהה לכל הממירים...) שמחליף בהצלחה את הערוצים, אבל מסרב לשלוח ספרות כפולות. כלומר, ערוצים 0-10 הוא מעביר מעולה. כשהוא מנסה לשדר את הקוד עבור ערוץ 11, הממיר מקבל זאת כערוץ מס' 1, כאשר הוא מנסה לשדר את הקוד עבור ערוץ 22, הממיר מקבל זאת כערוץ 2, וכו'. כלומר - שתי ספרות (או יותר) זהות וצמודות - הוא מסרב לקבל.
מבדיקה טכנית של הפרוטוקול ע"י הקלטה של הסיגנל בעזרת HIP, נראה שהשלט משדר קוד שמשתנה עבור כל מופע של ספרה מסוימת וזאת כנראה כדי למנוע בלבול של ספרות צמודות. נראה שהמופע הראשון שולח קוד X, ואילו המופע השני שולח קוד Y, וכך מתוכנן השלט.
לשאלות:
א. האם יש פתרון ידוע לבעיה? (חוץ מלעבור לחברה המתחרה או להחליף תוכנה..)
ב. אם לא, אני יודע שיש דרך תכנותית לממש זאת בעזרת HIP, אבל ברגע שHIP משתלט על הBLASTER - אז MCE מסרב להכיר בעובדה שיש לו את השלט מחובר, ולא מוכן להציג טלוויזיה, שלא נדבר על להקליט. יש פתרון לעניין הזה? אם אני אמצא דרך לעקוף את הבעיה הזו שלא דרך חומרה חיצונית כמו USB-UIRT, אני מאמין שלא תהיה בעיה לכתוב תוכנה\מודול לHIP שידעו לטפל בהחלפת הערוצים כהלכה.
בתודה מראש,
יובל
בעקבות הדרישה של MCE לשלט המקורי ולBLASTERS המקוריים, נכנעתי ורכשתי את השלט המקורי.
ניסיון להגדיר את MCE לעבודה עם הממיר של HOT (ערוצי זהב, ממיר דוקסיס) עבר די בהצלחה, ונמצא קוד מתאים שמחליף ערוצים, אבל יש לו בעיה מטרידה אחת.
הקוד שנמצא הוא קוד עבור ממיר THOMSON (שזה אכן הממיר שמותקן אצלי, למרות שפרוטוקול הIR של הוט זהה לכל הממירים...) שמחליף בהצלחה את הערוצים, אבל מסרב לשלוח ספרות כפולות. כלומר, ערוצים 0-10 הוא מעביר מעולה. כשהוא מנסה לשדר את הקוד עבור ערוץ 11, הממיר מקבל זאת כערוץ מס' 1, כאשר הוא מנסה לשדר את הקוד עבור ערוץ 22, הממיר מקבל זאת כערוץ 2, וכו'. כלומר - שתי ספרות (או יותר) זהות וצמודות - הוא מסרב לקבל.
מבדיקה טכנית של הפרוטוקול ע"י הקלטה של הסיגנל בעזרת HIP, נראה שהשלט משדר קוד שמשתנה עבור כל מופע של ספרה מסוימת וזאת כנראה כדי למנוע בלבול של ספרות צמודות. נראה שהמופע הראשון שולח קוד X, ואילו המופע השני שולח קוד Y, וכך מתוכנן השלט.
לשאלות:
א. האם יש פתרון ידוע לבעיה? (חוץ מלעבור לחברה המתחרה או להחליף תוכנה..)
ב. אם לא, אני יודע שיש דרך תכנותית לממש זאת בעזרת HIP, אבל ברגע שHIP משתלט על הBLASTER - אז MCE מסרב להכיר בעובדה שיש לו את השלט מחובר, ולא מוכן להציג טלוויזיה, שלא נדבר על להקליט. יש פתרון לעניין הזה? אם אני אמצא דרך לעקוף את הבעיה הזו שלא דרך חומרה חיצונית כמו USB-UIRT, אני מאמין שלא תהיה בעיה לכתוב תוכנה\מודול לHIP שידעו לטפל בהחלפת הערוצים כהלכה.
בתודה מראש,
יובל
- droren
- חבר מביא חבר

- תגובות: 4222
- הצטרף: דצמבר 2004
- מיקום: רמת אפעל
- נתן תודות: 7 פעמים
- קיבל תודות: 3 פעמים
יובל , מוזר מאד מה שאתה אומר
יתכן כי קייימים קודים שונים להגדרה שישלחו את אותו קוד
אני עובד עם הבלאסטר של PVR 150 ביחד עם ממיר של הוט (תומסון) ולא נתקלתי בכזאת בעיה
יתכן כי קייימים קודים שונים להגדרה שישלחו את אותו קוד
אני עובד עם הבלאסטר של PVR 150 ביחד עם ממיר של הוט (תומסון) ולא נתקלתי בכזאת בעיה
Microsoft Regional Director- Windows Media Center
הבלוג שלי - הצצה לחיים של טכנובלוגר
הבלוג שלי - הצצה לחיים של טכנובלוגר
הממ, שלום דרור ותודה על התשובה.droren כתב:יובל , מוזר מאד מה שאתה אומר
יתכן כי קיימים קודים שונים להגדרה שישלחו את אותו קוד
אני עובד עם הבלאסטר של PVR 150 ביחד עם ממיר של הוט (תומסון) ולא נתקלתי בכזאת בעיה...
בעקבות ההמלצה שלך, חיברתי את הבלסטר המקורי של PVR150, ואתה צודק - הוא עובד מעולה. זה בהחלט כיוון טוב להתחיל ממנו. אני אבדוק זאת.
בעיקרון, משיחה עם עפר, הוא הסביר לי את התקלה שכנראה מתרחשת. קוד IR מורכב מ3 חלקים - קוד שמציין תחילת שידור, חלק ביניים שבו נמצא ה"בשר" של הפקודה, וחלק שמציין סיום שידור. כנראה שMCE בא מהמפעל ככה שהוא שומר רק את החלק האמצעי, וזה כנראה גם מה שקולט הHIP כשמנסים ללמד אותו ידנית. אני אמשיך לשחק עם זה ואעדכן
תודה!
טוב, הבתחתי פתרון
שלום חברים 
~אזהרה: הודעה ארוכה~
אחרי חפירה לא קטנה בגוגל ופרץ יצירתיות שלא מתאים לי - הבעיה נפתרה.
פשוט מוזר לי העניין הזה - האם אני הראשון שנאבק בבלאסטר של MCE בערוצי זהב?
בכל מקרה, עשיתי עבודת מחקר קטנה על העניין, וגיליתי שהשלט הזה של הוט הוא שלט "חכם", והדבר מתבטא בכך שיש לו TOGGLING CODES. המשמעות של העניין הוא שיש ביט מסוים, שמשתנה עבור כל לחיצת כפתור. המטרה של הביט הזה היא להבדיל בין שידור לשידור של השלט ולחסוך טעויות IR, כדי שהממיר יבין שלחיצה מסוימת שהוא קיבל פעמים - זה חלק מאותה לחיצה (אם זו אכן אותה לחיצה פיזית על הכפתור). אממה - הביט הזה מסבך אותנו כאן מ2 סיבות:
1. לא ניתן ללמד את MCE את השלט בצורה ידנית, כייון שMCE דורש "אימות" של הלחיצה. ובלחיצה הבאה - ברור שהביט הזה ישתנה, וMCE יראה את שתי הלחיצות בתור 2 קודים שונים. בעיקרון נוצר פה מצב של לופ אינסופי...
2. לממיר יש מנגנון הגנה מפני שיבושי IR, שתמיד מחפש לקבל את הערך הנכון מהשלט באותו ביט. כלומר, שאם לחצתם על כפתור מסויים, והממיר לא ראה זאת (נניח שהסתרתם אותו עם היד), הלחיצה הבאה על אותו כפתור תתפרש ע"י הממיר כחלק מאותה לחיצה או שיבוש בתקשורת והוא יתעלם ממנה. רק הלחיצה שלאחר מכן תתפרש נכונה.
כיוון שיש 2 בעיות, יש לנו 2 פתרונות:
1. הפתרון לבעיה הראשונה - בעית הלימוד של השלט בעקבות הקוד המתגלגל - הפתרון כאן הוא כל כך פשוט, אך עם זאת כל כך גאוני - פשוט נשתמש ב2 שלטים!
נדאג "לתאם" את השלטים, כך שהשלטים ישלחו קודים זהים על לחיצות זהות (זה קל לביצוע, צריך ללחוץ על כפתור בשלט אחד, וללחוץ על אותו הכפתור בשלט השני - ברגע שהממיר "מתעלם" מהפקודה של השלט השני - סימן שהם מתואמים, כי הממיר חושב שהשליחה השניה היא חלק מאותה לחיצה.).
עכשיו, כשMCE יבקש מאיתנו ווידוא של פקודת הIR, פשוט נלך לשלט השני ונשלח את הפקודה ממנו.
2. הפתרון לבעיה השניה גם הוא לא מסובך במיוחד. לאחר חפירה עמוקה ברג'יסטרי ואחרי מאבקים בקוד ההקסאדצימלי שהקלטתי מהשלטים, ונסיון להבין חוקיות מסוימת בו, התייאשתי לאט לאט והבנתי שהפיתרון לא יבוא משם. הקוד הוקלט בסדר מהשלט וגם עם DELAY עצום בין לחיצות - הבעיה לא נפתרת. פתאום צץ בראשי רעיון מטורף: יש ברשותי כמה שלטים אדומים (בניגוד לכחולים שמחלקים לרוב הלקוחות) של הוט, ויש בהם המון כפתורים שאינם בשימוש בד"כ - לדוגמא - כל כפתורי השליטה בVOD. חשבתי שאם אני אשלח מספר מסוים, ומיד אחריו אלחץ על אחד הכפתורים של הVOD (נניח סטופ), הלחצן סטופ יהווה מעין חוצץ, והממיר יבטל את ההגנה שגורמת לו להתעלם מבקשות זהות כי היתה בקשה נוספת באמצע, ואין סיכוי ששני החלקים שהוא קיבל הם חלקים מאותה בקשה. ניסיתי את זה עם שני השלטים (שכאמור מסונכרנים ביניהם - כל לחיצה בשלט אחד זהה ללחיצה בשלט אחר כל עוד בוצעו עליהם פעולות זהות), והופה - הממיר מפסיק להתעלם מפקודת השלט השני! אפשר בקלות ללעבור לערוץ 22, 11, וכל מה שצריך זה פשוט ללחוץ על STOP בין הספרות, זה הכל.
מכאן הפתרון הוא פשוט - צריך לבקש מMCE ללמוד שלט חדש, ועל כל אחד מלחצני הספרות שהוא מבקש ללמוד, צריך ללחוץ לחיצה קצרצרה על הספרה, ומיד אחריה, במהירות שיא, להעביר את האצבע לכפתור הסטופ. כאשר MCE רוצה לאמת את הקוד של הספרה - לבצע זאת שוב, בשלט השני.
הפתרון עובד נפלא. אמנם לוקח בערך שניה-שתים יותר בהחלפת ערוצים, אבל עדיין - עובד.
לילה טוב,
יובל
~אזהרה: הודעה ארוכה~
אחרי חפירה לא קטנה בגוגל ופרץ יצירתיות שלא מתאים לי - הבעיה נפתרה.
פשוט מוזר לי העניין הזה - האם אני הראשון שנאבק בבלאסטר של MCE בערוצי זהב?
בכל מקרה, עשיתי עבודת מחקר קטנה על העניין, וגיליתי שהשלט הזה של הוט הוא שלט "חכם", והדבר מתבטא בכך שיש לו TOGGLING CODES. המשמעות של העניין הוא שיש ביט מסוים, שמשתנה עבור כל לחיצת כפתור. המטרה של הביט הזה היא להבדיל בין שידור לשידור של השלט ולחסוך טעויות IR, כדי שהממיר יבין שלחיצה מסוימת שהוא קיבל פעמים - זה חלק מאותה לחיצה (אם זו אכן אותה לחיצה פיזית על הכפתור). אממה - הביט הזה מסבך אותנו כאן מ2 סיבות:
1. לא ניתן ללמד את MCE את השלט בצורה ידנית, כייון שMCE דורש "אימות" של הלחיצה. ובלחיצה הבאה - ברור שהביט הזה ישתנה, וMCE יראה את שתי הלחיצות בתור 2 קודים שונים. בעיקרון נוצר פה מצב של לופ אינסופי...
2. לממיר יש מנגנון הגנה מפני שיבושי IR, שתמיד מחפש לקבל את הערך הנכון מהשלט באותו ביט. כלומר, שאם לחצתם על כפתור מסויים, והממיר לא ראה זאת (נניח שהסתרתם אותו עם היד), הלחיצה הבאה על אותו כפתור תתפרש ע"י הממיר כחלק מאותה לחיצה או שיבוש בתקשורת והוא יתעלם ממנה. רק הלחיצה שלאחר מכן תתפרש נכונה.
כיוון שיש 2 בעיות, יש לנו 2 פתרונות:
1. הפתרון לבעיה הראשונה - בעית הלימוד של השלט בעקבות הקוד המתגלגל - הפתרון כאן הוא כל כך פשוט, אך עם זאת כל כך גאוני - פשוט נשתמש ב2 שלטים!
נדאג "לתאם" את השלטים, כך שהשלטים ישלחו קודים זהים על לחיצות זהות (זה קל לביצוע, צריך ללחוץ על כפתור בשלט אחד, וללחוץ על אותו הכפתור בשלט השני - ברגע שהממיר "מתעלם" מהפקודה של השלט השני - סימן שהם מתואמים, כי הממיר חושב שהשליחה השניה היא חלק מאותה לחיצה.).
עכשיו, כשMCE יבקש מאיתנו ווידוא של פקודת הIR, פשוט נלך לשלט השני ונשלח את הפקודה ממנו.
2. הפתרון לבעיה השניה גם הוא לא מסובך במיוחד. לאחר חפירה עמוקה ברג'יסטרי ואחרי מאבקים בקוד ההקסאדצימלי שהקלטתי מהשלטים, ונסיון להבין חוקיות מסוימת בו, התייאשתי לאט לאט והבנתי שהפיתרון לא יבוא משם. הקוד הוקלט בסדר מהשלט וגם עם DELAY עצום בין לחיצות - הבעיה לא נפתרת. פתאום צץ בראשי רעיון מטורף: יש ברשותי כמה שלטים אדומים (בניגוד לכחולים שמחלקים לרוב הלקוחות) של הוט, ויש בהם המון כפתורים שאינם בשימוש בד"כ - לדוגמא - כל כפתורי השליטה בVOD. חשבתי שאם אני אשלח מספר מסוים, ומיד אחריו אלחץ על אחד הכפתורים של הVOD (נניח סטופ), הלחצן סטופ יהווה מעין חוצץ, והממיר יבטל את ההגנה שגורמת לו להתעלם מבקשות זהות כי היתה בקשה נוספת באמצע, ואין סיכוי ששני החלקים שהוא קיבל הם חלקים מאותה בקשה. ניסיתי את זה עם שני השלטים (שכאמור מסונכרנים ביניהם - כל לחיצה בשלט אחד זהה ללחיצה בשלט אחר כל עוד בוצעו עליהם פעולות זהות), והופה - הממיר מפסיק להתעלם מפקודת השלט השני! אפשר בקלות ללעבור לערוץ 22, 11, וכל מה שצריך זה פשוט ללחוץ על STOP בין הספרות, זה הכל.
מכאן הפתרון הוא פשוט - צריך לבקש מMCE ללמוד שלט חדש, ועל כל אחד מלחצני הספרות שהוא מבקש ללמוד, צריך ללחוץ לחיצה קצרצרה על הספרה, ומיד אחריה, במהירות שיא, להעביר את האצבע לכפתור הסטופ. כאשר MCE רוצה לאמת את הקוד של הספרה - לבצע זאת שוב, בשלט השני.
הפתרון עובד נפלא. אמנם לוקח בערך שניה-שתים יותר בהחלפת ערוצים, אבל עדיין - עובד.
לילה טוב,
יובל
- droren
- חבר מביא חבר

- תגובות: 4222
- הצטרף: דצמבר 2004
- מיקום: רמת אפעל
- נתן תודות: 7 פעמים
- קיבל תודות: 3 פעמים
יובל ,כל הכבוד! חובה למאגר
Microsoft Regional Director- Windows Media Center
הבלוג שלי - הצצה לחיים של טכנובלוגר
הבלוג שלי - הצצה לחיים של טכנובלוגר

