You may need to change the modem's default baud rate. I don't know if you 
have already tried that, but check the AT+IPR command (e.g.  
http://www.bluocean.biz/technicalinfo.html#to9600)

On Thursday, August 16, 2012 10:45:04 PM UTC+3, MaxX wrote:
>
> Because of this randomness I cannot rely on USB assignment 
> I tried to force the new modems to 9600 but it seems they work only at 
> 115200 
>
> So the next logical step would be to change a bit the way smslib 
> initializes the serialModemGateway
>
> On Thursday, August 16, 2012 8:57:13 PM UTC+3, T.Delenikas wrote:
>>
>> Hi,
>>
>> I cannot really guide you - the problem is that USB assignments seem 
>> random. The solution would be to force the assignments (specific modem -> 
>> specific port) but I don't know if this can be done...
>>
>> The only solution I can think is to set all modems to the lowest common 
>> baud rate, i.e. connect with 9600 to all of them.
>>
>> On Wednesday, August 15, 2012 6:24:22 PM UTC+3, MaxX wrote:
>>>
>>> Hi all,
>>>
>>> I have faced the following problem 
>>>
>>> I have 5 USB  modems ( 2 of a type and 3 of another type )
>>> I cannot control which modem on which port starts ( because they might 
>>> be scrambled  ... card inside modems and modems with ports ) meaning that I 
>>> cannot say that /dev/ttyUSB4 should be started with 9600 and /dev/ttyUSB3 
>>> with 115200
>>>
>>>
>>> When I had only one type it was easy 
>>>                 SerialModemGateway gateway = new 
>>> SerialModemGateway("Modem." + portId.getName(), portId.getName() , 9600, 
>>> "", "");
>>> and then 
>>>                 Service.getInstance().addGateway(gateway);
>>> and later on 
>>>                 Service.getInstance().startService();
>>>
>>> But now the situation changed and I cannot start with the same sequence 
>>> all modems (2 modems connect at 9600 and 3 at 115200) and before starting 
>>> the gateway there is no way to identify which is which
>>> At some point the smslib fails
>>>
>>> Here is the relevant part of log from smslib.log
>>>
>>> [main] INFO  org.smslib.modem.ModemGateway  - GTW: Modem./dev/ttyUSB1: 
>>> Starting gateway, using Generic AT Handler.
>>> [main] INFO  org.smslib.modem.SerialModemDriver  - GTW: 
>>> Modem./dev/ttyUSB1: Comm port flushing is disabled.
>>> [main] INFO  org.smslib.modem.SerialModemDriver  - GTW: 
>>> Modem./dev/ttyUSB1: Using polled serial port mode.
>>> [main] INFO  org.smslib.modem.SerialModemDriver  - GTW: 
>>> Modem./dev/ttyUSB1: Opening: /dev/ttyUSB1 @115200
>>> [main] DEBUG org.smslib.threading.AServiceThread  - Initialized.
>>> [main] DEBUG org.smslib.threading.AServiceThread  - Initialized.
>>> [main] DEBUG org.smslib.threading.AServiceThread  - Initialized.
>>> [CNMIEmulatorProcessor [Modem./dev/ttyUSB1]] DEBUG 
>>> org.smslib.threading.AServiceThread  - ** disabled **
>>> [main] DEBUG org.smslib.modem.AModemDriver$ModemReader  - GTW: 
>>> Modem./dev/ttyUSB1: ModemReader thread started.
>>> [main] DEBUG org.smslib.modem.AModemDriver$AsyncNotifier  - GTW: 
>>> Modem./dev/ttyUSB1: AsyncNotifier thread started.
>>> [main] DEBUG org.smslib.modem.AModemDriver$AsyncMessageProcessor  - GTW: 
>>> Modem./dev/ttyUSB1: AsyncMessageProcessor thread started.
>>> [main] DEBUG org.smslib.modem.AModemDriver  - GTW: Modem./dev/ttyUSB1: 
>>> clearBuffer() called.
>>> [main] DEBUG org.smslib.modem.AModemDriver  - GTW: Modem./dev/ttyUSB1: 
>>> SEND :(27)
>>> [main] DEBUG org.smslib.modem.AModemDriver  - GTW: Modem./dev/ttyUSB1: 
>>> SEND :+++
>>> [main] DEBUG org.smslib.modem.AModemDriver  - GTW: Modem./dev/ttyUSB1: 
>>> SEND :ATZ(cr)
>>> [main] DEBUG org.smslib.modem.AModemDriver  - GTW: Modem./dev/ttyUSB1: 
>>> clearBuffer() called.
>>> [main] DEBUG org.smslib.modem.AModemDriver  - GTW: Modem./dev/ttyUSB1: 
>>> SEND :ATZ(cr)
>>> [main] DEBUG org.smslib.modem.AModemDriver  - GTW: Modem./dev/ttyUSB1: 
>>> SEND :ATE0(cr)
>>> [main] DEBUG org.smslib.modem.AModemDriver  - GTW: Modem./dev/ttyUSB1: 
>>> clearBuffer() called.
>>> [main] DEBUG org.smslib.modem.AModemDriver  - GTW: Modem./dev/ttyUSB1: 
>>> SEND :AT+CPIN?(cr)
>>> [CNMIEmulatorProcessor [Modem./dev/ttyUSB1]] DEBUG 
>>> org.smslib.threading.AServiceThread  - ** disabled **
>>> [main] DEBUG org.smslib.modem.AModemDriver  - GTW: Modem./dev/ttyUSB1: 
>>> Buffer contents on timeout:
>>> [KeepAlive [Modem./dev/ttyUSB1]] DEBUG 
>>> org.smslib.threading.AServiceThread  - Stopped.
>>> [CNMIEmulatorProcessor [Modem./dev/ttyUSB1]] DEBUG 
>>> org.smslib.threading.AServiceThread  - Stopped.
>>> [SMSLib-AsyncNotifier : Modem./dev/ttyUSB1] DEBUG 
>>> org.smslib.modem.AModemDriver$AsyncNotifier  - GTW: Modem./dev/ttyUSB1: 
>>> AsyncNotifier thread ended.
>>> [SMSLib-AsyncMessageProcessor : Modem./dev/ttyUSB1] DEBUG 
>>> org.smslib.modem.AModemDriver$AsyncMessageProcessor  - GTW: 
>>> Modem./dev/ttyUSB1: AsyncMessageProcessor thread ended.
>>> [SMSlib-ModemReader-Modem./dev/ttyUSB1] DEBUG 
>>> org.smslib.modem.AModemDriver$ModemReader  - GTW: Modem./dev/ttyUSB1: 
>>> ModemReader thread ended.
>>> [PortReader() [/dev/ttyUSB1]] DEBUG org.smslib.threading.AServiceThread 
>>>  - Stopped.
>>> [main] INFO  org.smslib.modem.SerialModemDriver  - GTW: 
>>> Modem./dev/ttyUSB1: Closing: /dev/ttyUSB1 @115200
>>> [DelayQueueManager] DEBUG 
>>> org.smslib.queues.AbstractQueueManager$DelayQueueManager  - 
>>> DelayQueueManager end...
>>> [WatchDog] DEBUG org.smslib.threading.AServiceThread  - Stopped.
>>> [main] INFO  org.smslib.modem.ModemGateway  - GTW: Modem./dev/ttyUSB1: 
>>> Stopping gateway...
>>> [main] INFO  org.smslib.modem.SerialModemDriver  - GTW: 
>>> Modem./dev/ttyUSB1: Closing: /dev/ttyUSB1 @115200
>>> [main] INFO  org.smslib.modem.ModemGateway  - GTW: Modem./dev/ttyUSB1: 
>>> Gateway stopped.
>>>
>>> As far as I noticed the application fails with timeout at the first 
>>> command sent to the modem for which an response is expected
>>>
>>> the application stops on following exception
>>>
>>> org.smslib.TimeoutException: No response from device.
>>>         at 
>>> org.smslib.modem.AModemDriver$CharQueue.get(AModemDriver.java:535)
>>>         at 
>>> org.smslib.modem.AModemDriver.getResponse(AModemDriver.java:338)
>>>         at 
>>> org.smslib.modem.AModemDriver.getResponse(AModemDriver.java:313)
>>>         at 
>>> org.smslib.modem.athandler.ATHandler.getSimStatus(ATHandler.java:145)
>>>         at org.smslib.modem.AModemDriver.connect(AModemDriver.java:132)
>>>         at 
>>> org.smslib.modem.ModemGateway.startGateway(ModemGateway.java:192)
>>>         at org.smslib.Service.startService_Internal(Service.java:325)
>>>         at org.smslib.Service.startService(Service.java:230)
>>>         at org.smslib.Service.startService(Service.java:197)
>>>
>>> What I have in mind now is to have a retry mechanism inside the 
>>> initialization  ... if it fails at first baudRate to try with the second ( 
>>> or third )
>>> Or maybe extend this for the whole myModemParms ( maybe there is more 
>>> than the  baudRate  which needs modification )
>>>
>>> Or if a modem fails initialization skip it but don't stop the 
>>> application approach
>>> Or all of them
>>>
>>> I am willing to extend a bit the library but I would need a bit of 
>>> guiding
>>> Please guide me a bit where would be the best place to change this ? Or 
>>> what would be the best approach ?
>>> I studied a bit the architecture of SMSlib  but a bit of guiding would 
>>> help.
>>>
>>> Thank you for your time 
>>>
>>>

-- 
You received this message because you are subscribed to the Google Groups 
"SMSLib Discussion Group" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msg/smslib/-/ky36N0bdGasJ.
For more options, visit https://groups.google.com/groups/opt_out.


Reply via email to