Results 1 to 11 of 11

Thread: USB in oude delphi versie

  1. #1

    USB in oude delphi versie

    Hallo,

    Eerst even kort voorstellen: Paul Haagsma. Sinds december 1998 stel ik via internet een freeware programma ter beschikking voor het aansturen van modeltreinbanen. In Nederland een succes, waarschijnlijk vanwege het feit dat het niets kost. Het programma is geschreven (en schrik niet) nog steeds in de Delphi 3.0. Omdat het een hobby is en ik niet steeds nieuwe versies wil kopen ben ik blijven steken in Delphi 3.0.
    Er zijn zeker over de 1500 gebruikers in het land van mijn programma. Dit kan worden gevonden op www.pahasoft.nl

    Ik krijg nu een vraag of ik een bepaald apparaat kan ondersteunen. Tot nu toe was de aansturing via commpoort of netwerk. Dit kreeg ik makkelijk aan de praat. Echter dit apparaat moet ik via USB aansturen. Het apparaat meldt zich als \\.\HsiUsb1 (en meldt zich niet als een comm poort aan in Windows). Ik kan niet een component vinden (gratis) voor Delphi 3.0 wat communicatie verzorgt via een USB poort.

    Weten jullie of dit bestaat of hoe ik dit kan regelen? Of kan het gewoon niet in Delphi 3.0.

    Bedankt voor de antwoord(en).

    Met vriendelijke groeten,
    Paul Haagsma.

  2. #2

  3. #3
    Win32.Trojan.Heur.Herby
    Join Date
    Dec 2003
    Location
    Nuenen of all places
    Posts
    289
    Oh en D3 is echt oud en obsolete.

    Embacadero heeft tegenwoordig een "gratis" comunnity edition, versie 10.2.3.
    Deze kun je 1 jaar gratis gebruiken en dan weer vernieuwen.

  4. #4
    John Kuiper
    Join Date
    Apr 2007
    Location
    Almere
    Posts
    8,747
    Ik vraag mij hoever deze componenten teruggaan naar D3. Meestal is D5 de laatste ondersteunde versie. Natuurlijk kan je het proberen, maar vaak wordt er code gebruikt, die in oudere versies niet meer werken.
    De community versie is een optie, maar ik zou Lazarus aanraden. Goede ondersteuning voor diverse drivers (ook andere OS'sen) en de IDE is erg lijkend op D3.

    Ik heb zelf niets met USB / serieel en kan je daar niet mee helpen.Het verstaat mij eigenlijk dat jouw programma nog werkt op "nieuwe desktops", waar USB standaard is en seriële poorten zo goed als verbannen is (Ja, ik weet dat USB een een seriële verbinding is).
    Delphi is great. Lazarus is more powerfull

  5. #5
    Stijn Sanders develyoy's Avatar
    Join Date
    Jun 2008
    Location
    GentBrugge, Belgi?½
    Posts
    1,046
    Vreemd, de "\\.\xxx" notatie is voor named pipes, dat kan, maar dan zal het een driver of pakket dat extra geïnstalleerd is zijn die dat verzorgt. Daar heb ik wel al eens slechte ervaring mee. Wat ik meestal bij vreemde USB dingen, waar ik het seriële protocol van ken, doe is eerst met QueryDosDevice de lange systeem-naam te pakken te krijgen. Eerst doe je de volledige QueryDosDevice vóór je het toestel aanlegt, en dan nog eens erna, en dan zie je zo welke code(s) er bij komen in de lijst. Die kan je met Windows' eigen CreateFile gebruiken, maar met '\\?\' er voor dacht ik. Zie bijvoorbeeld hier.

    Ik zelf zat lang bij Delphi 6 en 7, maar nu je de Community Edition van 10.2 hebt, zit ik bij alletwee, om langzaamaan het een na het ander om te zetten. Maar in bovenstaande staan vooral calls naar Windows, die normaal Delphi 3 ook allemaal zou moeten kunnen, als ik het me juist herinner.

  6. #6
    mov rax,marcov; push rax marcov's Avatar
    Join Date
    Apr 2004
    Location
    Ehv, Nl
    Posts
    10,357
    En dan is er nog Lazarus natuurlijk.

    Enfin, is het dit apparaatje: ?
    https://wiki.rocrail.net/doku.php?id=hsi88:hsi88usb-en

  7. #7
    Hallo Iedereen,

    Bedankt voor alle reacties. Een aantal sites was ik ook al tegengekomen met mijn zoektocht. Deze componenten gaan helaas niet terug naar Delphi 3.

    @marcov: klopt het is dat apparaat(je). Er zijn twee versies op de markt: 1 met een commpoort en deze aansturing is gemakkelijk en ondersteun ik al jaren. Er komt echter steeds meer vraag naar de USB variant.

    Ik zal mij eens verdiepen in Lazarus. Misschien is dat een optie? Ik weet niet hoe gemakkelijk ik mijn sources vanuit Delphi 3 hierin kan importeren.

    Het is in ieder geval niets iets wat makkelijk is in te bouwen. Helaas....

    Mvg,
    Paul.

  8. #8
    Mijn programma werkt met commpoorten of netwerk. Dit omdat de componenten in de modeltreinwereld hier altijd op gebaseerd zijn geweest. Nu een nieuw component (is eigenlijk niet nieuw maar wel voor mij). Voor commpoorten zijn altijd converters te koop en Windows ziet deze gewoon als commpoort en dus geen probleem.

    Mvg,
    Paul.

  9. #9
    Quote Originally Posted by pahasoft View Post
    Ik zal mij eens verdiepen in Lazarus. Misschien is dat een optie? Ik weet niet hoe gemakkelijk ik mijn sources vanuit Delphi 3 hierin kan importeren.
    Lazarus heeft een converter om Delphi projecten (ook D3) om te zetten naar Lazarus.
    Gewoon proberen.

    Bart

  10. #10
    Ik denk dat je de documentatie van het USB device eens zal moeten doorspitten, zoals hierboven al genoemd kun je met CreateFile een handle naar het device openen. Met die handle kun je vervolgens DeviceIOControl gebruiken om control codes naar het device te sturen: https://docs.microsoft.com/en-us/win...eviceiocontrol. Welke codes je moet sturen staat hopelijk in de documentatie... Of misschien is het device eigenlijk een USB com poort: https://www.ldt-infocenter.com/dokuw...d-codes_en.pdf ?

  11. #11
    Ik heb inmiddels wel in Delphi 3 communicatie met het apparaat. Ik kan zaken opvragen. Dat is dus iets. Alleen hoe ik kan zien of het apparaat zelf iets stuurt weet ik nog niet. Als ik een lees doe zonder dat er iets in de buffer staat hangt het programma....
    Het is zeker geen virtuele commpoort in Windows. Als dit zo was geweest had ik het al lang aan de praat (denk ik).

    Mvg,
    Paul.

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •