السلام عليكم
اخي كريم أضافه الرمز بهذا الشكل
اولا دعنا نشرح مثال command is
*11#3 هذا الامر هو امر تشغيل ريلي رقم 3 (( راجع مشروع الذي ارفقته سابقا))
بحد ذاتها أخي كتابه الامر 3#11* هو مرمز يعني انا لم أكتب رقم معين فيشتغل ريلي معين
عموما اكتب رمز هكذا 3#
8811* فرقم 88 هو كود (( شفره)) بدونها لاينفذ البرنامج اي أمر ويمكنك تغير بأي رقم سواء رقم 1 او 2 او 3 يعني اقصد مثلا تريد باسورد 2013 المهم التعديل البرنامج
ياريت ترجع للكود الاصلي ولون الاحمر يعني التعديل
1- تعدل على أبعاد المصفوفه
كود:
char output_state[5];
لو تلاحظ الامر سابق بدون شفره =5 اذن اذا ضفت شفره مثلا انا ضفت 88 يعني ابعاد مصفوفه =7
2-
كود:
if(cont==7) //*8811#3
{
if(output_state[0]=='*' && output_state[1]==8 &&output_state[2]==8 && output_state[5]=='#')
{
flag_recive=1;
}
}
تلاحظ صار اكو تغير بسيط في الترتيب لاني أضفت رمز جديد هو 88 وعليه زادت حجم مصفوفه وتغير موقع العناصر
ايضا عليك بالتعديل هنا
كود:
if(flag_recive==1 && cont==7)
{
relay_ON=0;
relay_OFF=0xFF;
if( output_state[3]==0 && output_state[4]==0 )
{
relay= 0; // all relays is OFF
}
else if( output_state[3]==1 && output_state[4]==0 )
{
relay= 0xFF;// all relays is ON
}
else if( output_state[3]==1 && output_state[4]==1 && output_state[6]!=0 )
{
relay= relay | set_bit(relay_ON,(output_state[6]-1));// relay is ON depended for no. write
}
else if( output_state[3]==0 && output_state[4]==1 )
{
relay= relay & clear_bit(relay_OFF,(output_state[6]-1));// relay is ON depended for no. write
}
for(cont=0;cont<=6;cont++)output_state[cont]=0xFF;// clear output_state