در زیر یک کد نمونه برای ارسال یک پیام دریافتی به یک شماره دیگر با استفاده از ماژول SIM800 در زبان برنامهنویسی Bascom آورده شده است. این کد فرض میکند که شما قبلاً پیام را دریافت کردهاید و حالا میخواهید آن را به شماره دیگری ارسال کنید.
```bascom
$regfile = "m8"
$crystal = 8000000
$baud = 9600
Dim message As String * 160 ' متغیر برای ذخیره پیام دریافتی
Dim phoneNumber As String * 15 ' شماره تلفن گیرنده
' شماره تلفن گیرنده را وارد کنید
phoneNumber = "+98912xxxxxxx" ' شماره گیرنده را به فرمت بینالمللی وارد کنید
' تابع برای ارسال پیام
Sub SendSMS(message As String)
Print "Sending SMS..."
Print "AT+CMGS="; phoneNumber
Waitms 100
Print message
Waitms 100
Print Chr(26) ' ارسال CTRL+Z برای پایان پیام
Waitms 1000
End Sub
' تابع برای دریافت پیام
Sub ReceiveSMS()
Print "Waiting for SMS..."
Print "AT+CMGF=1" ' تنظیم حالت متن
Waitms 100
Print "AT+CNMI=1,2,0,0,0" ' تنظیم دریافت پیام
Waitms 100
' خواندن پیام
Print "AT+CMGR=1" ' شماره پیام را وارد کنید
Waitms 1000
' فرض میکنیم که پیام دریافتی در متغیر message ذخیره شده است
' در اینجا باید کد برای خواندن پیام از ماژول اضافه شود
' به عنوان مثال، میتوانید از یک حلقه برای خواندن دادهها استفاده کنید
' برای مثال، فرض میکنیم پیام دریافتی "Hello, this is a test message!" است
message = "Hello, this is a test message!" ' این خط را با کد خواندن پیام جایگزین کنید
' ارسال پیام دریافتی به شماره دیگر
SendSMS(message)
End Sub
' برنامه اصلی
Do
ReceiveSMS()
Waitms 5000 ' انتظار برای دریافت پیام بعدی
Loop
```
### توضیحات:
1. **تنظیمات اولیه**: در ابتدا، پیکربندیهای لازم برای میکروکنترلر و ماژول SIM800 انجام میشود.
2. **تابع `SendSMS`**: این تابع برای ارسال پیام به شماره مشخص شده استفاده میشود.
3. **تابع `ReceiveSMS`**: این تابع برای دریافت پیام و سپس ارسال آن به شماره دیگر استفاده میشود. در اینجا فرض شده که پیام دریافتی در متغیر `message` ذخیره شده است.
4. **حلقه اصلی**: در این حلقه، تابع `ReceiveSMS` به طور مداوم فراخوانی میشود تا پیامهای جدید را دریافت کند.