PDA

View Full Version : سوال: تو رو بخدا يکي کمک کنه با مثال که چه جور وصلش کنم ، خواهش مي کنم کمک فوري است.



acc2008
جمعه 27 مرداد 1391, 15:53 عصر
سلام عزيزان خواهش مي کنم ، تو رو بخدا يک مثال بزاريد که چه جوري مي شه کاري کرد که برنامه به ترازو هاي فروشگاهي(مثل ترازوهاي موجود در فروشگاه هاي مرغ فروشي) متصل کرد و از آن ها بهره برد، به صورتي که اطلاعاتي که از پورت مياد به صورت توماتيک بروز ثبت شود ، يعني همش نخواهيم که کليدي را بزنيم تا اطلاعات جديد خوانده شود.
خواهش مي کنم از دوستان ، منم موندم تو اين قضيه و خيلي نياز دارم به حل شدن اين مشکل ، خواهش مي کنم يکي از اساتيد به داد من برسد. با تشکر : آجيلي:گریه:

Abbas Amiri
جمعه 27 مرداد 1391, 16:11 عصر
سلام حداقل روش دستی خودتان را ارائه دهید تا براساس آن درصورت امکان راهنمایی شوید . کاربران این تالار ازکجابدانند پروتکل ارتباط بین تراز و سیستم چگونه است (چه کاراکترهایی برای درخواست ویا گرفتن اطلاعات بایستی به پورت فرستاد)

amir179
شنبه 28 مرداد 1391, 10:26 صبح
شما لطف کن فایلتو بزار تا بررسی بشه ببینیم میشه کاریش کرد یا نه

acc2008
شنبه 28 مرداد 1391, 16:05 عصر
سلام به همه ي عزيزان ؛ من مي خوام با پورت RS232 يک ترازو رو وصل کنم به پورت Com يک PC ، حالا شما ببينيد که چه جور مي شه اين کار رو کرد،من فايل نمي زارم ؛شما فکر کنيد که يک فايل اکسس هست ؛ يک فرم توش داره با يک تکست باکس ، حالا مي خواهم اين تکست باکس اطلاعات وزن رو از ترازو بگيره و نمايش بده، چه طوري مي شه ؟؟؟؟ خواهش مي کنم من دست به دامن تمامي شما عزيزان هستم ؛ بزاريد با کمک و همياري بالاخره اين مشکل در اکسس رفع شود ؛ که ديگر نخواهيم هي پيچيدگي بوجود بياد در فروم؛ خيلي ممنونم از همگي شما

Abbas Amiri
شنبه 28 مرداد 1391, 19:19 عصر
سلام ،
حداقل راهنمای ترازو درمورد ارتباط با پورت سریال را بذارید؟

acc2008
شنبه 28 مرداد 1391, 19:39 عصر
سلام عزيزان ، اين ترازويي که ميزارم اگر بتونيد اين برنامه رو براش بنويسيد ، تمامي استاندارهاي اتصالش با ساير ترازو ها يکي هست.اين ترازو يکي از نسخه هاي پر فروش ترازو پند مي باشد.

http://www.pandco.com/files/documents/Gauid%20Booklet%20Px3000PUT.pdf

Abbas Amiri
شنبه 28 مرداد 1391, 22:05 عصر
تا الان با پورت Com کار نکرده بودم یعنی لازم نشده بود ولی انشاله جواب میدهد . با باز کردن فرم 1 به Com1 متصل شده واطلاعات را میخواند ودر تکست باکس قرار میدهد. اگر اشکالی بود بصورت شفاف گزارش دهید تابررسی شود.

Abbas Amiri
یک شنبه 29 مرداد 1391, 00:08 صبح
احتمالا باید درفرم یک کدزیر جایگزین شود


Private Sub ComPort_OnComm()
Dim ComData
If ComPort.CommEvent = comEvReceive Then
ComData = ComPort.Input
If UBound(ComData) > 0 And UBound(ComData) < 7 Then
UpdateText DecodeData(ComData)
End If
End If
End Sub

acc2008
یک شنبه 29 مرداد 1391, 17:46 عصر
با سلام خدمت جناب استاد Abbas Amiri
استاد گرامي خيلي ممنونم از فايل نمونه اي که گذاشتيد.
عزيز من اين هفته به اميد خدا کنکور مي دهم و خبرشو شنبه هفته جديد به شما ميدهم
باز هم از کمکتون متشکرم.

soroush_k12
یک شنبه 29 مرداد 1391, 21:43 عصر
تا الان با پورت Com کار نکرده بودم یعنی لازم نشده بود ولی انشاله جواب میدهد . با باز کردن فرم 1 به Com1 متصل شده واطلاعات را میخواند ودر تکست باکس قرار میدهد. اگر اشکالی بود بصورت شفاف گزارش دهید تابررسی شود.
سلام بر استاد امیری
ممکنه نمونه رو با 2003 هم آپ کنید.بسیار ممنونم

Abbas Amiri
یک شنبه 29 مرداد 1391, 21:51 عصر
سلام ، احتمال اینکه فایل زیر مشکل داشته باشد زیاد است وامتحان نشده است ولی میتواند ایده براس شروع کارباشد.

RESMAILY
دوشنبه 30 مرداد 1391, 08:09 صبح
به نام خدا
با سلام. من سايت مزبوررا ديدم. متاسفانه راهنمايي درستي درباره محصول خودش نكرده و امكان ارتباطي ان هم بسيار ضعيف است. ولي كلا در چيپ ست اين ابزارها محلي براي ذخيره اطلاعات وجود دارد كه يكي از امكانات آن ارسال به فايل هاي آكسس مي باشد. يعني ترازو مقدار معيني از اطلاعات را همواره در خود ذخيره دارد و به محض اتصال با برنامه آن را خودش انتقال مي دهد. اين امكان روي سانترال تلفن هاف روي كارت خوان حضور و غياب و جزآن وجود دارد و احتمال زياد در اين ترازو هم وجود دارد. بهتر است كه شما با نماينده يا خود شركت در اين زمينه تماسي بگيريد. البته اگر طبق روال اغلب اينها نخواهند موضوع را انحصاري كنند و آدم را به فلان اشناي برنامه نويس حواله ندهند و كلي پول...

Abbas Amiri
دوشنبه 20 شهریور 1391, 19:32 عصر
عزيز من اين هفته به اميد خدا کنکور مي دهم و خبرشو شنبه هفته جديد به شما ميدهم
با سلام ، پس خبری ندادید . حداقل بگید درست شد یانه ؟

acc2008
دوشنبه 11 دی 1391, 22:52 عصر
با سلام مجدد-من متاسفانه با اون فايل نتونستم به ترازو وصل بشوم.ديگر هم دنبالشو نگرفتم.اون طرف متاسفانه از من نا اميد شد.نرم افزارم هم نصفه کاره موند و الان هم که سرگرم امتحان هاي پاياني ترم 1 هستم.اما واقعا دوست دارم که اين کار اتفاق بيافتد.من يک نمونه کد C++ دارم که 100 درصد کار ميکنه و به ترازو و هم تمامي باسکول ها وصل ميشود ممنونم اگر بتوانيد اين کد را تبديل کرده و تمامي فروم اکسس رو بترکونيد.

/*
+-------------------------------------------------------------+
| EXAMPLE |
+-------------------------------------------------------------+
| Example for decoding the Towzin Electric Outdoor protocol. |
| |
| Last change: 1378/10/27 |
| Copyright: Towzin Electric Co. |
| 9th Flr. Kaveh Bldg. |
| Ferdowsi Sqr. |
| Tehran - Iran |
| |
| Programmer: Makan Moosavipour |
+-------------------------------------------------------------+
*/

/*
+-------------------------------------------------------------+
| CTozinDlg:: O n C o m m |
+-------------------------------------------------------------+
| Called when an event on occures on serial port. |
| Read data packets from serial port and retrive weight, |
| decimal points and status of motion and zero lamp from it. |
| |
| Member variables used: |
| m_comport: Activex object encapsulating Serial port |
| (MSCommunicationControl6.0 OCX) |
| m_zero_lamp: Static BITMAP control for zero lamp. |
| |
| Methods used: |
| ShowWeight(float): Displays the weight on screen. |
+-------------------------------------------------------------+
*/
void CTozinDlg::OnComm()
{
static BYTE data[4]; // Data bytes of a packet
static int i = 0; // Index of next byte in the packet
static bool bRdFlag = false; // Flag for begining of a packet
static short deci; // Decimal points
static int k_deci; // Coefficient to make decimal points

BYTE b; // Current byte read from serial port
COleVariant var; // Ole variant to be converted to bytes

// If Read threshold has passed (enough bytes are read)...
if (m_comport.GetCommEvent() == RD_THREASHOLD)
// White there are bytes in buffer
while (m_comport.GetInBufferCount() > 0)
{
// Get data from input buffer
var = m_comport.GetInput();
var.ChangeType(VT_BSTR); // Change data type to STR
b = (BYTE) *(var.bstrVal); // Convert to BYTE

// Process the byte read from serial port
if (b & 0x80)
{ // Is this beggining of a new packet?
bRdFlag = true;
i = 0; // Start from first data byte of packet

// Set the status of motion lamp
bool motion = b & 0x10;
SetMotion(motion);

// Set the status of zero lamp
bool zero = b & 0x08
m_zero_lamp.ShowWindow(zero ? SW_SHOW : SW_HIDE);

// Set the decimal point variables
deci = b & 0x07; // Number of decimal points
k_deci = pow(10, deci);

} else if (bRdFlag)
{ // Do we have an uncompleted packet?
data[i] = b; // Buffer data
if (++i >= 4)
{ // If all data bytes in packet are read
//Calculate data from bytes
long d = ((long) (0x07 & data[0])) << 21;
d += ((long) (0x7F & data[1])) << 14;
d += ((long) (0x7F & data[2])) << 7;
d += (long) (0x7F & data[3]);
if (data[0] & 0x08) d = -d;

//Show data in box
ShowWeight(d / k_deci);

// Current packet is finished
bRdFlag = false;
}
}
}
}

Abbas Amiri
سه شنبه 12 دی 1391, 00:22 صبح
سلام
در قسمت دیکد کردن اطلاعات هیچ مشکلی نیست ودرست عمل میکند و فقط در رویداد پورت سریال تنها تفاوت با کد فوق خط 4 کدهای زیر است .
کدهای زیر را جایگزین کنید



Private Sub ComPort_OnComm()
Dim ComData
If ComPort.CommEvent = comEvReceive Then
Do While ComPort.InBufferCount > 0: Loop
ComData = ComPort.Input
If UBound(ComData) > 0 And UBound(ComData) < 7 Then
UpdateText DecodeData(ComData)
End If
End If
End Sub