Paul Sokolovsky
e15fb33e10
extmod/modwebrepl: Add GET_VER operation to query MicroPython version.
2016-08-07 00:01:25 +03:00
Paul Sokolovsky
cbef0dba2e
extmod/modwebsocket: Use mp_rom_map_elem_t and friends.
2016-08-06 16:18:03 +03:00
Paul Sokolovsky
e0d49b7e1b
extmod/modwebsocket: Make compatible with non-default object models.
2016-08-06 15:53:16 +03:00
Paul Sokolovsky
a931c4eeec
extmod/modwebsocket: Add readline method.
...
This goes bit against websocket nature (message-based communication),
as it ignores boundaries bertween messages, but may be very practical
to do simple things with websockets.
2016-08-06 15:13:26 +03:00
Paul Sokolovsky
d79342d33e
extmod/modbtree: open(): Add option kwargs.
...
Namely: flags, cachesize, pagesize, minkeypage.
2016-08-06 00:10:22 +03:00
Paul Sokolovsky
ed500e4987
extmod/modwebrepl: Make GET_FILE operation non-blocking.
...
In the sense that while GET_FILE transfers its data, REPL still works.
This is done by requiring client to send 1-byte block before WebREPL
server transfers next block of data.
2016-08-05 22:57:50 +03:00
Paul Sokolovsky
c16612ee87
extmod/modwebrepl: Factor out "GET" iteration to write_file_chunk().
2016-08-05 22:53:10 +03:00
Paul Sokolovsky
3eb532e974
extmod/modbtree: Implement __contains__ operation.
2016-08-02 00:24:59 +03:00
Paul Sokolovsky
99061d1dcb
extmod/modbtree: Switch to accepting stream object instead of filename.
...
Requires "embedded" BerkeleyDB BTree implementation.
2016-07-31 00:40:35 +03:00
Paul Sokolovsky
4f1b0292db
py/stream: Add adapter methods with POSIX-compatible signatures.
...
Previoussly such read() and write() methods were used by modussl_axtls,
move to py/stream for reuse.
2016-07-30 00:25:06 +03:00
Paul Sokolovsky
25df419c67
extmod/modbtree: Check __bt_open() return value for error.
2016-07-24 00:29:32 +03:00
Paul Sokolovsky
2dd21d9a68
extmod/modwebrepl: Use mp_stream_close() method.
2016-07-23 00:52:35 +03:00
Paul Sokolovsky
a53e0e59f3
extmod/modussl_axtls: Use mp_stream_close() method.
2016-07-23 00:38:56 +03:00
Paul Sokolovsky
0a6f599cf2
extmod/vfs_fat: Implement rmdir() method.
...
Shares the code with remove() method due to the same underlying f_unlink()
FatFs operation.
2016-07-16 03:46:42 +03:00
Paul Sokolovsky
780114e398
extmod/modussl_axtls: Add dummy setblocking() method.
...
Accepts only value of True.
2016-07-15 01:05:06 +03:00
Paul Sokolovsky
20283aec10
extmod/modussl_axtls: Further changes to allow alternative SSL modules.
...
Make variable MICROPY_SSL_AXTLS=1 should be defined to activate modussl_axtls
and link with -laxtls.
2016-07-13 01:49:38 +03:00
Paul Sokolovsky
e32d1e17bb
extmod/modussl: Rename to modussl_axtls.c, to allow impl using other SSL libs.
2016-07-13 01:35:59 +03:00
Paul Sokolovsky
a4c8a1ffe8
extmod/moduos_dupterm: Reuse dupterm_arr_obj for write operations.
...
Instead of allocating new array object header again and again, causing
memory fragmentation.
2016-07-07 02:16:24 +03:00
Paul Sokolovsky
426112ce88
extmod/moduos_dupterm: Reserve buffer bytearray object for dupterm.
...
Allocating it for each read/write operation is a memory fragmentation
hazard.
2016-07-04 13:32:30 +03:00
Paul Sokolovsky
417dc0c05d
extmod/modbtree: Fixes for nanbox build.
2016-07-02 15:58:13 +03:00
Paul Sokolovsky
b09cd0e1ec
extmod/modbtree: Fix unused argument warning.
2016-07-02 15:21:54 +03:00
Paul Sokolovsky
c880f91ac0
extmod/modwebrepl: Add readinto() method.
2016-07-02 14:05:37 +03:00
Paul Sokolovsky
03b0279c6d
extmod/modwebsocket: Add readinto() method.
2016-07-02 14:03:49 +03:00
Paul Sokolovsky
2f7ebf16de
extmod/modbtree: Cleverly implement "for key in btree:" syntax.
...
I.e. make it work like btree.keys(), while still not using a separate
iterator type.
2016-06-23 20:08:37 +03:00
Paul Sokolovsky
6b088a671a
extmod/modbtree: Implement keys(), values(), items() iterators.
...
Each takes optional args of starting key, ending key, and flags (ending
key inclusive, reverse order).
2016-06-20 15:50:31 +03:00
Paul Sokolovsky
5071ceea07
extmod/modlwip: Store a chain of incoming pbufs, instead of only one.
...
Storing a chain of pbuf was an original design of @pfalcon's lwIP socket
module. The problem with storing just one, like modlwip does is that
"peer closed connection" notification is completely asynchronous and out of
band. So, there may be following sequence of actions:
1. pbuf #1 arrives, and stored in a socket.
2. pbuf #2 arrives, and rejected, which causes lwIP to put it into a
queue to re-deliver later.
3. "Peer closed connection" is signaled, and socket is set at such status.
4. pbuf #1 is processed.
5. There's no stored pbufs in teh socket, and socket status is "peer closed
connection", so EOF is returned to a client.
6. pbuf #2 gets redelivered.
Apparently, there's no easy workaround for this, except to queue all
incoming pbufs in a socket. This may lead to increased memory pressure,
as number of pending packets would be regulated only by TCP/IP flow
control, whereas with previous setup lwIP had a global overlook of number
packets waiting for redelivery and could regulate them centrally.
2016-06-19 19:15:20 +03:00
Paul Sokolovsky
efee577318
extmod/machine_pinbase: Fix nanbox build.
...
MP_ROM_PTR() is only for data structures initialization, code should use
MP_OBJ_FROM_PTR().
2016-06-19 00:26:57 +03:00
Paul Sokolovsky
3fecbb2462
extmod/machine_pinbase: Implementation of PinBase class.
...
Allows to translate C-level pin API to Python-level pin API. In other
words, allows to implement a pin class and Python which will be usable
for efficient C-coded algorithms, like bitbanging SPI/I2C, time_pulse,
etc.
2016-06-18 23:40:28 +03:00
Paul Sokolovsky
07209f8592
all: Rename mp_obj_type_t::stream_p to protocol.
...
It's now used for more than just stream protocol (e.g. pin protocol), so
don't use false names.
2016-06-18 18:44:57 +03:00
Paul Sokolovsky
080137961d
extmod/modbtree: open(): Support "in-memory" database with filename=None.
...
It's not really in-memory though, just uses anonymous temporary file on
disk.
2016-06-18 01:31:57 +03:00
Paul Sokolovsky
e9739e3315
extmod/modbtree: __getitem__() should raise KeyError for non-existing key.
2016-06-18 01:30:49 +03:00
Paul Sokolovsky
e6e7e0e9c5
extmod/modbtree: items(): Implement DESC flag.
2016-06-18 00:47:26 +03:00
Paul Sokolovsky
332545baa3
extmod/modbtree: items(): Implement "end key inclusive" flag.
2016-06-17 00:08:55 +03:00
Robert HH
23067a1422
esp8266: Use RTC to set date & time stamps for files.
...
The time stamp is taken from the RTC for all newly generated
or changed files. RTC must be maintained separately.
The dummy time stamp of Jan 1, 2000 is set in vfs.stat() for the
root directory, avoiding invalid time values.
2016-06-16 19:31:58 +03:00
Paul Sokolovsky
d0416ff915
extmod/modbtree: Actually implement end key support for .items().
2016-06-16 18:16:33 +03:00
Paul Sokolovsky
1babeb47a4
extmod/modbtree: Implement .items() iterator.
2016-06-16 17:31:24 +03:00
Paul Sokolovsky
422396cece
extmod/modbtree: Handle default value and error check.
2016-06-15 04:18:44 +03:00
Paul Sokolovsky
8072162170
extmod/modbtree: Initial implementation of "btree" module based on BerkeleyDB.
...
This implements basic wrapping of native get/put/seq API, and then dictionary
access protocol. Native API is intended to be superceded going forward.
2016-06-14 21:51:59 +03:00
Damien George
33168081f4
extmod/machine: Add MICROPY_PY_MACHINE_PULSE config for time_pulse_us.
...
Since not all ports that enable the machine module have the pin HAL
functions.
2016-05-31 14:25:19 +01:00
Damien George
4940bee62a
extmod: Add machine time_pulse_us function (at C and Python level).
...
The C implementation is taken from the DHT driver.
2016-05-31 13:58:48 +01:00
Paul Sokolovsky
298c2ae2c7
extmod/vfs_fat: Mark anused "self" arg for fat_vfs_stat().
2016-05-31 15:42:08 +03:00
Robert HH
ee009d713a
extmod/vfs_fat.c: Add vfs.stat().
...
The call to stat() returns a 10 element tuple consistent to the os.stat()
call. At the moment, the only relevant information returned are file
type and file size.
2016-05-31 13:03:12 +03:00
Paul Sokolovsky
480159ca8b
extmod/vfs_fat: getcwd(): Use mp_obj_new_exception_arg1().
...
Copy-paste issue, with the original mistake in stmhal.
2016-05-29 20:04:53 +03:00
Paul Sokolovsky
ee5e3f6527
extmod/vfs_fat: chdir(), getcwd() methods should accept VFS object (self).
2016-05-29 18:52:41 +03:00
Paul Sokolovsky
cac6c9704e
extmod/vfs_fat: Add getcwd() method.
...
Ported from stmhal.
2016-05-29 18:23:59 +03:00
Paul Sokolovsky
f12146cbf6
extmod/vfs_fat: Add chdir() method.
...
Ported from stmhal.
2016-05-29 18:17:00 +03:00
Robert HH
7c004e794c
extmod/vfs_fat*: Replace text error messages by POSIX error numbers.
...
These changes are in line with similar changes in other modules, and
with standard Python interface.
2016-05-27 23:57:01 +03:00
Paul Sokolovsky
751e3b7a82
extmod/virtpin: Initial implementation of open-ended C-level Pin interface.
...
Using usual method of virtual method tables. Single virtual method,
ioctl, is defined currently for all operations. This universal and
extensible vtable-based method is also defined as a default MPHAL
GPIO implementation, but a specific port may override it with its
own implementation (e.g. close-ended, but very efficient, e.g. avoiding
virtual method dispatch).
2016-05-27 01:08:43 +03:00
Damien George
4b37e775ea
extmod/machine_i2c: Redo mp_hal_pin macros to use open_drain and od_low.
...
mp_hal_pin_config_od is renamed mp_hal_pin_open_drain, and mp_hal_pin_low
is mp_hal_pin_od_low.
2016-05-26 17:06:40 +01:00
Paul Sokolovsky
2ea019f3d3
extmod/modussl: Coverage build fixes.
2016-05-26 02:11:24 +03:00