שאלות על irblaster בלינוקס
שלום,
אני משתמש ב ir blaster שמחובר לmce transceiver ושולט בו באמצעות lirc בלינוקס.
מספר שאלות:
1. כיצד ניתן לצמצם את כמות הטעויות שמתבצעות כאשר מעבירים ערוצים בממיר? זה הרס לי לא פעם הקלטה בגלל שהוא פספס מספר והעביר לערוץ הלא נכון. ניסיתי להוסיף השהייה והעברה נוספת של הערוץ כדי לצמצם טעויות, אך גם העברה זו חשופה לטעויות ויכולה אף להגדיל את הסיכוי לטעות.
2. האם יש דרך לזהות שהממיר כבוי? אחת הדרכים לדעתי היא לקלוט מספר פרימים של תמונה ולבדוק האם היא שחורה, האם יש פתרונות בלינוקס לדבר כזה?
תודה.
אני משתמש ב ir blaster שמחובר לmce transceiver ושולט בו באמצעות lirc בלינוקס.
מספר שאלות:
1. כיצד ניתן לצמצם את כמות הטעויות שמתבצעות כאשר מעבירים ערוצים בממיר? זה הרס לי לא פעם הקלטה בגלל שהוא פספס מספר והעביר לערוץ הלא נכון. ניסיתי להוסיף השהייה והעברה נוספת של הערוץ כדי לצמצם טעויות, אך גם העברה זו חשופה לטעויות ויכולה אף להגדיל את הסיכוי לטעות.
2. האם יש דרך לזהות שהממיר כבוי? אחת הדרכים לדעתי היא לקלוט מספר פרימים של תמונה ולבדוק האם היא שחורה, האם יש פתרונות בלינוקס לדבר כזה?
תודה.
1. בשנתיים האחרונות אצלי אפשר לספור על חצי כף יד את כמות הפעמים שהעברת ערץ נכשלה. לדעתי אתה צריך לבדוק שמיקמת את הדיודה של ה-ir blaster במקום הנכון. תעשה חיפוש קצר בפורום ותוכל לראות את הסקריפט שלי שמחליף ערוצים עם הגדרות ההשהיה שיש אצלי (עבור ממיר 3100).
2. נקודה יפה - מעולם לא חשבתי עליה. מצד שני - איזו סיבה בעולם יש לממיר להיות כבוי?
2. נקודה יפה - מעולם לא חשבתי עליה. מצד שני - איזו סיבה בעולם יש לממיר להיות כבוי?
You are never fully dressed without a smile
תודה על התשובה המהירה.Shed כתב:1. 2. נקודה יפה - מעולם לא חשבתי עליה. מצד שני - איזו סיבה בעולם יש לממיר להיות כבוי?...
מצב זה יכול להיות במקרה של הפסקת חשמל רגעית, אחרי שהחשמל חוזר הממיר נשאר כבוי.
מצאתי איזשהו פתרון ע"י שימוש בmplayer כדי לקרוא פריים נוכחי מתוך /dev/video0 ולבדוק את הhexdump שלו, זה די עובד, אבל הבעיה היא שכשהMythtv משתמש בכרטיס - לא ניתן לגשת ל/dev/video0 .
הצלחתי לגרום לזה לעבוד, כעת הMythTV מדליק את הממיר שלי בכל פעם שהוא מנסה להעביר ערוץ והממיר כבוי.
להלן הסקריפט שכתבתי לצורך זה.
הסקריפט מורץ מתוך הסקריפט להעברת ערוצים בממיר של Shed, הוא מקבל כפרמטר את מספר הערוץ להעברה כך שיוכל להעביר ערוץ לאחר שידליק את הממיר.
/media/TV - זו התיקיה שהגדרתי לMythTV לשים את קבצי הMPEG הזמניים בזמן שהוא מנגן.
changechannel - זה הסקריפט להעברת ערוצים של Shed.
חשוב מאוד שהסקריפט יורץ אחרי שכבר בוצע ניסיון אחד להעברת ערוצים בממיר, אחרת בכל פעם שתנסו להעביר ערוץ, תצטרכו לחכות עד שהסקריפט ייבצע את הבדיקות וזה עלול לקחת מספר שניות.
להלן הסקריפט שכתבתי לצורך זה.
הסקריפט מורץ מתוך הסקריפט להעברת ערוצים בממיר של Shed, הוא מקבל כפרמטר את מספר הערוץ להעברה כך שיוכל להעביר ערוץ לאחר שידליק את הממיר.
/media/TV - זו התיקיה שהגדרתי לMythTV לשים את קבצי הMPEG הזמניים בזמן שהוא מנגן.
changechannel - זה הסקריפט להעברת ערוצים של Shed.
קוד: בחירת הכל
#!/bin/sh
#wait a while, so the mpg file will be ready
sleep 5
args=$*
# find the last played video file from myth
mpg_file=`ls -ltr /media/TV/*.mpg | tail -1`
filename=`echo $mpg_file | awk '{print $8}'`
size=`echo $mpg_file | awk '{print $5}'`
echo $filename - $size
#wait a while and then try to read a frame from the file
sleep 1
newsize=`ls -ltr /media/TV/*.mpg | tail -1 | awk '{print $5}'`
if [ $newsize -eq $size ] ; then
# there is no playback, can't know if the cablebox is turned on
echo "no playback"
return
fi
# check if the video input from the file is blank (means the cablebox is turned off)
mplayer $filename -sb $size -frames 1 -vo jpeg:outdir=/tmp 2>&1 > /dev/null
if [ $? -ne 0 ] ; then
# mplayer read failed - so we can't know if the cablebox is powered on
# leave it with no change
echo "mplayer failed"
return
else
lines=`hexdump /tmp/00000001.jpg | wc -l`
# if the image is blank then jpeg compression will be very strong, actually it will contain only 23 lines of hex dump
if [ $lines -lt 50 ] ; then
echo "CableBOX is turned Off, trying to power it on"
irsend SEND_ONCE HOT POWER
sleep 5
# change the channel to the last wanted
/usr/local/bin/changechannel $args
fi
fi
מיד לאחר העברת הערוץ בסקריפט של Shed.ziv-s כתב:אני מבין לפי הסקריפט שלך שהוא נוסה על ממיר של הוט.
גם לי היו הרבה הפסקות חשמל שמנעו ממני הקלטותבזמן שהממיר כבוי.
אז דבר ראשון תודה רבה.
שאלה קטנה איפה צריך להוסיף את הקוד ?...
אזהרה - הסקריפט עלול ליצור בעיות
זה קרה לי עכשיו. הוא חשב שהממיר כבוי, וכיבה אותו ואז לאחר מכן הוא נכנס ללופ של לכבות ולהדליק, עד ששמתי לב שהוא משתגע והפסקתי אותו.
כעת הוספתי אצלי בדיקה כפולה - הוא בודק אם הממיר כבוי, מחכה שנייה ומריץ את עצמו מחדש, רק אם פעמיים הוא זיהה שהוא כבוי - רק אז הוא מדליק ומפסיק לבדוק, כדי לא להיכנס ללופ של הדלקה וכיבוי.
להלן לינקים להורדת הסקריפטים העדכניים:
http://leo212.googlepages.com/changechannel
http://leo212.googlepages.com/checkpower
אבל הייתי מציע לבדוק אותם מספר פעמים לפני שמריצים על "רטוב".
כעת הוספתי אצלי בדיקה כפולה - הוא בודק אם הממיר כבוי, מחכה שנייה ומריץ את עצמו מחדש, רק אם פעמיים הוא זיהה שהוא כבוי - רק אז הוא מדליק ומפסיק לבדוק, כדי לא להיכנס ללופ של הדלקה וכיבוי.
להלן לינקים להורדת הסקריפטים העדכניים:
http://leo212.googlepages.com/changechannel
http://leo212.googlepages.com/checkpower
אבל הייתי מציע לבדוק אותם מספר פעמים לפני שמריצים על "רטוב".


