Re: .Net 8, cross platform, and Windows 7/8
Posted: Fri Oct 11, 2024 3:41 pm
Thats a good start. I'd be tempted to swap the first and second row buttons, so you have "get pcm info" as the first button, and "read pcm" as the next on the top row. Next file would then be settings and write pcm (so that read and write are next to each other, on the right hand side of the screen.
For the write page, there is some more to think about now we support more PCM targets. Not all PCMs support calibration only, or param blocks, or dont use param blocks. At the moment the pcmhammer 2 code records this in PCMInfo against the PCM types, and throws an error if you do a calibration write / param block write and tells you that you have to do clone, if that is the only option for a certain PCM. It works, but its not a great user experience.
One idea is to have a 'connect / disconnect' button that identifies the PCM, and then greys out incompatible options.
The other thing I have been thinking about is a way that user can pick the PCM type from a list. It could default to Auto which could use the OSID query and lookup as we do now, but if you pick a certain PCM type from the list, then it skips the OSID check, and internally makes a pcm object of a certain type. Just need to think about what it uses as an OSID placeholder, or if we allow it to be null and make sure nothing will crash when that is the case.
For CAN, yes the block transfers/protocol is different. I think that is a different problem to the device drivers though and can be solved at a different time. If we were to implement CAN flashing, then we'd probably use a completely different read or write function, and a later style protocol which is closer to a streaming transfer with many packets than 1:1 request/response. In my head I am loosely thinking one day we might want an internal PCMHammer API with logical functions such as identify, unlock, read, write etc and those functions can look at the protocol and call the same or different function to do control depending on what its talking to and that protocol specific function would limit the size of writes to what the protocol supports. The TX and RX can still be handled in the device drivers and will never be asked to send an invalid packet. Its only a rough thought though for much later development if we ever go that far.
I have a P05 on the way (my 3rd one after I bricked the first with bad software, and the second was DOA) and once that works CAN bus might be on the cards.
BTW I just merged the latest changes and your logger zoom changes, I think we are in a good place for a PCMHammer 2.0 release, last release for older windows maybe...? This would get assembly kernels, various fixes, P04 early and late types, P08, 98+ 4 connector Black Box and E54 read and write out to the public and P05 and/or UI improvements can be considered for the next release?
For the write page, there is some more to think about now we support more PCM targets. Not all PCMs support calibration only, or param blocks, or dont use param blocks. At the moment the pcmhammer 2 code records this in PCMInfo against the PCM types, and throws an error if you do a calibration write / param block write and tells you that you have to do clone, if that is the only option for a certain PCM. It works, but its not a great user experience.
One idea is to have a 'connect / disconnect' button that identifies the PCM, and then greys out incompatible options.
The other thing I have been thinking about is a way that user can pick the PCM type from a list. It could default to Auto which could use the OSID query and lookup as we do now, but if you pick a certain PCM type from the list, then it skips the OSID check, and internally makes a pcm object of a certain type. Just need to think about what it uses as an OSID placeholder, or if we allow it to be null and make sure nothing will crash when that is the case.
For CAN, yes the block transfers/protocol is different. I think that is a different problem to the device drivers though and can be solved at a different time. If we were to implement CAN flashing, then we'd probably use a completely different read or write function, and a later style protocol which is closer to a streaming transfer with many packets than 1:1 request/response. In my head I am loosely thinking one day we might want an internal PCMHammer API with logical functions such as identify, unlock, read, write etc and those functions can look at the protocol and call the same or different function to do control depending on what its talking to and that protocol specific function would limit the size of writes to what the protocol supports. The TX and RX can still be handled in the device drivers and will never be asked to send an invalid packet. Its only a rough thought though for much later development if we ever go that far.
I have a P05 on the way (my 3rd one after I bricked the first with bad software, and the second was DOA) and once that works CAN bus might be on the cards.
BTW I just merged the latest changes and your logger zoom changes, I think we are in a good place for a PCMHammer 2.0 release, last release for older windows maybe...? This would get assembly kernels, various fixes, P04 early and late types, P08, 98+ 4 connector Black Box and E54 read and write out to the public and P05 and/or UI improvements can be considered for the next release?