* SIMCOM support
@ 2013-01-24 12:48 Viallard Anthony
2013-01-24 16:21 ` Denis Kenzior
0 siblings, 1 reply; 7+ messages in thread
From: Viallard Anthony @ 2013-01-24 12:48 UTC (permalink / raw)
To: ofono
[-- Attachment #1: Type: text/plain, Size: 2120 bytes --]
Hello ofono guys,
I've got a embedded device with SIM5216E modem. Based on the previous
work done by my colleague Jean-Christian de Rivaz (you can see previous
talk on this mailing list about this modem "Some experiments with the
SIMCOM SIM5216E modem on a ARM926 board"), the simcom AT doc, my
MacGyver kit and my resourcefulness, i do a patch for ofono to support
this modem (and maybe others models).
I attach the patch to this email.
While making this patch, I wondered about that :
* After entering a pin code, ofono goes too fast and checks too
early the sim pin status with "CPIN?". The ME responds "CME Error : 14
(SIM busy)" and ofono stops here. Ofono doesn't send more CPIN? or
intercept the "+CPIN: READY" that the modem send after a while when SIM
is back online. So, I use the same workaround that for ZTE : sending
severals AT+CPIN? commands during 20 seconds until having "+CPIN:
READY". It works well but as my modem sends the "+CPIN: READY" from its
own, I think I can use another mechanism more "standard" in ofono, isn't
it ?
* I want to save power when i doesn't need the modem. So, i guess it
is the purpose of the "org.ofono.Modem.SetProperty" dbus method and the
setting "Powered". When I set "Powered" to "False", I see ofono calls
the "disable" callback of "struct ofono_modem_driver", so I think its
here I must write the famous CFUN command(s) to put modem down. In the
AT doc for SIMCOM, I have severals CFUN values for, i think, disable
purpose :
0 – minimum functionality
4 – disable phone both transmit and receive RF circuits
7 – Offline Mode
For now, i do a CFUN=4 but maybe i need to do more and add CFUN=7 ? Or
maybe use CFUN=0 ?
Can the "disable" callback be called by ofono in other case and so, i
must only do a CFUN=4 ?
* I would like to do a reset of the modem at start and at end of
ofono life (with AT+CFUN=6 or AT+CRESET). The purpose is having a modem
always in init state for ofono and the others programs. Do you think its
a good idea ?
Best regards,
Anthony Viallard.
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: ofono-simcom-support.patch --]
[-- Type: text/x-patch, Size: 10584 bytes --]
Add SIMCOM support.
I develop this with the SIM5216E chipset. SMS and GPRS work.
I don't do the voice call part because i don't need it.
Signed-off-by: Anthony Viallard <homer242 at gmail.com>
--- ofono-1.6.orig/Makefile.am 2012-04-20 21:06:29.000000000 +0200
+++ ofono-1.6/Makefile.am 2013-01-21 17:17:48.089627277 +0100
@@ -371,6 +371,9 @@ builtin_sources += plugins/samsung.c
builtin_modules += sim900
builtin_sources += plugins/sim900.c
+builtin_modules += simcom
+builtin_sources += plugins/simcom.c
+
if BLUETOOTH
builtin_modules += bluetooth
builtin_sources += plugins/bluetooth.c plugins/bluetooth.h
--- ofono-1.6.orig/drivers/atmodem/sms.c 2012-04-20 21:06:29.000000000 +0200
+++ ofono-1.6/drivers/atmodem/sms.c 2013-01-21 16:48:44.460627485 +0100
@@ -805,6 +807,7 @@ static gboolean build_cnmi_string(char *
case OFONO_VENDOR_NOVATEL:
case OFONO_VENDOR_HUAWEI:
case OFONO_VENDOR_ZTE:
+ case OFONO_VENDOR_SIMCOM:
/* MSM devices advertise support for mode 2, but return an
* error if we attempt to actually use it. */
mode = "1";
diff -pruN ofono-1.6.orig/drivers/atmodem/sim.c ofono-1.6/drivers/atmodem/sim.c
--- ofono-1.6.orig/drivers/atmodem/sim.c 2013-01-23 11:38:22.959609087 +0100
+++ ofono-1.6/drivers/atmodem/sim.c 2013-01-23 11:57:52.602608948 +0100
@@ -1023,10 +1023,16 @@ static void at_pin_send_cb(gboolean ok,
FALSE, cbd, g_free);
return;
case OFONO_VENDOR_ZTE:
+ case OFONO_VENDOR_SIMCOM:
/*
* On ZTE modems, after pin is entered, SIM state is checked
* by polling CPIN as their modem doesn't provide unsolicited
* notification of SIM readiness.
+ *
+ * On SIMCOM modems, SIM is busy after pin is entered (we've
+ * got an "+CME ERROR: 14" at "AT+CPIN?" request) and ofono
+ * don't catch the "+CPIN: READY" message sent by the modem
+ * when SIM is ready. So, use extra CPIN to check the state.
*/
sd->sim_state_query = at_util_sim_state_query_new(sd->chat,
2, 20, sim_state_cb, cbd,
diff -purN ofono-1.6/drivers/atmodem/network-registration.c ofono-patched/drivers/atmodem/network-registration.c
--- ofono-1.6/drivers/atmodem/network-registration.c 2013-01-18 15:04:03.598659165 +0100
+++ ofono-patched/drivers/atmodem/network-registration.c 2013-01-18 14:54:03.256659236 +0100
@@ -1411,6 +1411,14 @@ static void at_creg_set_cb(gboolean ok,
}
switch (nd->vendor) {
+ case OFONO_VENDOR_SIMCOM:
+ /* Register for CSQ changes */
+ g_at_chat_send(nd->chat, "AT+AUTOCSQ=1,1", none_prefix,
+ NULL, NULL, NULL);
+
+ g_at_chat_register(nd->chat, "+CSQ:",
+ csq_notify, FALSE, netreg, NULL);
+ break;
case OFONO_VENDOR_PHONESIM:
g_at_chat_register(nd->chat, "+CSQ:",
csq_notify, FALSE, netreg, NULL);
@@ -1534,7 +1537,6 @@ static void at_creg_set_cb(gboolean ok,
break;
case OFONO_VENDOR_NOKIA:
case OFONO_VENDOR_SAMSUNG:
- case OFONO_VENDOR_SIMCOM:
/* Signal strength reporting via CIND is not supported */
break;
default:
--- /dev/null 2013-01-16 10:54:41.551089567 +0100
+++ ofono-1.6/plugins/simcom.c 2013-01-23 10:43:05.631609483 +0100
@@ -0,0 +1,308 @@
+/*
+ *
+ * oFono - Open Source Telephony
+ *
+ * Copyright (C) 2008-2011 Intel Corporation. All rights reserved.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+ *
+ */
+
+#ifdef HAVE_CONFIG_H
+#include <config.h>
+#endif
+
+#include <errno.h>
+#include <stdlib.h>
+
+#include <glib.h>
+#include <gatchat.h>
+#include <gattty.h>
+
+#define OFONO_API_SUBJECT_TO_CHANGE
+#include <ofono/plugin.h>
+#include <ofono/modem.h>
+#include <ofono/devinfo.h>
+#include <ofono/netreg.h>
+#include <ofono/sim.h>
+#include <ofono/cbs.h>
+#include <ofono/sms.h>
+#include <ofono/ussd.h>
+#include <ofono/gprs.h>
+#include <ofono/gprs-context.h>
+#include <ofono/radio-settings.h>
+#include <ofono/phonebook.h>
+#include <ofono/log.h>
+
+#include <drivers/atmodem/atutil.h>
+#include <drivers/atmodem/vendor.h>
+
+static const char *none_prefix[] = { NULL };
+
+struct simcom_data {
+ GAtChat *modem;
+ GAtChat *data;
+};
+
+/* Callback and helpers functions */
+static void simcom_debug(const char *str, void *user_data)
+{
+ const char *prefix = user_data;
+
+ ofono_info("%s%s", prefix, str);
+}
+
+static void cfun_enable(gboolean ok, GAtResult *result, gpointer user_data)
+{
+ struct ofono_modem *modem = user_data;
+ struct simcom_data *data = ofono_modem_get_data(modem);
+
+ DBG("");
+
+ if (!ok) {
+ g_at_chat_unref(data->modem);
+ data->modem = NULL;
+
+ g_at_chat_unref(data->data);
+ data->data = NULL;
+
+ ofono_modem_set_powered(modem, FALSE);
+ return;
+ }
+
+ ofono_modem_set_powered(modem, TRUE);
+}
+
+static void cfun_disable(gboolean ok, GAtResult *result, gpointer user_data)
+{
+ struct ofono_modem *modem = user_data;
+ struct simcom_data *data = ofono_modem_get_data(modem);
+
+ DBG("");
+
+ g_at_chat_unref(data->data);
+ data->data = NULL;
+
+ if (ok)
+ ofono_modem_set_powered(modem, FALSE);
+}
+
+static GAtChat *open_device(struct ofono_modem *modem,
+ const char *key,
+ char *debug)
+{
+ const char *device;
+ GIOChannel *channel;
+ GAtSyntax *syntax;
+ GAtChat *chat;
+ /* GHashTable *options; */
+
+ device = ofono_modem_get_string(modem, key);
+ if (device == NULL)
+ return NULL;
+
+ DBG("%s %s", key, device);
+
+ /* options = g_hash_table_new(g_str_hash, g_str_equal); */
+ /* if (options == NULL) */
+ /* return NULL; */
+
+ /* g_hash_table_insert(options, "Baud", "115200"); */
+ /* g_hash_table_insert(options, "Parity", "none"); */
+ /* g_hash_table_insert(options, "StopBits", "1"); */
+ /* g_hash_table_insert(options, "DataBits", "8"); */
+ /* g_hash_table_insert(options, "XonXoff", "off"); */
+ /* g_hash_table_insert(options, "RtsCts", "on"); */
+ /* g_hash_table_insert(options, "Local", "on"); */
+ /* g_hash_table_insert(options, "Read", "on"); */
+
+ channel = g_at_tty_open(device, NULL);
+
+ /* g_hash_table_destroy(options); */
+
+ if (channel == NULL)
+ return NULL;
+
+ syntax = g_at_syntax_new_gsm_permissive();
+ chat = g_at_chat_new(channel, syntax);
+ g_at_syntax_unref(syntax);
+
+ g_io_channel_unref(channel);
+
+ if (chat == NULL)
+ return NULL;
+
+ if (getenv("OFONO_AT_DEBUG"))
+ g_at_chat_set_debug(chat, simcom_debug, debug);
+
+ return chat;
+}
+
+/* Modem interface function */
+static int simcom_probe(struct ofono_modem *modem)
+{
+ struct simcom_data *data;
+
+ DBG("%p", modem);
+
+ data = g_try_new0(struct simcom_data, 1);
+ if (data == NULL)
+ return -ENOMEM;
+
+ ofono_modem_set_data(modem, data);
+
+ return 0;
+}
+
+static void simcom_remove(struct ofono_modem *modem)
+{
+ struct simcom_data *data = ofono_modem_get_data(modem);
+
+ DBG("%p", modem);
+
+ ofono_modem_set_data(modem, NULL);
+
+ /* Cleanup after hot-unplug */
+ g_at_chat_unref(data->data);
+
+ g_free(data);
+}
+
+static int simcom_enable(struct ofono_modem *modem)
+{
+ struct simcom_data *data = ofono_modem_get_data(modem);
+
+ DBG("%p", modem);
+
+ data->modem = open_device(modem, "Modem", "Modem: ");
+ if (data->modem == NULL)
+ return -EINVAL;
+
+ data->data = open_device(modem, "Data", "Data: ");
+ if (data->data == NULL) {
+ g_at_chat_unref(data->modem);
+ data->modem = NULL;
+ return -EIO;
+ }
+
+ g_at_chat_set_slave(data->modem, data->data);
+
+ g_at_chat_blacklist_terminator(data->data,
+ G_AT_CHAT_TERMINATOR_NO_CARRIER);
+
+ /* init modem */
+ g_at_chat_send(data->modem, "ATE0 +CMEE=1", NULL, NULL, NULL, NULL);
+ g_at_chat_send(data->data, "ATE0 +CMEE=1", NULL, NULL, NULL, NULL);
+
+ g_at_chat_send(data->data, "AT+CFUN=1", none_prefix,
+ cfun_enable, modem, NULL);
+
+ return -EINPROGRESS;
+}
+
+static int simcom_disable(struct ofono_modem *modem)
+{
+ struct simcom_data *data = ofono_modem_get_data(modem);
+
+ DBG("%p", modem);
+
+ g_at_chat_cancel_all(data->modem);
+ g_at_chat_unregister_all(data->modem);
+
+ g_at_chat_unref(data->modem);
+ data->modem = NULL;
+
+ g_at_chat_cancel_all(data->data);
+ g_at_chat_unregister_all(data->data);
+
+ g_at_chat_send(data->data, "AT+CFUN=4", none_prefix,
+ cfun_disable, modem, NULL);
+
+ return -EINPROGRESS;
+}
+
+static void simcom_pre_sim(struct ofono_modem *modem)
+{
+ struct simcom_data *data = ofono_modem_get_data(modem);
+ struct ofono_sim *sim;
+
+ DBG("%p", modem);
+
+ ofono_devinfo_create(modem, 0, "atmodem", data->data);
+ sim = ofono_sim_create(modem, OFONO_VENDOR_SIMCOM, "atmodem",
+ data->data);
+
+ if (sim)
+ ofono_sim_inserted_notify(sim, TRUE);
+}
+
+static void simcom_post_sim(struct ofono_modem *modem)
+{
+ struct simcom_data *data = ofono_modem_get_data(modem);
+ struct ofono_message_waiting *mw;
+ struct ofono_gprs *gprs;
+ struct ofono_gprs_context *gc;
+
+ DBG("%p", modem);
+
+ ofono_phonebook_create(modem, 0, "atmodem", data->data);
+
+ ofono_sms_create(modem, OFONO_VENDOR_SIMCOM, "atmodem",
+ data->data);
+
+ /* gprs things */
+ gprs = ofono_gprs_create(modem, 0, "atmodem", data->data);
+ gc = ofono_gprs_context_create(modem, 0, "atmodem", data->modem);
+
+ if(gprs && gc)
+ {
+ ofono_gprs_add_context(gprs, gc);
+ }
+}
+
+static void simcom_post_online(struct ofono_modem *modem)
+{
+ struct simcom_data *data = ofono_modem_get_data(modem);
+
+ DBG("%p", modem);
+
+ ofono_netreg_create(modem, OFONO_VENDOR_SIMCOM, "atmodem", data->data);
+ ofono_cbs_create(modem, 0, "atmodem", data->data);
+ ofono_ussd_create(modem, 0, "atmodem", data->data);
+}
+
+static struct ofono_modem_driver simcom_driver = {
+ .name = "simcom",
+ .probe = simcom_probe,
+ .remove = simcom_remove,
+ .enable = simcom_enable,
+ .disable = simcom_disable,
+ .pre_sim = simcom_pre_sim,
+ .post_sim = simcom_post_sim,
+ .post_online = simcom_post_online,
+};
+
+static int simcom_init(void)
+{
+ return ofono_modem_driver_register(&simcom_driver);
+}
+
+static void simcom_exit(void)
+{
+ ofono_modem_driver_unregister(&simcom_driver);
+}
+
+OFONO_PLUGIN_DEFINE(simcom, "SIMCOM modem driver", VERSION,
+ OFONO_PLUGIN_PRIORITY_DEFAULT,
+ simcom_init, simcom_exit)
^ permalink raw reply [flat|nested] 7+ messages in thread* Re: SIMCOM support
2013-01-24 12:48 SIMCOM support Viallard Anthony
@ 2013-01-24 16:21 ` Denis Kenzior
2013-01-24 17:13 ` Viallard Anthony
0 siblings, 1 reply; 7+ messages in thread
From: Denis Kenzior @ 2013-01-24 16:21 UTC (permalink / raw)
To: ofono
[-- Attachment #1: Type: text/plain, Size: 3392 bytes --]
Hi Anthony,
On 01/24/2013 06:48 AM, Viallard Anthony wrote:
> Hello ofono guys,
>
> I've got a embedded device with SIM5216E modem. Based on the previous
> work done by my colleague Jean-Christian de Rivaz (you can see previous
> talk on this mailing list about this modem "Some experiments with the
> SIMCOM SIM5216E modem on a ARM926 board"), the simcom AT doc, my
> MacGyver kit and my resourcefulness, i do a patch for ofono to support
> this modem (and maybe others models).
How closely related is this one to SIMCOM 900? We already do have a
plugin for it in the tree, so it might be a good idea to merge the two
if they are closely related.
>
> I attach the patch to this email.
Please use git send-email to send patches.
>
> While making this patch, I wondered about that :
>
> * After entering a pin code, ofono goes too fast and checks too early
> the sim pin status with "CPIN?". The ME responds "CME Error : 14 (SIM
> busy)" and ofono stops here. Ofono doesn't send more CPIN? or intercept
> the "+CPIN: READY" that the modem send after a while when SIM is back
> online. So, I use the same workaround that for ZTE : sending severals
> AT+CPIN? commands during 20 seconds until having "+CPIN: READY". It
> works well but as my modem sends the "+CPIN: READY" from its own, I
> think I can use another mechanism more "standard" in ofono, isn't it ?
>
oFono core expects the sim atom driver to return from PIN entry function
when the SIM initialization procedures have been completed. Many modems
have an unsolicited notification that is fired when this is done, to
avoid CPIN? polling. Are you saying your modem fires off a 'CPIN:
READY' as an unsolicited notification? If so, then you can follow the
same type of mechanism as VENDOR_IFX or VENDOR_STE
> * I want to save power when i doesn't need the modem. So, i guess it is
> the purpose of the "org.ofono.Modem.SetProperty" dbus method and the
> setting "Powered". When I set "Powered" to "False", I see ofono calls
> the "disable" callback of "struct ofono_modem_driver", so I think its
> here I must write the famous CFUN command(s) to put modem down. In the
> AT doc for SIMCOM, I have severals CFUN values for, i think, disable
> purpose :
>
> 0 – minimum functionality
> 4 – disable phone both transmit and receive RF circuits
> 7 – Offline Mode
oFono expects the following:
Powered = True, Online = True -> Full functionality
Powered = True, Online = False -> RX/TX circuits down, SIM Card reader
enabled
Powered = False -> Everything is powered down.
>
> For now, i do a CFUN=4 but maybe i need to do more and add CFUN=7 ? Or
> maybe use CFUN=0 ?
>
You would need to find out what exactly those modes do.
> Can the "disable" callback be called by ofono in other case and so, i
> must only do a CFUN=4 ?
>
disable is performed when the modem is powered down, either by normal
means or when oFono daemon shuts down.
> * I would like to do a reset of the modem at start and at end of ofono
> life (with AT+CFUN=6 or AT+CRESET). The purpose is having a modem always
> in init state for ofono and the others programs. Do you think its a good
> idea ?
>
In general that is not desirable. The modem should be initialized when
the enable driver method is called. Why do you want to do this?
Regards,
-Denis
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: SIMCOM support
2013-01-24 16:21 ` Denis Kenzior
@ 2013-01-24 17:13 ` Viallard Anthony
2013-01-24 18:21 ` Denis Kenzior
0 siblings, 1 reply; 7+ messages in thread
From: Viallard Anthony @ 2013-01-24 17:13 UTC (permalink / raw)
To: ofono
[-- Attachment #1: Type: text/plain, Size: 2293 bytes --]
On 24. 01. 13 17:21, Denis Kenzior wrote:
> How closely related is this one to SIMCOM 900? We already do have a
> plugin for it in the tree, so it might be a good idea to merge the two
> if they are closely related.
I don't known if SIM900 works with my driver plugin. SIMCOM were not
given us this information whereas we inquired them. It will be glad if
someone check it.
The only main difference i see between the two plugins, it's the
AT+CSCS="GSM" command. I don't exactly why there is this command. Maybe
its a behavior need it to work correctly with the operator where the guy
has wrote the code and done the test. If someone tell me how to check
(with an AT command ?) if we need this command, I will do the job.
In the SIMCOM doc, I see this about AT+CSCS :
- “IRA” : International reference alphabet.
- “GSM” : GSM default alphabet; this setting causes easily software
flow control (XON /XOFF) problems.
- “UCS2” 16-bit universal multiple-octet coded character set; UCS2
character strings are converted to hexadecimal numbers from 0000 to FFFF.
>
> Please use git send-email to send patches.
>
ok.
> oFono core expects the sim atom driver to return from PIN entry function
> when the SIM initialization procedures have been completed. Many modems
> have an unsolicited notification that is fired when this is done, to
> avoid CPIN? polling. Are you saying your modem fires off a 'CPIN: READY'
> as an unsolicited notification? If so, then you can follow the same type
> of mechanism as VENDOR_IFX or VENDOR_STE
>
Right. My modem fires off a 'CPIN: READY' as an unsolicited
notification. I will check the VENDOR_IFX or VENDOR_STE mechanism.
>> * I would like to do a reset of the modem at start and at end of ofono
>> life (with AT+CFUN=6 or AT+CRESET). The purpose is having a modem always
>> in init state for ofono and the others programs. Do you think its a good
>> idea ?
>>
>
> In general that is not desirable. The modem should be initialized when
> the enable driver method is called. Why do you want to do this?
I guessed it will be nicer to have this but if you say no, ok, it was
just an idea to have always a chips in same state at start and when
ofono stops.
Thanks,
avd.
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: SIMCOM support
2013-01-24 17:13 ` Viallard Anthony
@ 2013-01-24 18:21 ` Denis Kenzior
2013-01-25 9:01 ` Renat Zaripov
0 siblings, 1 reply; 7+ messages in thread
From: Denis Kenzior @ 2013-01-24 18:21 UTC (permalink / raw)
To: ofono
[-- Attachment #1: Type: text/plain, Size: 1988 bytes --]
Hi Anthony,
On 01/24/2013 11:13 AM, Viallard Anthony wrote:
> On 24. 01. 13 17:21, Denis Kenzior wrote:
>
>> How closely related is this one to SIMCOM 900? We already do have a
>> plugin for it in the tree, so it might be a good idea to merge the two
>> if they are closely related.
>
> I don't known if SIM900 works with my driver plugin. SIMCOM were not
> given us this information whereas we inquired them. It will be glad if
> someone check it.
>
> The only main difference i see between the two plugins, it's the
> AT+CSCS="GSM" command. I don't exactly why there is this command. Maybe
> its a behavior need it to work correctly with the operator where the guy
> has wrote the code and done the test. If someone tell me how to check
> (with an AT command ?) if we need this command, I will do the job.
>
If this is the only difference then the two plugins should be merged.
Any minor variations can be taken care of by checking the model /
firmware versions.
The CSCS command is used to set the character set. It is mostly used to
make sure basic strings from the modem will be in a format we recognize
(e.g. phone numbers, operator names, etc). This setting should
generally be safe.
>>> * I would like to do a reset of the modem at start and at end of ofono
>>> life (with AT+CFUN=6 or AT+CRESET). The purpose is having a modem always
>>> in init state for ofono and the others programs. Do you think its a good
>>> idea ?
>>>
>>
>> In general that is not desirable. The modem should be initialized when
>> the enable driver method is called. Why do you want to do this?
>
> I guessed it will be nicer to have this but if you say no, ok, it was
> just an idea to have always a chips in same state at start and when
> ofono stops.
>
The chip should be powered down in disable(), so in theory it will be in
the same state prior to oFono starting. Maybe I'm mis-understanding
what you're trying to do.
Regards,
-Denis
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: SIMCOM support
2013-01-24 18:21 ` Denis Kenzior
@ 2013-01-25 9:01 ` Renat Zaripov
0 siblings, 0 replies; 7+ messages in thread
From: Renat Zaripov @ 2013-01-25 9:01 UTC (permalink / raw)
To: ofono
[-- Attachment #1: Type: text/plain, Size: 2850 bytes --]
Hi Denis,
2013/1/24 Denis Kenzior
> Hi Anthony,
>
> On 01/24/2013 11:13 AM, Viallard Anthony wrote:
>
>> On 24. 01. 13 17:21, Denis Kenzior wrote:
>>
>> How closely related is this one to SIMCOM 900? We already do have a
>>> plugin for it in the tree, so it might be a good idea to merge the two
>>> if they are closely related.
>>>
>>
In near time I'll begin rework plugin for SIM900 . I'll want replace
external cmux with the internal oFono gatmux, and add GPRS. But I think
merge is possible. Only one question is actual to me - we use voice calls
in SIM900, and during merge this functionality must be saved.
>
>> I don't known if SIM900 works with my driver plugin. SIMCOM were not
>> given us this information whereas we inquired them. It will be glad if
>> someone check it.
>>
>
Ok, I can check your plugin with SIM900 in near time.
>
>> The only main difference i see between the two plugins, it's the
>> AT+CSCS="GSM" command. I don't exactly why there is this command. Maybe
>> its a behavior need it to work correctly with the operator where the guy
>> has wrote the code and done the test. If someone tell me how to check
>> (with an AT command ?) if we need this command, I will do the job.
>>
>>
> If this is the only difference then the two plugins should be merged. Any
> minor variations can be taken care of by checking the model / firmware
> versions.
>
> The CSCS command is used to set the character set. It is mostly used to
> make sure basic strings from the modem will be in a format we recognize
> (e.g. phone numbers, operator names, etc). This setting should generally
> be safe.
>
From SIM900 AT command manual:
"The SIM900 AT Command interface defaults to the IRA character set.", so we
use AT+CSCS="GSM" for compatibility with settings of our provider.
> * I would like to do a reset of the modem at start and at end of ofono
>>>> life (with AT+CFUN=6 or AT+CRESET). The purpose is having a modem always
>>>> in init state for ofono and the others programs. Do you think its a good
>>>> idea ?
>>>>
>>>>
>>> In general that is not desirable. The modem should be initialized when
>>> the enable driver method is called. Why do you want to do this?
>>>
>>
>> I guessed it will be nicer to have this but if you say no, ok, it was
>> just an idea to have always a chips in same state at start and when
>> ofono stops.
>>
>>
> The chip should be powered down in disable(), so in theory it will be in
> the same state prior to oFono starting. Maybe I'm mis-understanding what
> you're trying to do.
>
> Regards,
> -Denis
> ______________________________**_________________
> ofono mailing list
> ofono(a)ofono.org
> http://lists.ofono.org/**listinfo/ofono<http://lists.ofono.org/listinfo/ofono>
>
Best regards,
Renat Zaripov
[-- Attachment #2: attachment.html --]
[-- Type: text/html, Size: 5393 bytes --]
^ permalink raw reply [flat|nested] 7+ messages in thread
* SIMCOM support
@ 2013-07-19 13:33 Viallard Anthony
2013-07-19 13:55 ` Jesper Larsen
0 siblings, 1 reply; 7+ messages in thread
From: Viallard Anthony @ 2013-07-19 13:33 UTC (permalink / raw)
To: ofono
[-- Attachment #1: Type: text/plain, Size: 1023 bytes --]
Hello folks,
I cleaned my work on the SIMCOM plugin according to Denis' suggestions
and add some new quirks. The patches will follow this mail.
Moreover, I have two new questions:
- In my patches, I had to add a function in src/network.c to be able
to report a new network technology. I was surprised that the function
didn't exist. Maybe there are an other mecanism which I didn't see to
change the network technology and send the dbus signal ?
- I see in mail sent by Jesper Larsen a patch about configuration of
the serial port. The patch adds the option "Read" to "on". I didn't
understand the behaviour of this option. What do this option make ?
Have a good holidays,
Regards,
Anthony V.
--
-----------------------------------------
Viallard Anthony (+41 024 455 24 82)
[ Embedded System | Software Designer ]
-----------------------------------------
Syscom Instruments SA
Rue de l'industrie 21
1450 Sainte-Croix
-----------------------------------------
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: SIMCOM support
2013-07-19 13:33 Viallard Anthony
@ 2013-07-19 13:55 ` Jesper Larsen
0 siblings, 0 replies; 7+ messages in thread
From: Jesper Larsen @ 2013-07-19 13:55 UTC (permalink / raw)
To: ofono
[-- Attachment #1: Type: text/plain, Size: 1614 bytes --]
On Fri, Jul 19, 2013 at 3:33 PM, Viallard Anthony <
viallard@syscom-instruments.com> wrote:
> Hello folks,
>
> I cleaned my work on the SIMCOM plugin according to Denis' suggestions and
> add some new quirks. The patches will follow this mail.
>
> Moreover, I have two new questions:
>
> - In my patches, I had to add a function in src/network.c to be able to
> report a new network technology. I was surprised that the function didn't
> exist. Maybe there are an other mecanism which I didn't see to change the
> network technology and send the dbus signal ?
> - I see in mail sent by Jesper Larsen a patch about configuration of the
> serial port. The patch adds the option "Read" to "on". I didn't understand
> the behaviour of this option. What do this option make ?
>
It sets the CREAD flag in the termios structure applied to the tty (
http://linux.die.net/man/3/termios). The man page merely says that what it
does is "Enable receiver". Without it I didn't get any reply from the
module to AT commands.
>
> Have a good holidays,
>
> Regards,
> Anthony V.
>
> --
> ------------------------------**-----------
> Viallard Anthony (+41 024 455 24 82)
> [ Embedded System | Software Designer ]
> ------------------------------**-----------
> Syscom Instruments SA
> Rue de l'industrie 21
> 1450 Sainte-Croix
> ------------------------------**-----------
> ______________________________**_________________
> ofono mailing list
> ofono(a)ofono.org
> https://lists.ofono.org/**mailman/listinfo/ofono<https://lists.ofono.org/mailman/listinfo/ofono>
>
[-- Attachment #2: attachment.html --]
[-- Type: text/html, Size: 2496 bytes --]
^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2013-07-19 13:55 UTC | newest]
Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-01-24 12:48 SIMCOM support Viallard Anthony
2013-01-24 16:21 ` Denis Kenzior
2013-01-24 17:13 ` Viallard Anthony
2013-01-24 18:21 ` Denis Kenzior
2013-01-25 9:01 ` Renat Zaripov
-- strict thread matches above, loose matches on Subject: below --
2013-07-19 13:33 Viallard Anthony
2013-07-19 13:55 ` Jesper Larsen
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.