Este foro usa cookies
Este foro utiliza cookies para almacenar su información de inicio de sesión si está registrado y su última visita si no lo está. Las cookies son pequeños documentos de texto almacenados en su computadora; las cookies establecidas por este foro solo se pueden usar en este sitio web y no representan ningún riesgo de seguridad. Las cookies en este foro también rastrean los temas específicos que ha leído y la última vez que los leyó. Si Ud. continúa navegando, entenderemos que acepta todas las cookies.

Se almacenará una cookie en su navegador, independientemente de la elección, para evitar que se le vuelva a hacer esta pregunta. Podrá cambiar la configuración de sus cookies en cualquier momento utilizando el enlace en el pie de página.

El foro antiguo se encuentra accesible desde https://foro.gambas-es.org en modo de solo lectura.

Últimos temas

Estadísticas del foro
  • Mensajes del foro:1,582
  • Temas del foro:344
  • Miembros:89
  • Último miembro:chescobar


Enviado por: vuott
20-04-2021, 22:20
Foro: Aplicaciones/Fragmentos de Código
- Respuestas (3)

Hola os dejo este mi codigo para monitorizar la temperatura del hardware mediante las funciones del API de libsensors:

GAMBAS
  1. Library "libsensors:5.0.0"
  2.  
  3. Public Struct sensors_bus_id
  4.   type As Short
  5.   nr As Short
  6.  
  7. Public Struct sensors_chip_name
  8.   prefix As Pointer
  9.   bus As Struct Sensors_bus_id
  10.   addr As Integer
  11.   path As Pointer
  12.  
  13. Public Struct sensors_feature
  14.   name As Pointer
  15.   number As Integer
  16.   type As Integer
  17.   first_subfeature As Integer
  18.   padding1 As Integer
  19.  
  20. Public Struct sensors_subfeature
  21.   name As Pointer
  22.   number As Integer
  23.   type As Integer
  24.   mapping As Integer
  25.   flags As Integer
  26.  
  27. Private Const SENSORS_FEATURE_TEMP As Integer = 2
  28. Private Const SENSORS_SUBFEATURE_TEMP_INPUT As Integer = 512
  29.  
  30. ' int sensors_init(FILE *input)
  31. ' Load the configuration file and the detected chips list.
  32. Private Extern sensors_init(input_ As Pointer) As Integer
  33.  
  34. ' const sensors_chip_name *sensors_get_detected_chips(const sensors_chip_name *match, int *nr)
  35. ' This function returns all detected chips that match a given chip name, one by one.
  36. Private Extern sensors_get_detected_chips(match_ As Pointer, nr As Pointer) As Pointer
  37.  
  38. ' int sensors_snprintf_chip_name(char *str, size_t size, const sensors_chip_name *chip)
  39. ' Prints a chip name from its internal representation.
  40. Private Extern sensors_snprintf_chip_name(str_ As Pointer, size As Integer, chip As Sensors_chip_name) As Integer
  41.  
  42. ' const char* sensors_get_adapter_name (const sensors_bus_id * bus)
  43. ' Returns the adapter name of a bus number, as used within the sensors_chip_name structure.
  44. Private Extern sensors_get_adapter_name(bus As Sensors_bus_id) As String
  45.  
  46. ' const sensors_feature * sensors_get_features(const sensors_chip_name *name, int *nr)
  47. ' This returns all main features of a specific chip. nr is an internally used variable.
  48. Private Extern sensors_get_features(name As Sensors_chip_name, nr As Pointer) As Pointer
  49.  
  50. ' char *sensors_get_label(const sensors_chip_name *name, const sensors_feature *feature)
  51. ' Look up the label for a given feature.
  52. Private Extern sensors_get_label(name As Sensors_chip_name, feature As Sensors_feature) As Pointer
  53.  
  54. ' const sensors_subfeature * sensors_get_subfeature(const sensors_chip_name *name, const sensors_feature *feature, sensors_subfeature_type type)
  55. ' Returns the subfeature of the given type for a given main feature.
  56. Private Extern sensors_get_subfeature(name As Sensors_chip_name, feature As Sensors_feature, type As Integer) As Sensors_subfeature
  57.  
  58. ' int sensors_get_value(const sensors_chip_name *name, int subfeat_nr, double *value)
  59. ' Read the value of a subfeature of a certain chip.
  60. Private Extern sensors_get_value(name As Sensors_chip_name, subfeat_nr As Integer, value As Pointer) As Integer
  61.  
  62. ' void sensors_cleanup(void)
  63. ' Cleans everything up.
  64. Private Extern sensors_cleanup()
  65.  
  66.  
  67. Public Sub Main()
  68.  
  69.  Dim scn As Sensors_chip_name
  70.  Dim chn As Integer
  71.  
  72.  If sensors_init(Null) <> 0 Then
  73.    Chiusura()
  74.    Error.Raise("Errore !")
  75.  
  76. ' Devuelve en la variable "chn" el número de chips encontrados:
  77.  p = sensors_get_detected_chips(Null, VarPtr(chn))
  78.  
  79.  While p > 0
  80. ' Utiliza el Puntero, para no incurrir en errores encontrados en las pruebas, y lo asigna a la Estructura:
  81.    scn = p
  82.    If Mostra(scn) > 0 Then Print
  83.    p = sensors_get_detected_chips(Null, VarPtr(chn))
  84.  Wend 
  85.  
  86. ' Cerrando:
  87.  Chiusura()
  88.  
  89. End 
  90.  
  91. Private Procedure Chiusura()
  92.  
  93. ' Libera la memoria ocupada anteriormente por la libreria "libsensors":
  94.  sensors_cleanup()
  95.  
  96.  
  97. Private Procedure Mostra(nome As Sensors_chip_name) As Integer
  98.  
  99.  Dim buf As New Byte[128]
  100.  Dim chip As New String[2]
  101.  Dim adap As String
  102.  Dim sft As Sensors_feature
  103.  Dim subf As Sensors_subfeature
  104.  Dim i, c As Integer
  105.  
  106.  sensors_snprintf_chip_name(buf.Data, buf.Count, nome)
  107.  chip[0] = String@(buf.Data)
  108.  adap = sensors_get_adapter_name(nome.bus)
  109.  chip[1] = adap
  110.  
  111.  p = sensors_get_features(nome, VarPtr(i))
  112.  
  113.  While p > 0
  114. ' Utiliza el Puntero, para no incurrir en errores encontrados en las pruebas, y lo asigna a la Estructura:
  115.    sft = p
  116.    If sft.type == SENSORS_FEATURE_TEMP Then 
  117.      subf = sensors_get_subfeature(nome, sft, SENSORS_SUBFEATURE_TEMP_INPUT) 
  118.      sensors_get_value(nome, subf.number, VarPtr(f))
  119.      If chip.Count > 0 Then
  120.        Print chip[0]
  121.        Print "Adapter: " & chip[1]
  122.        chip.Clear
  123.      Endif
  124.      Print String@(sensors_get_label(nome, sft)); ": "; "\e[1m"; f; "\e[0m"; "°C"
  125.      Inc c
  126.    Endif 
  127.    p = sensors_get_features(nome, VarPtr(i))
  128.  Wend 
  129.  
  130.  Return c
  131.  


Imprimir


Enviado por: gambafeliz
20-04-2021, 15:55
Foro: General
- Respuestas (3)

Hola

Tenemos por ejemplo:

Public Sub Button1_Click()

End

Imaginad que queremos poner una variable global donde almacenamos este evento. Para después desde cualquier parte del programa usar este evento.

¿Se puede?
¿Como lo almaceno?
¿Como uso esta variable después para que se produzca el evento?

Gracias.

Imprimir


Enviado por: tincho
19-04-2021, 23:28
Foro: Hardware & IoT
- Respuestas (3)

Si, como no podía ser de otra manera el primer helicóptero en volar en otro planeta corre un Linux.
[Imagen: eqdyZpO.jpg]
https://www.linuxlinks.com/breaking-news...lies-mars/
(F prime) se llama la plataforma de desarrollo de código abierto impulsado por componentes que permite un rápido desarrollo y despliegue de vuelos espaciales y otras aplicaciones de software integradas.
Saludos

Imprimir