Differences
This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
en:sw:01-mervis:receive-sms-hidden [2021/08/31 12:40] avsetula |
en:sw:01-mervis:receive-sms-hidden [2021/09/02 08:08] (current) avsetula |
||
---|---|---|---|
Line 1: | Line 1: | ||
- | ===== Příjem SMS ===== | + | ===== Receiving SMS ===== |
- | Funkční blok **receiveSMS** v základu **není určen pro** použití ve **FBD**, jelikož by se na zprávy dotazoval v každém cyklu programu. S patřičnou úpravou jej však ve FBD použít lze. | + | The **receiveSMS** function block in the base **is not intended for** use in **FBD**, as it would query messages in each program cycle. However, it can be used in FBD with appropriate modifications |
- | Tento funkční blok nemá žádné vstupní proměnné, ale obsahuje 5 výstupů: | + | This function block has no input variables, but contains 5 outputs: |
- | * **channel:** proměnná typu string, obsahuje označení alarmového kanálu na kterém byl SMS přijata (pro případ více modemů) | + | * **channel:** variable of type string, contains the designation of the alarm channel on which the SMS was received (in case of multiple modems) |
- | * **sender:** proměnná typu string, obsahuje telefonní číslo v mezinárodním formátu (tj. např. +420777666555) | + | * **sender:** variable of type string, contains telephone number in international format (e.g. +420777666555) |
- | * **message:** proměnná typu string, obsahuje text samotné SMS zprávy | + | * **message:** variable of type string, contains the text of the SMS message itself |
- | * **receivetime:** proměnná typu DT, obsahuje čas, kdy byla zpráva přijata | + | * **receivetime:** variable of type DT, contains the time when the message was received |
- | Posledním výstupem je výstup bez označení, který je typu integer a obsahuje číselný status s výsledkem operace. Více je popsno níže v textu (pro výstup result). | + | The last output is an unlabeled output, which is of type integer and contains a numeric status with the result of the operation. More is described below in the text (for the output result). |
---- | ---- | ||
<WRAP center round important 95%> | <WRAP center round important 95%> | ||
- | Jelikož je blok určen pouze pro použití v ST, je nutné pro jeho použití vytvořit vlastní funkční blok psaný v ST. To je možné pouze v **Plném módu** sestavy. Postup pro přepnutí do plného módu naleznete [[cs:sw:01-mervis:creating-new-project-hidden#prepnuti_do_plneho_modu|zde v úvodním článku]]. | + | Since the block is intended only for use in the ST, it is necessary to create your own function block written in the ST for its use. This is only possible in **Full Mode** solution. The procedure for switching to full mode can be found [[en:sw:01-mervis:creating-new-project-hidden#prepnuti_do_plneho_modu|here in the introductory article]]. |
</WRAP> | </WRAP> | ||
- | Pro příjem SMS vytvořte funkční blok kliknutím pravým tlačítkem myši na projekt (např. ve spustitelných projektech). | + | To receive an SMS, create a function block by right-clicking on the project (e.g. in executable projects). |
{{ :en:sw:01-mervis:sms_ide13.png?direct |}} | {{ :en:sw:01-mervis:sms_ide13.png?direct |}} | ||
Line 22: | Line 22: | ||
---- | ---- | ||
- | Zobrazí se dialogové okno, zde vyberte/vložte: | + | A dialog box will appear, select/paste here: |
- | * **Název:** ReceiveSMS_fbd | + | * **Name:** ReceiveSMS_fbd |
- | * **Typ:** FunctionBlock | + | * **Type:** FunctionBlock |
- | * **Jazyk:** st | + | * **Language:** st |
- | * **Jmenný prostor:** v0_0 | + | * **Namespace:** v0_0 |
- | a potvďte kliknutím na OK. | + | and confirm by clicking OK. |
{{ :en:sw:01-mervis:sms_ide14.png?nolink |}} | {{ :en:sw:01-mervis:sms_ide14.png?nolink |}} | ||
Line 34: | Line 34: | ||
---- | ---- | ||
- | Otevře se Vám okno se základní kostrou funkčního bloku. Veškerý obsah bloku smažte a nahraďtě následujícím kódem: | + | A window with the code structure example of the function block will open. Delete all the contents of the block and replace them with the following code: |
<code | ReceiveSMS_fbd.st> | <code | ReceiveSMS_fbd.st> | ||
Line 71: | Line 71: | ||
</code> | </code> | ||
- | Výsledek by měl vypadat následovně: | + | The result should look like this: |
{{ :en:sw:01-mervis:sms_ide15.png?direct |}} | {{ :en:sw:01-mervis:sms_ide15.png?direct |}} | ||
Line 77: | Line 77: | ||
---- | ---- | ||
- | Okno funkčního bloku nyní můžete zavřít, následně sestavu uložte a kompilujte. | + | You can now close the function block window, then save and compile the solution. |
- | Poté otevřete **main.program.fbd** a klikněte pravým talčítkém myši do prázdného prostoru a z kontextové nabídky zvolte: **Přidat blok knihovny -> Přidat blok knihovny**. | + | Then open **main.program.fbd** and right-click on an empty space and select from the context menu: **Add library box -> Add library box**. |
{{ :en:sw:01-mervis:sms_ide16.png?direct |}} | {{ :en:sw:01-mervis:sms_ide16.png?direct |}} | ||
Line 85: | Line 85: | ||
---- | ---- | ||
- | Otevře se dialogové okno pro vyhledávání funkcí a funkčních bloků. Do pole **Název** zadejte název bloku: //ReceiveSMS_fbd//, označte jej a klikněte na OK. | + | A dialog window for searching for functions and function blocks opens. In the **Name** field, enter a name of the block: //ReceiveSMS_fbd//, highlight it and click OK. |
{{ :en:sw:01-mervis:sms_ide17.png?direct |}} | {{ :en:sw:01-mervis:sms_ide17.png?direct |}} | ||
Line 91: | Line 91: | ||
---- | ---- | ||
- | Tím se blok vloží do prostoru programu: | + | This inserts the block into the program space: |
{{ :en:sw:01-mervis:sms_ide18.png?direct |}} | {{ :en:sw:01-mervis:sms_ide18.png?direct |}} | ||
Line 97: | Line 97: | ||
---- | ---- | ||
- | Nyní je třeba vytvořit několik testovacích proměnných. Nejprve vytvořte vstupní proměnnou **trigger** typu bool a jako její počáteční hodnotu zadejte **False**. Proměnnou propojte se vstupem **readSMS** bloku: | + | Now you need to create several test variables. First, create an input variable **trigger** of type bool and enter **False** as its initial value. Connect the variable to the **readSMS** input of the block: |
{{ :en:sw:01-mervis:sms_ide19.png?direct |}} | {{ :en:sw:01-mervis:sms_ide19.png?direct |}} | ||
Line 103: | Line 103: | ||
---- | ---- | ||
- | Dále vytvořte výstupní proměnné **channel**, **sender** a **message**, všechny jsou typu string. Jako poslední vytvořte proměnnou **receivetime** typu DT. Jelikož jsou všechny proměnné výstupní, není nutné nastavovat jejich počáteční hodnoty. Na závěr je propojte s blokem. | + | Next, create the output variables **channel**, **sender**, and **message**, all of the type string. Lastly, create a variable **receivetime** of type DT. Since all variables are output, it is not necessary to set their initial values. Finally, connect them to the block. |
- | Výsledek by měl vypadat přibližně takto: | + | The result should look something like this: |
{{ :en:sw:01-mervis:sms_ide20.png?direct |}} | {{ :en:sw:01-mervis:sms_ide20.png?direct |}} | ||
Line 111: | Line 111: | ||
---- | ---- | ||
- | Nahrajte sestavu a spusťte ladění. Při každé změně hodnoty proměnné **trigger** z **False** na **True** se přečte jedna zpráva z paměti SIM karty. | + | Upload the solution and start debugging. Each time the value of the variable **trigger** is changed from **False** to **True**, one message is read from the SIM card memory. |
{{ :en:sw:01-mervis:sms_ide21.png?direct |}} | {{ :en:sw:01-mervis:sms_ide21.png?direct |}} | ||
- | Výstup **result** bude mít hodnotu **0**, pokud přečtění zprávy proběhlo v pořádku a hodnotu **31**, pokud není k dispozici žádná zpráva. Ostatní hodnoty indikují chybu, více se dozvíte v nápovědě (klávesa F1) k funkčnímu bloku **receivesms**. | + | The **result** output will be **0** if the message was read correctly and **31** if no message is available. Other values indicate an error, see the help (F1 key) for the **receivesms** function block. |