Files
Boris Lovosevic 0de63ef395 Changed the method of passing parameters from tasks/events/interrupts to MicroPython callbacks
Updated MicroPython scheduler functions
  Updated all affected modules

esp-idf sdspi_host driver refactored
  Using SDCard in SPI mode and display at the same time now works
  Tested on M5Stack & Adafruit 2.4" TFT Featherwing

Display module refactored
  uses (modified) esp-idf spi-master driver
  16-bit color mode added
  low level display functions added
  get TP calibration constants function added
  Backlight on/off function added
  M5Stack & GENERIC display types added
  display initialization sequence for unknown display types can now be handled from MicroPython
  tpcalib frozen module updated

I2C module refactored
  SLAVE mode added
  Low level I2C functions added
  esp-idf i2c driver modified

SPI module updated

UART module updated

network module updated

machine module: added method for reading internal ESP32 temperature sensor

_thread module: status of the system tasks is now available in _thread.list()

os module: SDCard mode can now be configured from MicroPython

time.ticks_xx() functions now returns correct tick count after time update
rtc module updated

Added MPU9250 frozen module (available on M5Stack)

Experimental Bluetooth support, not yet finished
Experimental support for eve display modules, not yet finished

License file added
License information in many source files updated/added
2018-02-28 14:46:02 +01:00

184 lines
5.1 KiB
C

/*
* This file is part of the MicroPython ESP32 project, https://github.com/loboris/MicroPython_ESP32_psRAM_LoBo
*
* The MIT License (MIT)
*
* Copyright (c) 2018 LoBo (https://github.com/loboris)
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
* THE SOFTWARE.
*/
#ifndef _LIBGSM_H_
#define _LIBGSM_H_
#include "sdkconfig.h"
#ifdef CONFIG_MICROPY_USE_GSM
#include <time.h>
#include <stdint.h>
#define GSM_STATE_DISCONNECTED 0
#define GSM_STATE_CONNECTED 1
#define GSM_STATE_IDLE 89
#define GSM_STATE_FIRSTINIT 98
#define GSM_MAX_NAME_LEN 32
#define SMS_SORT_NONE 0
#define SMS_SORT_ASC 1
#define SMS_SORT_DESC 2
#define SMS_LIST_ALL 0
#define SMS_LIST_NEW 1
#define SMS_LIST_OLD 2
#define SMS_LIST_ALL_STR "AT+CMGL=\"ALL\"\r\n"
#define SMS_LIST_NEW_STR "AT+CMGL=\"REC UNREAD\"\r\n"
#define SMS_LIST_OLD_STR "AT+CMGL=\"REC READ\"\r\n"
typedef struct
{
int idx;
char *msg;
char stat[32];
char from[32];
char time[32];
time_t time_value;
int tz;
}SMS_Msg;
typedef struct
{
uint8_t idx[32];
time_t time[32];
}SMS_indexes;
/*
* Create GSM/PPPoS task if not already created
* Initialize GSM and connect to Internet
* Handle all PPPoS requests
* Disconnect/Reconnect from/to Internet on user request
* If 'wait' = 1, wait until connected
* If 'doconn' = 0, only initialize the task, do not connect to Internet
*/
//===================================================================================================================
int ppposInit(int tx, int rx, int rts, int cts, int bdr, char *user, char *pass, char *apn, uint8_t wait, int doconn);
/*
* Disconnect from Internet
* If 'end_task' = 1 also terminate GSM/PPPoS task
* If 'rfoff' = 1, turns off GSM RF section to preserve power
* If already disconnected, this function does nothing
*/
//====================================================
void ppposDisconnect(uint8_t end_task, uint8_t rfoff);
/*
* Connect from Internet
* If already connected, this function does nothing
*/
//=================
int ppposConnect();
/*
* Get transmitted and received bytes count
* If 'rst' = 1, resets the counters
*/
//=========================================================
void getRxTxCount(uint32_t *rx, uint32_t *tx, uint8_t rst);
/*
* Resets transmitted and received bytes counters
*/
//====================
void resetRxTxCount();
/*
* Get GSM/Task status
*
* Result:
* GSM_STATE_DISCONNECTED (0) Disconnected from Internet
* GSM_STATE_CONNECTED (1) Connected to Internet
* GSM_STATE_IDLE (89) Disconnected from Internet, Task idle, waiting for reconnect request
* GSM_STATE_FIRSTINIT (98) Task started, initializing PPPoS
*/
//================
int ppposStatus();
/*
* Turn GSM RF Off
*/
//==============
int gsm_RFOff();
/*
* Turn GSM RF On
*/
//=============
int gsm_RFOn();
/*
* Send SMS
*
* Params:
* smsnum: Pointer to phone number in international format (+<counry_code><gsm number>)
* msg: Pointer to message text
*/
//==================================
int smsSend(char *smsnum, char *msg);
/*
* Get messages list
*
* Params:
* rd_status: check all, unread or read messages
* sms_idx: return sms at index in msg
* msg: SMS message structure pointer
* indexes: pointer to indexes of the detected message
* sort: sort the indexes
*/
//====================================================================================================
int getMessagesList(uint8_t rd_status, int sms_idx, SMS_Msg *msg, SMS_indexes *indexes, uint8_t sort);
/*
* return number of messages of given type
* and, optionally the indexes of all new messages
*/
//=============================================================
int smsCount(uint8_t type, SMS_indexes *indexes, uint8_t sort);
/*
* Delete the message at GSM message index 'idx'
*/
//=====================
int smsDelete(int idx);
//==============================================
int setSMS_cb(void *cb_func, uint32_t interval);
//=========================
void setDebug(uint8_t dbg);
//=====================================================================================
int at_Cmd(char *cmd, char* resp, char **buffer, int buf_size, int tmo, char *cmddata);
#endif
#endif