Git Product home page Git Product logo

blackboard-esp32's Introduction

Greetings.

I graduated summa cum laude in 2022 from Washington State University with a BSc in computer engineering and a BSc in physics.

My interests are:

  • Firmware in C
  • Embedded and IoT devices
  • Web development with React frontends and FastAPI backends
  • Linux systems
  • Typesetting with LaTeX

Things I want to learn more of:

  • Cool physics with pedagogical simulations
  • Real-world uses for FPGAs

🆕 I've now got a blog: https://khevans.com/

blackboard-esp32's People

Contributors

kevinhikaruevans avatar

Stargazers

 avatar  avatar

Watchers

 avatar  avatar

Forkers

axeand-ju

blackboard-esp32's Issues

Implement Tx queue

Need to prevent things from being sent while it's waiting for a command to finish

Handle global messages

Particularly, these ones:

image

The +IPD one is already handled and the other messages should be handled similarly, i.e. outside of the main command handler

Comments, refactoring, and cleanup

  • Not sure if I should have a types.h or have these separated out differently
  • Need to decide on the cleanest way to handle +IPD commands
  • Add Doxygen comments to new functions
  • Move stuff to projects
  • Measure the time for the ISR and the run_queue (or use the Tcf profiling)
  • Update socket status during connect/disconnect
  • Add ability to change the linkId for a request OR add way to automatically choose a free socket

Handle `busy p...` message

Might need to resend the last character if the esp32 is "busy and cannot accept input". Is there a busy signal being sent to the PS?

Add wrapper for HTTP

  • Create structs http_message with two smaller structs: request and response
  • Consider somehow buffering the response body or implementing some reasonable IO paradigm going to have an independent buffer per socket
  • DNS lookups and possibly caching on device? Is there a std MRU cache I could use here? DNSs can be handled transparently by the ESP32 by using the fqdn in the AT+CIPSTART command
  • determine if DNS lookups are required or if they're handled transparently by AT+CIPSTART
  • check out how https://github.com/SharpCoder/esp8266-arduino/ is handling the AT commands (thanks Josh!)
  • refactor callbacks, maybe use return true/false when the request is done vs not done; add funct to check if OK/ERROR is sent or an enum?
  • add method of transactions, i.e. if sending multiple commands, if one command fails, it can return/fallback will do in the future
  • consider adding TCP handler and having HTTP implement that wrapper

Implement roundrobining sockets/remove hardcoded linkId

Currently only link_id=1 is hardcoded.

The entire links/sockets needs to be refactored:

  • Socket/link receives needs to be completely independent of CIPSENDs. Maybe set the link id <-> callback mapping
  • Server receive gets messed up since they're not bound to a CIPSEND
  • Need to look up how cipmode/cipserver affects each other

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.