[έχει λυθεί]Vbasic υπολογισμό 64 σταθερών πιθανοτήτων

Συζητήσεις για τις γλώσσες του dot Net και για του Visual Studio της Microsoft

Συντονιστές: WebDev Moderators, Super-Moderators

Απάντηση
Άβαταρ μέλους
veriotis
Graphics Moderator
Δημοσιεύσεις: 1360
Εγγραφή: 22 Δεκ 2003 21:30
Τοποθεσία: Βέροια
Επικοινωνία:

[έχει λυθεί]Vbasic υπολογισμό 64 σταθερών πιθανοτήτων

Δημοσίευση από veriotis » 05 Φεβ 2006 00:43

Έφτιαξα ένα hardware και το software για να το δουλέψω μέχρι εδώ όλα καλά δουλεύει άψογα
Έλα όμως που αποφάσισα να αναβαθμίσω το λογισμικό ώστε να αναγνωρίζει την κατάσταση του hardware όταν ξεκινά .
εδώ είναι το παίδεμα
η αποστολή τον εντολών είναι εύκολη μιας και κάνει τον υπολογισμό το pc
8 γραμμές που αντιστοιχούν στο 0 για OFF και στο 1 ή 2 ή 4 ή 8 ή 16 ή 32 ή 64 ή 128 αντίστοιχα με της γραμμές για ON
onA = on1 + on2 + on3 + on4 + on5 + on6 + on7 + on8
όταν ζητώ από το hardware μου δίνει ένα νούμερο (το onΑ) που αντίστοιχη με την κατάσταση τον 8 γραμμών
εδώ έχουμε όμως 64 διαφορετικά νούμερα που μας λένε ότι η γραμμή 1 είναι ON φυσικά το αντίστοιχο και για τις άλλες γραμμές

Αναρωτιέμαι λοιπόν μήπως υπάρχει κάποιο πιο εύκολο κόλπακι να κάνω τον υπολογισμό από το να γράφω 64 διαφορετικές πιθανότητες για να πω στο πρόγραμμα ότι η γραμμή ένα είναι ανοικτή

Μια ιδέα που μου μπήκε γράφοντας αυτό το post είναι να καταγράφω στο pc της εντολές που στέλνω όποτε την επόμενη φορά που θα ξινίσω το πρόγραμμα θα ξέρω σε πια κατάσταση είναι αρκεί να μην το βγάλει κανείς από την πρίζα

Ευχαριστώ, εκ τον προτέρων για το ενδιαφέρων
Τελευταία επεξεργασία από το μέλος veriotis την 21 Φεβ 2006 16:31, έχει επεξεργασθεί 1 φορά συνολικά.

Άβαταρ μέλους
dva_dev
Script Master
Δημοσιεύσεις: 3790
Εγγραφή: 16 Σεπ 2005 01:32
Επικοινωνία:

[έχει λυθεί]Vbasic υπολογισμό 64 σταθερών πιθανοτήτων

Δημοσίευση από dva_dev » 14 Φεβ 2006 18:52

Δεν είμαι σίγουρος ότι κατάλαβα αλλά αν δεν κάνω λάθος, τότε εσένα δεν σε ενδιαφέρει όλο το νούμερο παρά το κάθε bit ξεχωριστά.

Οπότε για να πάρεις την κατάσταση της γραμμής 1 αρκεί το εξής:

Κώδικας: Επιλογή όλων

on1 = (1 == (onA & 1)); //binary AND
...
on2 = (2 == (onA & 2));
...
on8 = (128 == (onA & 128));
η εναλλακτικά
onX = (onA >> (X-1)) & 1, δηλαδή:

Κώδικας: Επιλογή όλων

on1 = onA & 1;
on2 = (onA >> 1) & 1;
..
on8 = (onA >> 7) & 1;

Άβαταρ μέλους
veriotis
Graphics Moderator
Δημοσιεύσεις: 1360
Εγγραφή: 22 Δεκ 2003 21:30
Τοποθεσία: Βέροια
Επικοινωνία:

[έχει λυθεί]Vbasic υπολογισμό 64 σταθερών πιθανοτήτων

Δημοσίευση από veriotis » 15 Φεβ 2006 09:11

Ευχαριστώ για το ενδιαφέρον
θα το κοιτάξω το απόγευμα να δω τη γίνεται

Άβαταρ μέλους
veriotis
Graphics Moderator
Δημοσιεύσεις: 1360
Εγγραφή: 22 Δεκ 2003 21:30
Τοποθεσία: Βέροια
Επικοινωνία:

[έχει λυθεί]Vbasic υπολογισμό 64 σταθερών πιθανοτήτων

Δημοσίευση από veriotis » 20 Φεβ 2006 20:16

Βρήκα επιτέλους λίγο χρόνο και ασχολήθηκα με αυτό αλλά χωρίς αποτέλεσμα

Αν και μετέτρεψα τους αριθμούς σε binary πάλι έχουμε τις 64 πιθανότητες
αντί για 255 έχω 11111111 όποτε πάλι το ίδιο είναι

Άβαταρ μέλους
dva_dev
Script Master
Δημοσιεύσεις: 3790
Εγγραφή: 16 Σεπ 2005 01:32
Επικοινωνία:

[έχει λυθεί]Vbasic υπολογισμό 64 σταθερών πιθανοτήτων

Δημοσίευση από dva_dev » 21 Φεβ 2006 12:54

Καλημέρα,
δεν καταλαβαίνω γιατί έχεις 64 πιθανότητες για κάθε γραμμή.

Αν το hardware σου επιστρέφει ένα νούμερο στο onA (π.χ. 197), μπορείς να κάνεις τα παρακάτω για να έχεις την κατάσταση της κάθε γραμμής.

Κώδικας: Επιλογή όλων

...
        onA = 197   '11000101 <- Αυτό που σου επιστρέφει το hardware

        on1 = &#40;onA And 1&#41; = 1       'TRUE -> H 1η γραμμή είναι ανοιχτή
        on2 = &#40;onA And 2&#41; = 2       'FALSE -> H 2η γραμμή είναι κλειστή
        on3 = &#40;onA And 4&#41; = 4       'TRUE -> H 3η γραμμή είναι ανοιχτή
        on4 = &#40;onA And 8&#41; = 8       'FALSE -> H 4η γραμμή είναι κλειστή
        on5 = &#40;onA And 16&#41; = 16     'FALSE -> H 5η γραμμή είναι κλειστή
        on6 = &#40;onA And 32&#41; = 32     'FALSE -> H 6η γραμμή είναι κλειστή
        on7 = &#40;onA And 64&#41; = 64     'TRUE -> H 7η γραμμή είναι ανοιχτή
        on8 = &#40;onA And 128&#41; = 128   'TRUE -> H 8η γραμμή είναι ανοιχτή
Τώρα πρόσεξα ότι χρησιμοποιείς vb.

Άβαταρ μέλους
veriotis
Graphics Moderator
Δημοσιεύσεις: 1360
Εγγραφή: 22 Δεκ 2003 21:30
Τοποθεσία: Βέροια
Επικοινωνία:

[έχει λυθεί]Vbasic υπολογισμό 64 σταθερών πιθανοτήτων

Δημοσίευση από veriotis » 21 Φεβ 2006 16:25

Σε χρωστάω μια χάρη
το πρόβλημα λύθηκε επιτυχώς και σε ευχαριστώ θερμά για την βοήθεια

Κώδικας: Επιλογή όλων

Dim invalue As Byte
invalue = PortIn&#40;888&#41;
        
        onA = invalue
        on1 = &#40;onA And 1&#41; = 1
        on2 = &#40;onA And 2&#41; = 2
        on3 = &#40;onA And 4&#41; = 4
        on4 = &#40;onA And 8&#41; = 8
        on5 = &#40;onA And 16&#41; = 16
        on6 = &#40;onA And 32&#41; = 32
        on7 = &#40;onA And 64&#41; = 64
        on8 = &#40;onA And 128&#41; = 128

If on1 = -1 Then
LaVolpeButton1.Caption = "OFF"
Shape1.FillColor = vbGreen
on1 = 1
Else
LaVolpeButton1.Caption = "ON"
Shape1.FillColor = vbRed
on1 = 0
End If

Απάντηση

Επιστροφή στο “dot Net και Visual Studio”

Μέλη σε σύνδεση

Μέλη σε αυτήν τη Δ. Συζήτηση: Δεν υπάρχουν εγγεγραμμένα μέλη και 2 επισκέπτες