Jump to content

SUBIECTE NOI
« 1 / 5 »
RSS
Nu gasesc un topic, un fel de caf...

Jocuri Android Multiplayer online...

Diferenta consum smart meter - Co...

Recomandare demontare+instalare ...
 CAIET SERVICE PREDEAL II

Internare spital psihiatrie

CM de snooker 2024

Scot penele dupa montajul tamplar...
 Masina de spalat vase si grasimea

Noua lege de acces in paduri

Sunt ouale proaspete?

Aplicatie invatare limba Germana
 Presbiopia - la 43 ani ?

Termen transcriere autovehicul

Cazare Timisoara pe 4-5 zile

Primele zile ale internetului per...
 

Un pic de ajutor!

- - - - -
  • Please log in to reply
17 replies to this topic

#1
eucora

eucora

    Junior Member

  • Grup: Members
  • Posts: 30
  • Înscris: 30.01.2005
Salutare!

Imi trebuie sa calculez un checksum pentru a putea programa o imprimanta. Am intrebat producatorul imprimantei cum pot calcula acest checksum fara de care nu pot trimite secventele de biti de comanda si mi-a trimis o VB routina cu care nu prea stiu ce sa fac!
Am incercat sa ma documentez pe aici si peste tot, dar se pare ca nu e chiar asa de simplu.
Concluzia: am nevoie de ajutorul unui cunoscator de VB sa pot face un mic calculator pe baza routinei pe care o am.

Multumesc!

PS Routina este in attach

Attached Files



#2
hErr

hErr

    Member

  • Grup: Members
  • Posts: 738
  • Înscris: 16.12.2003
o folosesti asa:
dim sComm as string
dim sCheckSum as string
sComm = "aici scrii tu comanda ta ..."
CalculateChecksum sComm, sCheckSum
' aici vei obtine acel check sum
debug.pring sCheckSum

functia CalculateChecksum foloseste apelul prin referinta, iar asta inseamna ca dupa apelul functiei variabilele folosite ca parametri de apel vor contine modificarile efectuate in interiorul functiei.

in sCheckSum va contine un caracter, iar valoarea o obtii cu functia Asc().

#3
eucora

eucora

    Junior Member

  • Grup: Members
  • Posts: 30
  • Înscris: 30.01.2005
Multumesc mult pentru solutie!
Problema mea e ca stiu sa fac programarea la nivel de biti, dar habar nu am de VB.
Asa ca nu am idee cum sa intercalez in rutina mea ceea ce mi-ai spus tu.
Am instalat  pe PC MS VStudio 6, dar nu m-am prins cum sa fac un program sa functioneze ...  :confuzzled:
Si din cate am citit pe forum, mi-ar lua ceva ani sa stiu.
Poate inca un pic de ajutor....

#4
hErr

hErr

    Member

  • Grup: Members
  • Posts: 738
  • Înscris: 16.12.2003
daca nu stii VB chiar nu are sens, pe bune. eventual roaga pe cineva sa-ti faca un mic proiect si in care sa-ti puna doua-trei butoane care sa-ti faca ceea ce ai tu nevoie.

dar eu tin minte ca trimiteam comenzi imprimatei direct din DOS cu copy > LPT1. poate rezolvi problema ta doar cu un fisier bat.

#5
eucora

eucora

    Junior Member

  • Grup: Members
  • Posts: 30
  • Înscris: 30.01.2005
Oricum multumesc pentru sfaturi. Nu e o imprimanta de birou.
Poate cineva sa-ma ajute cu acest mic proiect cu 2-3 butoane?

Multumesc mult

#6
nida

nida

    Junior Member

  • Grup: Members
  • Posts: 170
  • Înscris: 07.06.2005

View Posteucora, on Feb 15 2006, 11:58, said:

Oricum multumesc pentru sfaturi. Nu e o imprimanta de birou.
Poate cineva sa-ma ajute cu acest mic proiect cu 2-3 butoane?

Multumesc mult
nu am vb la indemana dar uite o solutie: vezi atash(redenumeste in text.xls)
PS: in a1 scrii comandu' si in a2 vezi rezultatul
PS2: tre sa ai macros enabled

Attached Files


Edited by nida, 15 February 2006 - 20:35.


#7
eucora

eucora

    Junior Member

  • Grup: Members
  • Posts: 30
  • Înscris: 30.01.2005
Salutare!

Multumesc nida!
Am deschis in Excel fisierul pe care l-ai postat.
Calculeaza el ceva dar nu inteleg ce. In primul rand, inteleg ca rezultatul e in ASCII si nu in Hex.
Eu am VB. Poti sa-mi trimiti ceva instructiuni cum ar trebui sa fac si routina sa o pun sub VB?

Multumesc

#8
nida

nida

    Junior Member

  • Grup: Members
  • Posts: 170
  • Înscris: 07.06.2005

View Posteucora, on Feb 16 2006, 09:54, said:

Salutare!

Multumesc nida!
Am deschis in Excel fisierul pe care l-ai postat.
Calculeaza el ceva dar nu inteleg ce. In primul rand, inteleg ca rezultatul e in ASCII si nu in Hex.
Eu am VB. Poti sa-mi trimiti ceva instructiuni cum ar trebui sa fac si routina sa o pun sub VB?

Multumesc
Pai mai mult decat ce a zis hErr nu prea am ce sa zic :( si cum nu am vb nu te pot ajuta mai mult ...
PS: rezultatul este asa cum il returneaza functia data de tine  - daca vrei numeric scrie in b1 =CODE(CalculateChecksum(A1)) in loc de =CalculateChecksum(A1)

#9
eucora

eucora

    Junior Member

  • Grup: Members
  • Posts: 30
  • Înscris: 30.01.2005
Da, cred ca nu am explicat prea bine ce vreau!

Eu trimit imprimantei (nu de birou!!!) pe RS232 o secventa de biti in hexadecimals, care inseamna de fapt o comanda, de forma:

ex:  1b 02 14 1b 03 E7

Ultimul bit il reprezinta bitul de verificare, tot in hexa ====> checksum

Acest bit de verificare se calculeaza intr-un mare fel, asa cum e dat in rutina de VB din primul atasament.
Marea mea rugaminte la un cunoscator de VB este sa ma ajute sa pun acea rutina intr-un mic project, prin care eu introduc secventa de biti, iar el sa-mi dea acest bit de verificare calculat.
Crede cineva ca se poate?

Multumesc

#10
nida

nida

    Junior Member

  • Grup: Members
  • Posts: 170
  • Înscris: 07.06.2005

View Posteucora, on Feb 16 2006, 16:26, said:

Da, cred ca nu am explicat prea bine ce vreau!

Eu trimit imprimantei (nu de birou!!!) pe RS232 o secventa de biti in hexadecimals, care inseamna de fapt o comanda, de forma:

ex:  1b 02 14 1b 03 E7

Ultimul bit il reprezinta bitul de verificare, tot in hexa ====> checksum

Acest bit de verificare se calculeaza intr-un mare fel, asa cum e dat in rutina de VB din primul atasament.
Marea mea rugaminte la un cunoscator de VB este sa ma ajute sa pun acea rutina intr-un mic project, prin care eu introduc secventa de biti, iar el sa-mi dea acest bit de verificare calculat.
Crede cineva ca se poate?

Multumesc
da ai explicat f. bine iar eu ti-am pus fct. ta intr-un vba in excel.
Dar fct aia nu transforma in hexa!!!! Mai mult de atat nu ai ce sa faci ca si in VB daca pui functia tot aia rezulta adica un caracter!

Uite ce nu fac eu pt tine amtransformat rezultatul in hexa!! (sper ca bine)

Attached Files



#11
eucora

eucora

    Junior Member

  • Grup: Members
  • Posts: 30
  • Înscris: 30.01.2005
Pai nu stiu ce sa zic ... parca nu-mi da rezultatul ca in exemplu ...
Adica daca introduc in celula A2 sirul ala de biti din exemplu, nu prea imi da E7.
O fi gresita rutina aia?
Mii de multumiri oricum!

#12
nida

nida

    Junior Member

  • Grup: Members
  • Posts: 170
  • Înscris: 07.06.2005

View Posteucora, on Feb 16 2006, 18:58, said:

Pai nu stiu ce sa zic ... parca nu-mi da rezultatul ca in exemplu ...
Adica daca introduc in celula A2 sirul ala de biti din exemplu, nu prea imi da E7.
O fi gresita rutina aia?
Mii de multumiri oricum!
acum nu stiu ... poate nu e buna transformarea mea in hexa .... verifica si tu daca e buna de manuta dar mie mi s-a parut ca da :) ... oricum intreaba si de unde ai luat-o .... ca poate nu-i chiar aia !!!???

#13
hErr

hErr

    Member

  • Grup: Members
  • Posts: 738
  • Înscris: 16.12.2003
uite aici un proiect simplu.
sirul tau nu e alfanumeric, ci e un sir de bytes (apropo, 1 byte are 8 biti, sa nu-i mai confunzi). ti-am facut eu conversia in sir de bytes, insa pt alte siruri va trebui sa o faci singur.

Attached Files

  • Attached File  prj.rar   1.73K   31 downloads


#14
eucora

eucora

    Junior Member

  • Grup: Members
  • Posts: 30
  • Înscris: 30.01.2005
Da, se pare ca asta e solutia!
Ar mai trebui sa poti introduce datele, nu?


Multumesc mult

#15
hErr

hErr

    Member

  • Grup: Members
  • Posts: 738
  • Înscris: 16.12.2003
mai pui si tu un text box in care introduci datele.

#16
eucora

eucora

    Junior Member

  • Grup: Members
  • Posts: 30
  • Înscris: 30.01.2005
Muncesc din greu la asta!!
Text box-u' l-am pus. ma documentez cum sa scriu in cod treaba asta!

Multumesc

#17
hErr

hErr

    Member

  • Grup: Members
  • Posts: 738
  • Înscris: 16.12.2003
daca folosesti un text box, vei avea un string ca data de intrare si vei avea aceeasi problema: stringul trebuie convertit in valori numerice.

daca introduci "A4", va trebui sa convertesti aceasta valoare intr-o valoare numerica. pt asta folosesti functia Val(). salvezi intr-un string temporar aceasta valoare "A4", iar inainte pui stringul "&H", obtinind astfel noul string "&HA4". daca aplici Val("&HA4") vei obtine 164. acestei valoari, 164, ii aplici functia Chr(), iar caracterul rezultat din functia Chr(), va construi un element din stringul tau strSendCommand.

#18
eucora

eucora

    Junior Member

  • Grup: Members
  • Posts: 30
  • Înscris: 30.01.2005
Extrem de logic ce spui tu omule!!!
Multumesc mult de tot!
Sper ca intr-o zi sa reusesc sa fac asta! :huh:

Anunturi

Chirurgia endoscopică a hipofizei Chirurgia endoscopică a hipofizei

"Standardul de aur" în chirurgia hipofizară îl reprezintă endoscopia transnazală transsfenoidală.

Echipa NeuroHope este antrenată în unul din cele mai mari centre de chirurgie a hipofizei din Europa, Spitalul Foch din Paris, centrul în care a fost introdus pentru prima dată endoscopul în chirurgia transnazală a hipofizei, de către neurochirurgul francez Guiot. Pe lângă tumorile cu origine hipofizară, prin tehnicile endoscopice transnazale pot fi abordate numeroase alte patologii neurochirurgicale.

www.neurohope.ro

0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users

Forumul Softpedia foloseste "cookies" pentru a imbunatati experienta utilizatorilor Accept
Pentru detalii si optiuni legate de cookies si datele personale, consultati Politica de utilizare cookies si Politica de confidentialitate