1

所以,我使用 AT 命令和 Matlab 来返回呼叫者 ID。它确实有效,但我必须手动要求它。我打电话时自动返回来电显示是什么。

这是我在打电话之前写的:

>> s = serial('COM8');
>> fopen(s)

当我的电话响起时,我输入这个:

 >> fwrite(s, [65 84 43 67 82 67 61 49 13])

然后我要求返回值(来电者电话号码):

   >> s

   Serial Port Object : Serial-COM8

   Communication Settings 
      Port:               COM8
      BaudRate:           9600
      Terminator:         'LF'

   Communication State 
      Status:             open
      RecordStatus:       off

   Read/Write State  
      TransferStatus:     idle
      BytesAvailable:     47
      ValuesReceived:     0
      ValuesSent:         18

   >> fread(s, 47)

它返回给我 47 个这样的 ASCII 数字(请注意,我已经删除了大部分返回的代码):

ans =

    65
    84
    43
    67
    82
    67
    61
    49
    13

转换为以下内容(出于安全原因更改了数字):

+CRING:VOICE +CLIP: "+359888888888",145AT+CRC=1OK

我想要发生的是当电话响起时立即向计算机发送输出

 >> fwrite(s, [65 84 43 67 82 67 61 49 13])
 >> fread(s, 47)
4

0 回答 0