Hi, Thanks for this - This device is much discussed here.
However, I am a bit confused... What do you mean by two ttys??? Do you mean that smslib is required to manage to ttys for one modem? On Jul 12, 8:08 pm, bitsmith <[email protected]> wrote: > I am using a Huawei E160 UMTS stick. > > Sending of messages seems to work out of the box but > receiving did not work for me (except when system property > smslib.nocmti was set) > > I have digged a bit and found the following reasons: > > a) This UMTS stick creates two virtual ttys - the +CMTI indication > can only be received on the second (on Linux it's usually > /dev/ttyUSB1) > > b) a typical debug log of the incomin +CMTI is: > > DEBUG 19:55:18.314 Logger.logDebug GTW: /dev/ttyUSB1: BUFFER: ^BOOT: > 23280370,0,0,0,75 > ^BOOT:23280370,0,0,0,75 > ^RSSI:14 > +CMTI: "SM",5 > ^RSSI:14 > OK > DEBUG 19:55:18.316 Logger.logDebug GTW: /dev/ttyUSB1: RECV :^BOOT: > 23280370,0,0,0,75(cr)^BOOT:23280370,0,0,0,75(cr)^RSSI:14(cr)+CMTI: > "SM",5(cr)^RSSI:14(cr)OK(cr) > > Interesting is: the +CMTI is not really spontaneout - instead it is > only sent after > smslib executes it's keepalive AT command. And - worse - the +CMTI > comes in > after other messages (^BOOT, ^RSSI and before the OK. > > Looking at the code in AModemDriver and the patterns defined in > ATHandler, we see > that the +CMTI will not be recognized when coming in as part of such a > sequence. > > An easy fix would be to enhance the patterns of ATHandler so that they > allow > arbitrary data including newlines before the +CMTI. I did this by > defining a > ATHandler_Huawei that exactly does that: prefix all the patterns with > "(.|\\s)*" > > Using this fix, incoming messages work - provided I create the gateway > with manufacturer set to "Huawei": > > new SerialModemGateway(portName, portName, 57600, "Huawei", > "E160"); > > May I propose to add this or an equivalent fix to the smslib package > itself? > > Here is the ATHandler_Huawei.java: > > public class ATHandler_Huawei > extends ATHandler > { > /** > */ > public ATHandler_Huawei(ModemGateway myGateway) > { > super(myGateway); > > for (int i = 0; i < terminators.length; i++) { > terminators[i] = "(.|\\s)*"+terminators[i]; > } > } > > } > > BTW: since the +CMTI messages come in only after doing a keepalive, > it seems wise to increase keepalive frequency, e.g.: > > System.setProperty("smslib.serial.keepalive", "5"); --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "SMSLib User Group" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/SMSLib?hl=en -~----------~----~----~----~------~----~------~--~---
