WAT krijg je niet weg?...
Path hoef je niet te veranderen. Ga gewoon naar de betreffende directory. (of maak een shortcut aan, in een minuutje gebeurd...)
[Bericht gewijzigd door Arco op maandag 7 september 2020 18:31:11 (72%)
Special Member
WAT krijg je niet weg?...
Path hoef je niet te veranderen. Ga gewoon naar de betreffende directory. (of maak een shortcut aan, in een minuutje gebeurd...)
[Bericht gewijzigd door Arco op maandag 7 september 2020 18:31:11 (72%)
Je moet naar de directory gaan waar het programma staat waarschijnlijk in Downloads (of net waar je het ding neergezet hebt bij het downloaden):
cd \Users\xxx\Downloads
Waarbij xxx je gebruikersnaam is.
Of anders:
cd %HOMEPATH%\Downloads
Golden Member
Op 7 september 2020 18:26:46 schreef trix:
dat klopt, maar ik krijg dat niet weg.
niet met selecteren en deleten, ook niet met backspace.waarschijnlijk kanik ergens in geven dat hij gewoon met C:\ begint,...maar waar ?
https://www.digitalcitizen.life/command-prompt-how-use-basic-commands
Special Member
Path mag je ook nooit deleten, dan werkt windows niet meer...
Simpelste: In explorer met rechtermuistoets op programma klikken en "create shortcut" (in NL windows iets als "Maak snelkoppeling") kiezen...
Daarna rechtermuistoets op de shortcut -> linkermuistoets op properties en daar parameters invullen als op eerder plaatje.
[Bericht gewijzigd door Arco op maandag 7 september 2020 18:56:50 (23%)
Golden Member
nou ik heb het voor elkaar met:
C:\Users\arjoe\Downloads\Com2GraphV>Com2GraphV PORT=COM4 BAUD=9600
ik krijg ook blauwe vakjes binnen op dat lichtgele scherm, nou eens kijken of ik er een verband in kan ontdekken.
tnx.
later eens kijken of ik een shortcut kan maken, als dat makkelijker werkt.
Special Member
Je moet wel geduld hebben: op 9600 baud duurt oversturen van 9000 bytes ongeveer 10 seconden...
Special Member
Bytes worden van boven naar beneden als kolom verwerkt.
Bit 0 is bovenste pixel, bit 7 is onderste pixel in byte.
Ik zou beginnen met een bekend patroon naar de ram te schrijven, dan weet je of het oversturen naar de pc goed gaat.
(de hoofdletter "U" is daar makkelijk voor: die geeft als byte 01010101...)
[Bericht gewijzigd door Arco op maandag 7 september 2020 19:44:27 (46%)
Golden Member
het gaat niet met letters, ik zou wel een vast bit patroon kunnen maken.
klopt als ik zeg dat hij meteen bij de start begint met lezen, en stopt wanneer hij 250 mS geen data heeft gezien.
waarna het programma (Com2GraphV) opnieuw gestart moet worden voor de volgende test ?
Special Member
Nee,
Programma wacht op data (eindeloos)
Als er meer als 1 byte ontvangen is, en er komt verder 250ms niets meer, dan wordt de boel op 't scherm gezet.
Programma gaat dan weer wachten op nieuwe data (opnieuw starten hoeft dus nooit)
Heb trouwens een nieuwe versie waarbij je in de titelbalk het laatst ontvangen aantal bytes kunt zien...
Let op: heet Com2Graph en geen Com2GraphV...
Golden Member
ben een beetje aan het stoeien met het programma, nou heeft dat licht gele 4-kant een bepaalde hoogte & breedte, is dat te wijzigen ?
ik heb 2 schermen 1 v/d laptop en 1 losse (op zijn kant) voor de ene is hij te hoog en voor de andere te breed, zodat ik hem op beide er niet volledig op krijg.
edit: dat met de totaal ontvangen aantal bytes werkt trouwens
[Bericht gewijzigd door trix op vrijdag 11 september 2020 11:16:40 (11%)
Special Member
Het is nu 4x de ware grootte (300*240 -> 1200*960)
Ik kan het 3x (900*720), of 2x (600*480) maken. Op ware grootte (300*240) kan ook, maar is wel lastig om te 'lezen', wordt erg klein...
Special Member
Golden Member
Op 11 september 2020 12:14:29 schreef Arco:
Deze is op halve grootte (600*480):
//Beetje offtopic, wat gebruik jij om dit te maken Arco ?
Special Member
PowerBasic. Voor de geinteresseerden:
pic basic code:
'==================================================================================================
' Com2Graph.bas - Program to show incoming serial data as graphical representation.
' Commandline parms:
' BAUD=xxxx 'Default is 115200
' PORT=yyyy 'Default is COM3
' POS=(HORZ/VERT) 'Default is HORZ
' (HORZ is left/right, up/down. VERT is up/down, left/right.
'==================================================================================================
#COMPILE EXE "Com2Graph.exe"
#DIM ALL
#INCLUDE "WIN32API.INC"
Global hDlg, Baudrate, hCom, hTimer As Long 'Global variables
Global ComPort, sBmp, Position, sCom, Cap As String '
$DEFCOMPORT = "COM3" 'COM port name
%DEFBAUDRATE = 115200 'Baudrate
%DEFRXBUFFSIZE = 20000 'Size of serial receive buffer
$DEFPOS = "VERT" 'Orientation
%CTRL_GRAPHIC = 1001 'Control identifiers
' =================================================================================================
' Main
' =================================================================================================
FUNCTION PBMAIN
local lRet As Long
Dialog New Pixels, %HWND_Desktop, _ 'Draw dialog in pixels
"Graphic serial data test", _ '
, , 620, 500, _ '
%WS_Caption Or %WS_Sysmenu _ '
To hDlg '
Control Add Graphic, hDlg, _ 'Draw graphic control
%CTRL_GRAPHIC, _ '
"", _ '
9, 9, 602, 482, %WS_BORDER '
Graphic Attach hDlg, %CTRL_GRAPHIC '
Graphic Clear %RGB_LEMONCHIFFON 'Paint background LemonChiffon
Dialog Show Modal hDlg, Call MainDialogCB To lRet 'Show dialog
END FUNCTION '
' =================================================================================================
' Callback function
' =================================================================================================
Callback Function MainDialogCB()
Local lCnt, lCnt2, lRet As Long, lsStr As String
Static RxCnt As Long
Select Case CbMsg '
Case %WM_InitDialog '
SetTimer hDlg, &hFEED, 250, Byval 0 'Start timer
Dialog Get Text hDlg To Cap 'Get caption and add serial
If OpenComPort()Then 'port data to it
Cap = Cap & " - Port: " & Comport & _ '
" , " & "Baudrate: " & Format$(Baudrate) '
Else '
Cap = Cap & " - Unable to open Comport: " & Comport 'On error opening add it
End If '
Dialog Set Text hdlg, Cap '
Case %WM_TIMER 'Periodic timer
lRet = Comm(#hCom, RxQue ) 'Process serial data if any
If (lRet = RxCnt) Then 'is present in buffer after
If (lRet > 0) Then 'time-out
Comm Recv #hCom, lRet, sCom '
lsStr = Cap & " (" & Format$(lRet) & " bytes)" '
Dialog Set Text hdlg, lsStr '
UpdateScreen() '
RxCnt = 0 '
End If '
Else '
RxCnt = lRet '
End If '
Case %WM_DESTROY '
KillTimer hDlg, &hFEED 'Program stopped. Kill timer and
If hCom Then Close #hCom 'close COM port is open
End Select '
End Function '
' =================================================================================================
' UpdateScreen
' =================================================================================================
Function UpdateScreen() As Long
Local lCnt, lCnt2, lRet As Long
Graphic Clear %RGB_LEMONCHIFFON 'Clear graphic control
Graphic Get Bits to sBmp 'Get pixels from bitmap
For lCnt = 0 To Len(sCom) -1 'Change pixels to match serial data
For lCnt2 = 0 To 7 '
lRet = Asc(sCom, lCnt+1) '
If bit(lRet, lCnt2) Then '
If Position = "HORZ" Then '
ShowPixel lCnt Mod 300, (lCnt\300)*8 + lCnt2 '
Else '
ShowPixel lCnt \ 30, (lCnt mod 30)*8 + lCnt2 '
End If '
End If '
Next '
Next '
Graphic Set Bits sBmp 'Write back bitmap
End Function '
' =================================================================================================
' ShowPixel (1 screenpixel is 4x4 'real' pixels in size)
' =================================================================================================
Function ShowPixel(px As long, py As Long) As Long
Local lPos, lCnt As Long
For lCnt = 0 To 12 Step 4 'Draw 1 pixel in bitmap
lPos = py*4800*4 + px*4*4 + 9 + lCnt 'Represents 4x4 screen pixels
Mid$(sBmp, lPos, 4) = Mkl$(Bgr(%RGB_BLUE)) '
Mid$(sBmp, lPos+4800, 4) = Mkl$(Bgr(%RGB_BLUE)) '
Mid$(sBmp, lPos+9600, 4) = Mkl$(Bgr(%RGB_BLUE)) '
Mid$(sBmp, lPos+14400, 4) = Mkl$(Bgr(%RGB_BLUE)) '
Next '
End Function
' =================================================================================================
' Open comport
' =================================================================================================
Function OpenComPort() As Long
Local lCnt As Long, lStr As String
Baudrate = %DEFBAUDRATE 'Default values
Comport = $DEFCOMPORT '
Position = $DEFPOS '
If ParseCount(Command$," ") And Command$ <> "" Then 'See if valid commandline parms
For lCnt = 1 To ParseCount(Command$, " ") 'If so, change default values
lStr = Ucase$(Parse$(Command$, " ", lCnt)) '
If Instr(lStr, "PORT") Then '
Comport = Trim$(Remain$(lStr,"=")) '
End If '
If Instr(lStr, "BAUD") Then '
Baudrate = Val(Remain$(lStr,"=")) '
End If '
If Instr(lStr, "POS") Then '
Position = Ucase$(Trim$(Remain$(lStr,"="))) '
End If '
Next '
End If '
hCom = Freefile '
Comm Open Comport As #hCom 'Open COMport and set parameters
If Err Then Exit Function '
Comm Set #hCom, Baud=Baudrate '
If Err Then Exit Function '
Comm Set #hCom, RXBUFFER=%DEFRXBUFFSIZE '
If Err Then Exit Function '
Comm Set #hCom, Break=%False '
If Err Then Exit Function '
Comm Set #hCom, Stop=0 '
If Err Then Exit Function '
Comm Reset #hCom, Flow '
If Err Then Exit Function '
Comm Set #hCom, Byte=8
If Err Then Exit Function '
Function = 1 '
End Function '
'==================================================================================================
'==================================================================================================
'==================================================================================================
Golden Member
zo..dat is nog een behoorlijk programma.
beetje aan de kleine kant nu, maar ik ga eerst eens zorgen dat ik zinnige data binnen krijg. tnx.
[Bericht gewijzigd door trix op vrijdag 11 september 2020 17:58:09 (56%)
Special Member
Ik vind 124 regels code niet echt veel...
Meeste programma's die ik maak zijn 5000+ regels, include files niet meegerekend.
(bij mijn laatste grote programma waren dat nog eens enkele tienduizenden regels)
Versie 900*720:
Ah, powerbasic. Daar heb ik ook nog een licentie van liggen.
Zal eens opzoeken of ik die nog ergens kan vinden.
Special Member
De iets oudere versie van Powerbasic (Windows 'classic' 9 en Console 'classic' 5) is in 2016 gratis geworden.
Helaas is de verdere ontwikkeling na de dood van Bob Zale tot stilstand gekomen.
Hij was nogal een autocraat (alles moest zoals hij wilde en deed ook bijna alles zelf).
Golden Member
ik krijg nu de data op het scherm die ik verwacht, dus dat is goed.
alleen staan de bits en de bytes nog in de verkeerde volgorde, maar om te testen maakt dat denk ik niet uit.
ik laat later nog wel een printscreen zien waarin dat wat duidelijker word.
Special Member
Volgorde is zoals je hier beschrijft: https://www.circuitsonline.net/forum/view/message/2194462#2194462
code:
Byte 1.0 Byte 25.0 Byte 8977.0
Byte 1.1 Byte 25.1 Byte 8977.1
Byte 1.2 Byte 25.2 Byte 8977.2
Byte 1.3 Byte 25.3 - Byte 8977.3
Byte 1.4 Byte 25.4 - Byte 8977.4
Byte 1.5 Byte 25.5 - Byte 8977.5
Byte 1.6 Byte 25.6 - Byte 8977.6
Byte 1.7 Byte 25.7 - Byte 8977.7
-
-
Byte 2.0 Byte 26.0 - Byte 8978.0
Byte 2.1 Byte 26.1 - Byte 8978.1
Byte 2.2 Byte 26.2 - Byte 8978.2
Byte 2.3 Byte 26.3 - Byte 8978.3
Byte 2.4 Byte 26.4 - Byte 8978.4
Byte 2.5 Byte 26.5 - Byte 8978.5
Byte 2.6 Byte 26.6 - Byte 8978.6
Byte 2.7 Byte 26.7 - Byte 8978.7
-
-
... ... - ...
... ... - ...
... ... - ...
-
-
Byte 24.0 Byte 48.0 - Byte 9000.0
Byte 24.1 Byte 48.1 - Byte 9000.1
Byte 24.2 Byte 48.2 - Byte 9000.2
Byte 24.3 Byte 48.3 - Byte 9000.3
Byte 24.4 Byte 48.4 Byte 9000.4
Byte 24.5 Byte 48.5 Byte 9000.5
Byte 24.6 Byte 48.6 Byte 9000.6
Byte 24.7 Byte 48.7 Byte 9000.7
Golden Member
ja, het is moeilijk uit te leggen hoe de opbouw is, maakt voor te testen ook niet uit, het gaat er over dat alle bytes en bits correct in de ext. RAM komen, en dat kan ik zo prima controleren, tnx.
edit: ik moet nog even heel goed over de volgorde gaan nadenken, kan het zo niet meteen zeggen, wat en waar het nou fout gaat.
[Bericht gewijzigd door trix op zaterdag 12 september 2020 14:30:56 (25%)
Golden Member
hoi, daar ben ik weer .
ik ben een stuk verder met het een en ander, zover dat ik eigenlijk nu vaker werkstukken moet scannen, om te controleren of het allemaal naar behoren werkt. tot nu toe kon ik 1x iets scannen en daar mijn software mee testen, maar nu moet dat steeds vaker doen, om diverse werkstukken te testen. om te voorkomen dat ik iedere keer door het ext.RAM moet stappen op mijn 4x16 display, is er nu de noodzaak om de inhoud v/d ext.RAM goed zichtbaar te krijgen op mijn scherm compleet met adressen benoeming.
het programma van arco voldoet eigenlijk niet voldoende.
nu zat ik onderstaande nog eens te lezen (post op pag. 1 in dit topic) en dit klinkt als ideaal, nu nog werkend zien te krijgen .
CSV bestand:
dus puntcomma tussen iedere waarde, enter na iedere regel
die puntcomma, is dat een ascii code ?
die enter iedere regel, is dat bij iedere 300 bytes ?
tnx.
Op 29 augustus 2020 14:23:17 schreef Progger:
een eenvoudige manier is de data (300x300) als CSV door te sturen.
(dus puntcomma tussen iedere waarde, enter na iedere regel)
dan pak je een terminal programma (putty, minicom,etc) en kopieer je het in een CSV bestand. die open je met excel en met "voorwaardelijke opmaak" kleur je iedere cel op inhoud. vervolgens uitzoomen en klaar