Code Monkey home page Code Monkey logo

sacnkit's People

Contributors

dsmurfin avatar

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

sacnkit's Issues

Per-slot priority messages should be sent in more circumstances

At present per-slot priority message sent once per second, and a single messages whenever taking over control.

To be compliant with the whitepaper and draft E1.31-1 we should:

  • Send 3 per-slot packets at full rate before transmitting at the supressed rate
  • Send 3 per-slot packets at full rate whenever priority changes before transmitting at the supressed rate

After removing and adding back the universe data messages are not sent

Hi All ๐Ÿ‘‹
Nice to meet you ;)

I have a project using sACNKit and found edge case in which the socket termination message is always sent instead of message for universe.

In my case the problem occurs when doing such operations:

  1. Start sACNSource and add a single universe to it
  2. Call removeUniverse with the number of above universe
  3. Add again the same universe again

As far as I figured out the removeUniverse registers socket in the socketsShouldTerminate dictionary, which later is never cleaned out. In effect the sendDataMessages method instead of picking up the right message, always sends the socketTerminationMessages. This happens in this line:

let messages = socketsShouldTerminate[interface] != nil ? socketTerminationMessages : universeMessages

The intuition says me that probably we should clean the socketsShouldTerminate dictionary at some point, but I'm not that familiar with the whole code to be able to quickly find proper place.

If you could take a look I would be more than grateful ๐Ÿ™‡ . Or you can leave me a hint where it should be cleaned and I will prepare a PR with the changes. Just let me know what suits you better ;)

Add method to ignore certain CIDs

It may be desirable to ignore certain CIDs, for example, to ignore data from the same application that might be received over the wire

Attempt to parse invalid UTF-8/ASCII source names

Some Components have been seen with invalid UTF-8/ASCII names, for example:

54657374657200722076312e312e377200e709510238aa6235481428ac9ccc6f9e561056c54327f80a004a44f9b7358818e11c7e1838646ab74976e535ed0000

We should either attempt to continue by resolving an invalid name to a generic source name invalid, or try and extract something from the data provided.

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.