#29668 Yo solo domingo desarrollo web. Sobretodo en el mean stack es lo que más domino y lo único en lo que estoy centrado.
#29671 pues échale un ojo a las ofertas antes de registrarte, y haz números.
Además un handicap muy grande es al principio, donde vas a tener que bajar (más aún) los precios para conseguir hacer cosas, ganar reputación, y solo entonces podrás subir algo
Realmente es más simple de lo que pueda parecer. Yo los escribo en C.
Básicamente defines un método llamado DriverEntry (https://docs.microsoft.com/en-us/windows-hardware/drivers/wdf/driverentry-for-kmdf-drivers)
el cual es el "main" de tu driver. Aquí lo que harás es crear el Device (IoCreateDevice https://docs.microsoft.com/en-us/windows-hardware/drivers/ddi/content/wdm/nf-wdm-iocreatedevice)
con el cual te comunicarás desde tu aplicación de escritorio. A este Device le añadirás funciones, como puede ser:
pDriverObject->MajorFunction[IRP_MJ_CREATE] = CreateConn;
pDriverObject->MajorFunction[IRP_MJ_CLOSE] = CloseConn;
pDriverObject->MajorFunction[IRP_MJ_DEVICE_CONTROL] = ManageCommunication;
pDriverObject->DriverUnload = UnloadDriver;
con esto lo que consigues es que cada una de esas funciones se ejecute cuando creas la conexión entre tu aplicación y el device, la cierras, descargas el driver, y te comunicas con él
La interesante es IRP_MJ_DEVICE_CONTROL, cuya función sería algo parecido a:
NTSTATUS ManageCommunication(PDEVICE_OBJECT DeviceObject, PIRP Irp) {
PIO_STACK_LOCATION stack = IoGetCurrentIrpStackLocation(Irp);
REQUEST_STRUCT ReadInput = (REQUEST_STRUCT)Irp->AssociatedIrp.SystemBuffer;
}
con esto ya has conseguido enviarle un struct desde tu aplicación al driver, en ese mismo método harías lo que fuese, y lo devolverías escribiendo en ese buffer
Ah, y como no, para comunicarte desde tu aplicación al driver puedes usar por ejemplo la función CreateFile https://docs.microsoft.com/en-us/windows/desktop/api/fileapi/nf-fileapi-createfilea
unida a DeviceIOControl https://docs.microsoft.com/en-us/windows/desktop/api/ioapiset/nf-ioapiset-deviceiocontrol
esto sería un ejemplo muy simplificado para ahorrarte leer códigos infumables, obviamente faltan muchas cosas, y esto solo te permitiría comunicarte entre un driver y tu aplicación.
Un driver del tipo DeviceDriver suele tener como objetivo hacer una API para simplificar la comunicación entre tu aplicación y un dispositivo físico. Por ejemplo con un Arduino podrías llamar a esas funciones enviando el churro de bytes que quisieras y hacerte tu propia API para ese dispositivo
Seguro que me he dejado cosas que me parecen obvias, pero espero que entiendas la idea
#29678 Guao, thx. Y cómo sabes cómo has de comunicarte con el dispositivo hardware? Tendrás que mirar ahí las specs del fabricante supongo. Detectarlo supongo que windows lo hace por tí, y de una lista que te de la API de win puedes escoger el que tú quieras, no?
#29680 si tienes que mirar las specs, pero depende del tipo de dispositivo. Windows ya añade capas y capas de drivers para ahorrarte esto. Por ejemplo, para comunicarte con un bichito HID solo debes añadir unos filters por encima, y solo si quieres claro
#29679 lamento no poder aportar nuevos frameworks de javascript
Pues a mi me parece de lo más interesante que ha dicho nunca en este hilo.
Tb es verdad que era facilmente superable...
Ya hay que ser friki para que esa mierda te parezca más interesante que las discusiones con insultos que ha habido aquí.
Para los que esten ansiosos de PHP 7.4 https://wiki.php.net/rfc/null_coalesce_equal_operator
Estamos ahí haciendo unos algoritmos y unas historias para un laboratorio y yo trabajo con unos ficheros de muestras que alguien obtuvo de alguna forma que ni lo se ni me importa. Pues hoy me dice mi jefa "ya tengo la base de datos de la salieron todos los ficheros de prueba, te la paso y ya te pegas con ella que yo de SQL ni puta idea", a lo yo, confuso, sólo consegui poner cara de y preguntar "eh?". Pues me acaba de llegar un fichero .sql de 120MB.
Escribo esto en lo que el notepad++ me lo abre para confirmar que efectivamente es un dump a pelísimo. Voy a ver si instalo mysql o algo xDDD