val in self.channels.items() can be float
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 3/5
- Tiempo estimado
- 1-2 días
- Aptitud para principiantes
- 35/100
- Tipo de issue
- Error
- Claridad
- Bastante claro
- Estado de actividad
- Estancado
- Stack tecnológico
- python
- Área
- embedded-iot
Línea de trabajo
Comienza en _Controller.py, en el bucle de valores de canal, e inspecciona cómo llegan a _transmit los valores de self.channels.items(). Reproduce el caso de un flujo constante que produce un float y verifica que el tratamiento elegido conserva datos de trama DMX válidos y evita que falle la conversión a bytearray.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Hi fellow,
thanks a looot for your library. Real nice work.
I ran into an issue (can't tell you the origin), but by using a constant stream following line in _Controller.py might create a float, which later on will crash the program:
# Get all channels values
for key, val in self.channels.items():
# If channel in frame
if key - first < len(self.__frame):
self.__frame[key - first] = int(val[0])`
i placed an int() around the val[0]. Not sure if that's in general a good idea.
but it fixed the issue, that otherwise at this call would break the runtime.
def _transmit(self, frame: List[int], first: int):
# Convert to a bytearray and pad the start of the frame
# We're transmitting direct DMX data here, so a frame must start at channel 1, but can end early
try:
data = bytearray(([0] * (first - 1)) + frame)
# The first byte in the type, and is `0` for normal DMX data
data.insert(0, 0)
# Write
self.__device.send_break(100e-6)
sleep(10e-6)
self.__device.write(data)
except:
print("bad request")`
```
as you see I made a try / except for myself.
- Lenguaje dominante
- Python
- Estrellas
- 143
- Forks
- 23
- Métricas de merge de PR
- Sin PR fusionados en 30 d
Guía de contribución
No hay ninguna guía de contribución indexada para este repositorio
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de MattIPv4/PyDMXControl
-
Dificultad 4/5 3-5 días Aptitud para principiantes 35/100
MattIPv4/PyDMXControl#60 · 2 comentarios ·
-
Dificultad 4/5 3-5 días Aptitud para principiantes 30/100
MattIPv4/PyDMXControl#58 ·
-
Dificultad 5/5 Más de una semana Aptitud para principiantes 25/100
MattIPv4/PyDMXControl#56 · 2 comentarios ·
-
Dificultad 5/5 Más de una semana Aptitud para principiantes 18/100
MattIPv4/PyDMXControl#52 · 5 comentarios ·
-
Custom Channels Abierto
Dificultad 4/5 3-5 días Aptitud para principiantes 35/100
MattIPv4/PyDMXControl#51 · 3 comentarios ·
Todos los issues de MattIPv4/PyDMXControl
Issues similares
-
agent-ready documentation needs-triage
Dificultad 1/5 1-3 horas Aptitud para principiantes 88/100
-
documentation
Dificultad 1/5 Menos de una hora Aptitud para principiantes 91/100
-
workflow-status page template still says reusable workflows are "triggered only by workflow_call:" Abierto
Dificultad 1/5 Menos de una hora Aptitud para principiantes 92/100
-
Add https://search.jeremyh.xyz/ Abiertoinstance instance add
Dificultad 1/5 Menos de una hora Aptitud para principiantes 72/100
searxng/searx-instances#939 · 1 comentario ·
-
area-deployment area-integrations triage:bot-seen
Dificultad 2/5 Medio día Aptitud para principiantes 86/100