לוגו אתר Fresh          
 
 
  אפשרות תפריט  ראשי     אפשרות תפריט  צ'אט     אפשרות תפריט  מבזקים     אפשרות תפריט  צור קשר     חץ שמאלה ‎print ‎"Hello World!"; if‎ ‎not rules.‎know ‎then rules.‎read(); חץ ימינה  

לך אחורה   לובי הפורומים > מחשבים > תכנות ובניית אתרים
שמור לעצמך קישור לדף זה באתרי שמירת קישורים חברתיים
תגובה
 
כלי אשכול חפש באשכול זה



  #1  
ישן 05-07-2010, 15:01
צלמית המשתמש של MatiM
  משתמש זכר MatiM MatiM אינו מחובר  
 
חבר מתאריך: 12.04.06
הודעות: 2,021
שלח הודעה דרך MSN אל MatiM
תכנות יציאה מקבילית דרך USB

שלום,

רכשתי כבל דומה לזה:
http://www.byterunner.com/byterunne...act_match=exact
בשביל פרוייקט באלקטרוניקה.


מה שאני מנסה לעשות, הוא לשלוח דרך יציאת USB מידע כך שהוא יתקבל דרך יציאה מקבילית (שמתחברת למעגל אלקטרוני).
שליחת המידע וכו', לא מעניינים אותי כרגע (ואני מניח שאני אסתדר איתם),

***ב visual studio Basic / C++ 2008 ***


מה שתוקע אותי כרגע הוא - שאני לא יודע איך אני יכול לשלוח נתונים דרך הפורט של יציאת הUSB.

חיפשתי מדריכים באינטרנט, וכולם מדברים על עבודה עם יציאות serial (ושלי היא parallel).

אני רוצה בתור התחלה שתוצג לי רשימה של כל הפורטים [של הUSB] שמחוברים, ותהיה אפשרות לבחור בפורט המתאים לכבל עם המתאם לD25.

אם זה מורכב או לא ברור, אז לפחות אני אשמח לדעת איך אני מוצא את הכתובת של הפורט, ובאיזו הוראה להשתמש כדי לכתוב לה נתונים.

ניכנסתי למנהל התקנים, ולא מצאתי שם את מספר הפורט.
הורדתי תוכנה של מיקרוסופט שמציגה יותר מידע על הUSB, ומצאתי שכתובת הפורט היא 0x01 [קצת תמוה בעיני].
ניסיתי בC++ לכתוב כמו שאני כותב ליציאה מקבילית, באמצעות
קוד:
outp(0x01,0xFF);

אך אני מקבל שגיאה שאין לי פריווילגיות לעשות זאת.

בVisual Basic לא הצלחתי למצוא איך אני עובד עם יציאה מקבילית ולא טורית.


אשמח לקצת כיוון.

תודה
_____________________________________
תמונה שהועלתה על ידי גולש באתר ולכן אין אנו יכולים לדעת מה היא מכילה

תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
  #13  
ישן 05-07-2010, 21:40
  רמי ד רמי ד אינו מחובר  
 
חבר מתאריך: 07.10.06
הודעות: 1,795
בתגובה להודעה מספר 1 שנכתבה על ידי MatiM שמתחילה ב "תכנות יציאה מקבילית דרך USB"

למעשה גם אני לא בטוח שזה הציוד הנכון, כיוון שהוא נראה מתאים רק למדפסות.
ציטוט:
אם מדפסת יכולה לשנות את הערכים ביציאה הזאת, למה שלא כל תוכנה תוכל לעשות את זה?

אל תיהיה בטוח שזה אפשרי, כיוון שאולי יש בפנים מיקרו-קונטרולר שאינך יודע כיצד תיכנתו אותו לעבוד...

בכל מיקרה, אם כבר קנית והכל, האם את זה קראת?:
http://gutenprint.sourceforge.net/g...oper-manual.pdf
יש שם בהמשך כמה דוגמאות קוד. נסה לראות אולי זה יועיל לך במשהוא....

נ.ב:
מה אתה מנסה לעשות? אולי יש דרך אחרת שלא מצריכה את היציאה המקבילית?

עריכה:
שים לב שבדף הזה:
http://gutenprint.sourceforge.net/p_Download.php
הם נותנים לינק להורדה של הפרוייקט שלהם. אם בא לך להכנס לקוד שם, או רק להעתיק ממנו דברים...

נערך לאחרונה ע"י רמי ד בתאריך 05-07-2010 בשעה 21:49. סיבה: תוספת
תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
  #14  
ישן 05-07-2010, 21:51
צלמית המשתמש של MatiM
  משתמש זכר MatiM MatiM אינו מחובר  
 
חבר מתאריך: 12.04.06
הודעות: 2,021
שלח הודעה דרך MSN אל MatiM
בתגובה להודעה מספר 13 שנכתבה על ידי רמי ד שמתחילה ב "למעשה גם אני לא בטוח שזה..."

אני לא חושב שהקובץ הזה מועיל במשהו,
הוא מסביר איך להגדיר מדפסות דרך קוד או משהו כזה.
לא התעמקתי יותר מדי, אבל לפי הרעיון הכללי זה מתאר את המצבים השונים של המדפסת, משתנים ששייכים למדפסות וכל זה.


בנוגע לתוצאה -
אני בונה איזה מעגל באלקטרוניקה [ללימודים], שאני רוצה שישלט דרך המחשב.
אני יכול לשלוט עליו דרך היציאה המקבילית שפעילה רק בwin98, אבל התקדמנו מאז, ונימאס לי לחפש מחשבים שעובדים ב98. (ולהזכירכם - אני לא יכול להתקין תוכנות תאימות או whatever בבית הספר).

אז הפיתרון הוא להפעיל אותו דרך USB, והכי מוכר יהיה להשתמש במתאם מUSB ליציאה מקבילית.


פיתרון אחר - יהיה להכין את כל המעגל באלקטרוניקה (רכיבים,חוטים....), אבל אותי זה משעמם להתחיל לחבר חוטים, אני אוהב את התחום של התוכנה, ולכן הפיתרון שאני נמשך אליו הוא בתחום התכנות.
_____________________________________
תמונה שהועלתה על ידי גולש באתר ולכן אין אנו יכולים לדעת מה היא מכילה

תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
  #16  
ישן 05-07-2010, 22:16
צלמית המשתמש של MatiM
  משתמש זכר MatiM MatiM אינו מחובר  
 
חבר מתאריך: 12.04.06
הודעות: 2,021
שלח הודעה דרך MSN אל MatiM
בתגובה להודעה מספר 15 שנכתבה על ידי זיו שמתחילה ב "פורט מקבילי לא פעיל בXP? אתה..."

אני לא חושב, אני בטוח.
להפעיל את היציאה המקבילית זה אחד הסיוטים הגדולים!

שנה שעברה עבדתי שנה שלמה עם היציאה המקבילית.
רציתי לעבוד על זה בבית [על XP], ועברתי המוני עמודי אינטרנט ותוכנות שניסו "לפתוח" את היציאה המקבילית ללא הצלחה.

היתה תוכנה אחת, userport - שכמעט הצליחה.
הרצתי את התוכנית דרכה, אבל היא עבדה פעמים מעטות- ולא הייתי יכול לבטוח שמה שאני באמת מריץ, זה מה שאני באמת מקבל. (אם פעם זה עבד, ופעם לא עבד)

הפיתרון היחיד שמצאתי היה להתקין win98 על מכונה וירטואלית כלשהי, ודרכה לעבוד. (עובד מעולה!)

------

עכשיו, אני על מחשב חדש [עם windows7], שאין לי בו בכלל יציאה מקבילית.
אז אני מחפש פיתרון אחר.
מן הסתם אני יכול לחזור למחשב הקודם, ושוב לכתוב תוכנות ליציאה המקבילית - אבל אני לא רואה סיבה שבגללה עדיין מלמדים להשתמש ביציאה המקבילית (אם היא לא קיימת כבר במחשבים).
_____________________________________
תמונה שהועלתה על ידי גולש באתר ולכן אין אנו יכולים לדעת מה היא מכילה

תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
  #18  
ישן 05-07-2010, 22:31
צלמית המשתמש של MatiM
  משתמש זכר MatiM MatiM אינו מחובר  
 
חבר מתאריך: 12.04.06
הודעות: 2,021
שלח הודעה דרך MSN אל MatiM
בתגובה להודעה מספר 1 שנכתבה על ידי MatiM שמתחילה ב "תכנות יציאה מקבילית דרך USB"

אני לא מבין את זה,
כל היום אני עובר על עשרות אתרי אינטרנט ולא מוצא פיתרון אחד שמתקרב למה שאני צריך.

הדבר הפשוט שאני מחפש:
להציג את כל יציאות הUSB שקיימות במחשב.
ולא רק את היציאה COM1 שהיא הsrial port!

יותר מורכב:
לשלוח מידע דרך USB, גם אם הוא בצורה טורית, וגם אם הוא בצורה מקבילית (או מה שלא יהיה)

והכי מורכב:
לשלוח נתון דרך המתאם המדובר, לפורט בUSB שיקרא כנתון מקבילי.



אחי עבד בעבר עם usb to rs232, ואמר שאמור להיות איזה DLL שמסדר את העבודה.
חיפשתי גם את זה - ומצאתי את libusb, ספרייה שאמורה לטפל בכל העסק הזה.
http://sourceforge.net/apps/trac/libusb-win32/wiki

הפעלתי לפי מדריכים שונים (כי בעמודים שהם מקשרים אליהם אין מידע מועיל), והצלחתי לקרוא את הUSB הנכון (כי הכותרת היתה כמו במנהל התקנים!),
אבל כשאני מנסה לשלוח/לקרוא נתון כמו שמתואר, מוחזרת שגיאה לא ברורה.

הנה הקוד שהשמשתי בו (אחרי ששמתי את הDLL במקום, והגדרתי לVS לעבוד עם ספרייה מיוחדת..)

קוד:
#include <stdio.h> #include <conio.h> #include <dos.h> #include <usb.h> /* the device's vendor and product id */ #define MY_VID 0xFE6 #define MY_PID 0x811E #define MY_CONFIG 1 #define MY_INTF 0 /* the device's endpoints */ #define EP_IN 0x81 #define EP_OUT 0x1 #define BUF_SIZE 64 usb_dev_handle *open_dev(void); usb_dev_handle *open_dev(void) { struct usb_bus *bus; struct usb_device *dev; for (bus = usb_get_busses(); bus; bus = bus->next) { for (dev = bus->devices; dev; dev = dev->next) { if (dev->descriptor.idVendor == MY_VID && dev->descriptor.idProduct == MY_PID) { return usb_open(dev); } } } return NULL; } int main(void) { usb_dev_handle *dev = NULL; /* the device handle */ char tmp[BUF_SIZE]; int ret; usb_init(); /* initialize the library */ usb_find_busses(); /* find all busses */ usb_find_devices(); /* find all connected devices */ if (!(dev = open_dev())) { printf("error: device not found!\n"); return 0; } else { printf("success: device %04X:%04X opened\n",MY_VID,MY_PID); } if (usb_set_configuration(dev, MY_CONFIG) < 0) { printf("error: setting config #%d failed\n",MY_CONFIG); usb_close(dev); return 0; } else { printf("success: set configuration #%d\n", MY_CONFIG); } if (usb_claim_interface(dev, 0) < 0) { printf("error: claiming interface #%d failed\n", MY_INTF); usb_close(dev); return 0; } else { printf("success: claim_interface #%d\n", MY_INTF); } ret = usb_bulk_write(dev, EP_OUT, tmp, sizeof(tmp), 5000); if (ret <= 0) { printf("error: bulk write failed (%d)\n",ret); } else { printf("success: bulk write %d bytes\n",ret); } ret = usb_bulk_read(dev, EP_IN, tmp, sizeof(tmp), 5000); if (ret <= 0) { printf("error: bulk read failed\n"); } else { printf("success: bulk read %d bytes\n",ret); } usb_release_interface(dev, 0); usb_close(dev); printf("Done.\n"); getchar(); return 0; }



מה שבכחול - אני שיניתי לנתון המתאים של הפורט שלי, לפי איזו תוכנה שמצורפת לDLL שמציגה את כל הUSBים.

מה שבאדום - זה המקום שמוחזרת לי שגיאה (שהיא - מה שכתוב - שהכתיבה/הקריאה נכשלה)



אם מישהו יכול להביא לי קצה חוט בכל העסק, אני אשמח.

מיואש כבר
_____________________________________
תמונה שהועלתה על ידי גולש באתר ולכן אין אנו יכולים לדעת מה היא מכילה

תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
  #19  
ישן 05-07-2010, 23:37
  רמי ד רמי ד אינו מחובר  
 
חבר מתאריך: 07.10.06
הודעות: 1,795
בתגובה להודעה מספר 1 שנכתבה על ידי MatiM שמתחילה ב "תכנות יציאה מקבילית דרך USB"

חשבתי בשבילך על 3 אופציות חלופיות:

הראשונה:

אם אתה לא מתעקש על היציאה המקבילית, ואתה לא מתעקש על שפת התכנות,
תוכל לקנות מתאם RS-232 ל-USB, ולכתוב ישירות ל-RS-232 דרך C#. (יש שם פקד מוכן נוח serialPort שמו)
יש לך אם אני זוכר נכון 3 יציאות דיגיטליות, 4 כניסות, ועוד 2 רגלי DATA אחת-receive והשניה-transmit
(בשביל להשתמש ברגלי ה-DATA כניראה תצטרך להשתמש במיקרו-קונטרולר או ג'וק יעודי מתאים)

השניה:

תלוי באופי הפרוייקט, אבל אם אתה לא רוצה להלחים הרבה, ואתה רוצה להשתמש בתוכנה יש אופציה להשתמש במיקרו (כמו PIC ו-AVR).

השלישית:

להשתמש בכרטיס מוכן שיקשר אותך ישירות בין ה-USB למחשב.

אני בעבר השתמשתי בשני אלה (הם מגיעים עם סיפריות והכל):
http://www.roboticsconnection.com/p...controller.aspx
http://www.phidgets.com/products.php?category=0
תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
תגובה

כלי אשכול חפש באשכול זה
חפש באשכול זה:

חיפוש מתקדם
מצבי תצוגה דרג אשכול זה
דרג אשכול זה:

מזער את תיבת המידע אפשרויות משלוח הודעות
אתה לא יכול לפתוח אשכולות חדשים
אתה לא יכול להגיב לאשכולות
אתה לא יכול לצרף קבצים
אתה לא יכול לערוך את ההודעות שלך

קוד vB פעיל
קוד [IMG] פעיל
קוד HTML כבוי
מעבר לפורום



כל הזמנים המוצגים בדף זה הם לפי איזור זמן GMT +2. השעה כעת היא 17:29

הדף נוצר ב 0.07 שניות עם 10 שאילתות

הפורום מבוסס על vBulletin, גירסא 3.0.6
כל הזכויות לתוכנת הפורומים שמורות © 2024 - 2000 לחברת Jelsoft Enterprises.
כל הזכויות שמורות ל Fresh.co.il ©

צור קשר | תקנון האתר