HaEsrimVeArba פורסם 2007 באוגוסט 28 Share פורסם 2007 באוגוסט 28 יש לי 2 תוכנותכאשר אחת אמורה ליצר מידע וכתובה ב C#, השניה אמורה לקלוט את המידע לעבד אותו ולהחזיר לתכנה הראשונה תשובה וכתובה ב C++.איך אני יכול לשלוח את המידע בין 2 התוכנות?(בעדיד התוכנות יפעלו על מחשבים שונים ויעבדו בעזרת כרטיס תקשורת יעודי, כרגע שניהן על אותו מחשב. קישור לתוכן שתף באתרים אחרים More sharing options...
Pure-Gold פורסם 2007 באוגוסט 28 Share פורסם 2007 באוגוסט 28 הדרך הפשוטה ביותר לדעתי היא לייצג את המידע בקובץ XML והמידע המועבד יחזור גם ב XML.אתה גם יכל ליצור תקשורת בין שתי התוכנות (בעזרת Sockets) אבל זה כבר יותר מסורבל. קישור לתוכן שתף באתרים אחרים More sharing options...
HaEsrimVeArba פורסם 2007 באוגוסט 28 מחבר Share פורסם 2007 באוגוסט 28 אז מה בעצם לחפש?כלומר איך נקרא הנושא?איזו פקודה או ספריה ב C\C++\ DOTNET אחראית על יצירת ואחזור מידע ל XML?והאם אני צריך לדעת איך XML עובד בשביל זה? קישור לתוכן שתף באתרים אחרים More sharing options...
Pure-Gold פורסם 2007 באוגוסט 28 Share פורסם 2007 באוגוסט 28 אתה צריך להוסיף את System.Xml לפרוייקט שלך.אם לא עבדת מעולם עם XML ואתה לא יודע מה זה אתה יכל להכנס לפה כדי לקבל בסיס לנושא.לאחר מכן תתקדם לפרקים מעשיים ע"י חיפוש בגוגל בהתאם לשפה שאתה צריך לעבוד איתה.דוגמא מגוגל ל C#:http://www.csharphelp.com/archives/archive199.html קישור לתוכן שתף באתרים אחרים More sharing options...
HaEsrimVeArba פורסם 2007 באוגוסט 28 מחבר Share פורסם 2007 באוגוסט 28 כן, קלטתי. תודה רבה לך.... אם רק המזגן במחלקה היה עובד כראוי.. קישור לתוכן שתף באתרים אחרים More sharing options...
שניצל פורסם 2007 באוגוסט 28 Share פורסם 2007 באוגוסט 28 אם המידע שלך די פשוט (נניח אם זה סתם רשימה של מחרוזות או מספרים) אז לא כדאי XML, פשוט כי הטיפול בו מורכב מדי.XML ב-C# זה דווקא די פשוט, אבל ב-C++ זה זוועה (לא נראה לי שיש שם חבילה סטנדרטית ל-XML בכלל).XML מומלץ אם המידע שאתה רוצה להעביר הוא יחסית מורכב, או שאתה מתכנן להרחיב אותו בעתיד.השאלה היא איך נראית תכנית העיבוד שלך (זו שכתובה ב-C++).אם היא תכנית שכל פעם עולה, מבצעת את העיבוד, ואז נסגרת, אז הכי פשוט להעביר לה את המידע באמצעות קובץ (פשוט לדאוג שהתכנית תקבל כפרמטרים קובץ לקרוא ממנו וקובץ לכתוב אליו). התכנית שב-C# יכולה לקרוא לתכנית הזו באמצעות Process.Start.אם התכנית ב-C++ חייבת לרוץ כל הזמן (ובעצם מקבלת "ג'ובים" מהתכנית ב-C#) אז עדיף להשתמש ב-Socket-ים בשביל שהתכניות ידברו זו עם זו. תוכנית העיבוד בעצם תהיה שרת. זה קצת מסבך, כיוון שהטיפול ב-socketים ב-C הוא הרבה יותר מסובך מאשר ב-C#.במקרה ששתי התוכניות רצות על מחשבים שונים, הפתרון הראשון לא ממש יעבוד היטב, אלא אם אתה מתכנן להריץ את תכנית העיבוד דרך remote connection כלשהו. אם אתה לא יכול, אז אתה חייב להשתמש בפתרון השני. דרך לעקוף את זה (ולהימנע משימוש ב-socketים ב-C) היא באמצעות תוכנית נוספת ב-C#, שתשב על אותו המחשב כמו תכנית העיבוד ותוכל להעביר אליה קבצים, ומצד שני תדבר עם התכנית הראשונה באמצעות socketים. קישור לתוכן שתף באתרים אחרים More sharing options...
pig_750 פורסם 2007 באוגוסט 28 Share פורסם 2007 באוגוסט 28 זה נשמע לי כמו תוכנת client - server סטנדרטית... לדעתי הפתרון הכי טוב זה פשוט לפתוח stream socket (כלומר TCP ). אני לא יודע בדיוק מה וכמה אתה רוצה להעביר, אבל לדעתי אם אתה מחפש ביצועים מומלץ שתבנה מיני פרוטוקול שיעבוד מעל TCP כי XML זה פורמט יחסית שמן במיוחד כשאין הרבה מידע. קישור לתוכן שתף באתרים אחרים More sharing options...
HaEsrimVeArba פורסם 2007 באוגוסט 28 מחבר Share פורסם 2007 באוגוסט 28 העברת הנתונים תתבצע דרך פרוטוקול MIL-STD1553 אבל כרגע אני רוצה למטרות DEBUG להעביר מהתוכנה בC# רשומה אחת פשוטה בקצב של 60HZ. לכיוון אחד.ולהחזיר מהתכנה ב C++ ערך TRUE אם התוכנה מתבצעת בהצלחה.שני התוכנות פועלות תמיד. קישור לתוכן שתף באתרים אחרים More sharing options...
pig_750 פורסם 2007 באוגוסט 28 Share פורסם 2007 באוגוסט 28 העברת הנתונים תתבצע דרך פרוטוקול MIL-STD1553 אבל כרגע אני רוצה למטרות DEBUG להעביר מהתוכנה בC# רשומה אחת פשוטה בקצב של 60HZ. לכיוון אחד.ולהחזיר מהתכנה ב C++ ערך TRUE אם התוכנה מתבצעת בהצלחה.שני התוכנות פועלות תמיד.חשבתי שזאת רשת שמשתמשת ב TCP/IP... אין לי מושג מה זהMIL-STD1553 ואיך העסק הזה עובד. אבל אם זאת רק רשומה פשוטה (וקטנה) אחת כל פעם אני לא רואה ממש סיבה לפתוח steam . אם היית ברשת TCP/IP הייתי ממליץ לך להשתמש ב UDP .אחרי ה header לשים ID של 32 ביט שיזהה שזה מידע שבא מהתוכנה שלך. כמה ביטים שיסמנו את סוג הבקשה (במקרה שלך זה שאלה/תשובה ועוד כמה לעתיד). ואז כמה אפסים (אם תרצה בעתיד תוכל להשתמש בהם כ flages נוספים) ואז המחרוזת שלך.למטרת DEBUG כש 2 התוכנות רצות על אותה מכונה אתה יכול להשתמש ב named pipe, ב Linux זה מאוד פשוט. לגבי ווינדוס לא יודע, אבל אתה יכול גם להשתמש בסתם קובץ, למרות שזה מכוער. אתה גם יכול לבנות שרת UDP (מקומי) שזה מאוד פשוט... קישור לתוכן שתף באתרים אחרים More sharing options...
HaEsrimVeArba פורסם 2007 באוגוסט 28 מחבר Share פורסם 2007 באוגוסט 28 http://en.wikipedia.org/wiki/MIL-STD-1553אז אתה אומר ליצור קובץ ולקרוא ממנו את המידע? קישור לתוכן שתף באתרים אחרים More sharing options...
NJorl פורסם 2007 באוגוסט 28 Share פורסם 2007 באוגוסט 28 אתה בטח עובד על מבדקים קישור לתוכן שתף באתרים אחרים More sharing options...
pig_750 פורסם 2007 באוגוסט 28 Share פורסם 2007 באוגוסט 28 אז אתה אומר ליצור קובץ ולקרוא ממנו את המידע?כן, בערך. PIPE זה סוג של קובץ (לפחות במערכות NIX* לא יודע לגבי ווינדוס). הרעיון הוא שזה יעבוד כ FIFO (ראשון נכנס ראשון יוצא, כמו צינור...) ו 2 התוכנות יוכלו להשתמש בו. זה בדיוק מה ש named pipes עושים.אתה גם יכול להשתמש בקובץ רגיל אבל זה מכוער יותר ויוצר לך קצת יותר עבודה. עדיף כבר לבנות שרת UDP מקומי, זה ממש קל הנה לדוגמה שרת UDP פשוט עם winsock :http://www.codeproject.com/internet/udptime.aspאבל שוב לדעתי הכי פשוט ויעיל זה named pipe קישור לתוכן שתף באתרים אחרים More sharing options...
Zelig פורסם 2007 באוגוסט 29 Share פורסם 2007 באוגוסט 29 אתה לא רוצה XML על mil-std 1553.פורמט XML הוא פורמט עם תקורה מאוד גבוהה מבחינת נפח התעבורה וכן מבחינת זמן העיבוד. mil-std-1553 מאוד מוגבל מבחינת קצב התעבורה עליו וה-timeout-ים, ואל תשכח שמדובר ב-BUS שחולקים אותו מספר התקנים. אתה לא רוצה לסתום את כל המערכת.כמו כן מהיכרות עם mil-std-1553 ועם סוג המערכות שעובדות איתו אז זמן העיבוד והזכרון הדרושים ל-XML הוא פשוט לא סבירים למטרה זו.לבסוף, גם אם אתה בונה מערכת פרטית מבודדת משלך על הBUS הזה (לא סביר אלא אם זה איזה תרגיל), עדיף שתתרגל לעבוד עם מידע בינארי כמו שעובדים איתו בכל שאר המקומות.תגדיר מבנים בינאריים וסדר של בתים (בגדול 1553 הוא big endian). בקוד C++ זה לא קשה לקרוא אותם. בקוד C# אתה יכול להשתמש ב-binaryreader.בינתיים תשלח אותם מעל socket-ים. אח"כ תוכל לשלוח אותם מעל 1553. קישור לתוכן שתף באתרים אחרים More sharing options...
DOGMA פורסם 2007 באוגוסט 29 Share פורסם 2007 באוגוסט 29 pipes are your friend קישור לתוכן שתף באתרים אחרים More sharing options...
Recommended Posts
ארכיון
דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.