GSM modem AT UCS2 xatosi 500 buyrug'ini beradi

Uch kun oldin men SMS yuborish uchun oddiy dastur yaratishni boshladim. Men uni allaqachon sinab ko'rdim va u GSM CSCS rejimida ishlaydi, lekin uni UCS2 ga o'tkazganimda kirill harflarini ko'rsatmaydi

<?php
error_reporting(E_ALL);

$fp = fopen("/dev/ttyUSB0", 'w+');

$msg = strtoupper(bin2hex(mb_convert_encoding("Тест", "UCS-2", "UTF-8")));
$number_raw = "+359000000000";
$number = bin2hex(mb_convert_encoding($number_raw, "UCS-2", "UTF-8"));
echo $number."<br>";
echo $msg;
$debug = false;
if(!$fp || $debug){
  //echo "Can not open!";
}else{
  fwrite($fp, "AT+CMGF=1".chr(13)); // OK
  sleep(5);
  fwrite($fp, 'AT+CSCS="UCS2"'.chr(13)); // OK
  sleep(5);
  fwrite($fp, 'AT+CMGS="'.$number.'"'.chr(13)); // OK
  sleep(5);
  fwrite($fp, $msg.chr(26)); // ERROR 500
  echo "<br>Sent";
}
?>

Raqam va xabar ushbu manbaga muvofiq to'g'ri kodlangan: http://www.columbia.edu/kermit/ucs2.html

Xabar yuborilganda, men uni olaman (shuning uchun raqamni kodlash to'g'ri), lekin kontent to'g'ri ko'rsatilmaydi.

https://imgur.com/a/cCaTU

Ushbu xatti-harakatning mumkin bo'lgan sabablari nima va bu mening PHP fayl kodlashim bo'lishi mumkinmi? Bundan tashqari, nima uchun Linux 3 ta GSM tty qurilmalarini topmoqda?


person Andrey Tsarev    schedule 03.01.2018    source manba
comment
Yo'q! Yo'q! Yo'q! Siz hech qachon, hech qachon, hech qachon, hech qachon, hech qachon, hech qachon, hech qachon, hech qachon, hech qachon, hech qachon, hech qachon, hech qachon bunday uyqudan foydalanmasligingiz kerak. SIZ modem tomonidan berilgan javoblarni o'qish va tahlil qilishingiz KERAK, aks holda siz buyruqlarni bekor qilish.   -  person hlovdal    schedule 19.01.2018


Javoblar (1)


Barcha dahshatli sleep qo'ng'iroqlarni olib tashlaganingizdan va yakuniy javob tahlilini amalga oshirganingizdan so'ng, "\r\n> " AT+CMGS javobi.

Hech qanday tuzatmagan holda, belgilar to'plamini kodlash muammosi juda kichik muammodir. AT+CSCS="UCS2" har bir satrni ishga tushirganingizda, modem shu tarzda kodlanadi va siz abadiylikgacha (yoki boshqa belgilar toʻplami tanlanguncha) kodlangan boʻlishingiz kerak, masalan, UCS2 dan UTF ga oʻtish uchun -8 AT+CSCS="UTF-8" emas, AT+CSCS="005500540046002D0038" bo'ladi.

person hlovdal    schedule 19.01.2018