Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: hbjorgo/ATLib
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: 7.0.0
Choose a base ref
...
head repository: hbjorgo/ATLib
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: main
Choose a head ref

Commits on Jan 30, 2024

  1. Feature/telit me910c1 (#37)

    * Add support for Telit ME910C1
    
    * Bump version
    hbjorgo authored Jan 30, 2024
    Copy the full SHA
    759d063 View commit details
  2. Make class public. Add keywords (#39)

    * Make class public. Add keywords
    
    * Bump version
    hbjorgo authored Jan 30, 2024
    Copy the full SHA
    5c22e33 View commit details

Commits on Dec 9, 2024

  1. Bump actions version

    hbjorgo committed Dec 9, 2024
    Copy the full SHA
    c7192e4 View commit details
  2. Bump actions version

    hbjorgo committed Dec 9, 2024
    Copy the full SHA
    c57af5e View commit details

Commits on Dec 10, 2024

  1. Copy the full SHA
    f545198 View commit details
  2. Copy the full SHA
    48abb94 View commit details
  3. Bump version

    hbjorgo committed Dec 10, 2024
    Copy the full SHA
    ba81c04 View commit details

Commits on Dec 11, 2024

  1. Fix bugs. Unit tests.

    hbjorgo committed Dec 11, 2024
    Copy the full SHA
    a480546 View commit details
  2. Add tests

    hbjorgo committed Dec 11, 2024
    Copy the full SHA
    296d57a View commit details
  3. Copy the full SHA
    83a3c98 View commit details
  4. Use compiled regex.

    hbjorgo committed Dec 11, 2024
    Copy the full SHA
    4edf0be View commit details
  5. Bump NuGet packages

    hbjorgo committed Dec 11, 2024
    Copy the full SHA
    78c74d6 View commit details
  6. Merge pull request #52 from hbjorgo/feature/regex_compiled

    Use compiled regex.
    hbjorgo authored Dec 11, 2024
    Copy the full SHA
    b7a8433 View commit details
  7. Use .net 9 for some projects

    hbjorgo committed Dec 11, 2024
    Copy the full SHA
    e962eff View commit details
  8. Copy the full SHA
    c58234e View commit details
  9. Copy the full SHA
    4830077 View commit details
  10. Copy the full SHA
    f7263bf View commit details
  11. Copy the full SHA
    a7f508a View commit details

Commits on Dec 12, 2024

  1. Reorganize namespaces (#54)

    hbjorgo authored Dec 12, 2024
    Copy the full SHA
    f77b689 View commit details
  2. Add project reference

    hbjorgo committed Dec 12, 2024
    Copy the full SHA
    4b4fbb2 View commit details
  3. Remove comment

    hbjorgo committed Dec 12, 2024
    Copy the full SHA
    832c66a View commit details
  4. Increase timeout when dialing

    hbjorgo committed Dec 12, 2024
    Copy the full SHA
    1f048f3 View commit details

Commits on Dec 13, 2024

  1. Improve network connection

    hbjorgo committed Dec 13, 2024
    Copy the full SHA
    89ae4c1 View commit details

Commits on Dec 14, 2024

  1. Phone numbers (#55)

    Rewrite and tidy up PhoneNumber concept.
    hbjorgo authored Dec 14, 2024
    Copy the full SHA
    4ec87fa View commit details
  2. Copy the full SHA
    c798e6f View commit details
  3. Make baudrate configurable

    hbjorgo committed Dec 14, 2024
    Copy the full SHA
    b9c1a4b View commit details
  4. Upgrade NuGet packages

    hbjorgo committed Dec 14, 2024
    Copy the full SHA
    770bc58 View commit details
  5. Update package tags

    hbjorgo committed Dec 14, 2024
    Copy the full SHA
    cb2382d View commit details
  6. Bump version to 8.0.0-beta2

    hbjorgo committed Dec 14, 2024
    Copy the full SHA
    104a7d2 View commit details

Commits on Dec 15, 2024

  1. ConfigureAwait (#57)

    hbjorgo authored Dec 15, 2024
    Copy the full SHA
    663b11b View commit details

Commits on Dec 16, 2024

  1. Remove unused code

    hbjorgo committed Dec 16, 2024
    Copy the full SHA
    43e500a View commit details
  2. Copy the full SHA
    a866c85 View commit details
  3. Copy the full SHA
    482bfe3 View commit details
  4. Bump version to 8.0.0-rc1

    hbjorgo committed Dec 16, 2024
    Copy the full SHA
    3a83ac0 View commit details

Commits on Dec 19, 2024

  1. Copy the full SHA
    d2297c5 View commit details
  2. Bump version to 8.0.0

    hbjorgo committed Dec 19, 2024
    Copy the full SHA
    01ed017 View commit details
  3. Use version 8.0.0-rc2

    hbjorgo committed Dec 19, 2024
    Copy the full SHA
    5954bb1 View commit details
  4. Copy the full SHA
    9cad9c5 View commit details
  5. Remove .net9 target

    hbjorgo committed Dec 19, 2024
    Copy the full SHA
    269cfc5 View commit details
  6. Update Readmes

    hbjorgo committed Dec 19, 2024
    Copy the full SHA
    9d106ca View commit details
  7. Install .net 9 in pipeline

    hbjorgo committed Dec 19, 2024
    Copy the full SHA
    060a19e View commit details
  8. Cleanup project files

    hbjorgo committed Dec 19, 2024
    Copy the full SHA
    0e31cb3 View commit details
  9. Bump NuGet packages

    hbjorgo committed Dec 19, 2024
    Copy the full SHA
    063469a View commit details
  10. Target .net 8

    hbjorgo committed Dec 19, 2024
    Copy the full SHA
    882669c View commit details
  11. Don't use .net 9 in pipeline

    hbjorgo committed Dec 19, 2024
    Copy the full SHA
    e29f516 View commit details
  12. Version 8.0.0

    hbjorgo committed Dec 19, 2024
    Copy the full SHA
    4c40e4f View commit details

Commits on Dec 20, 2024

  1. Copy the full SHA
    44669e0 View commit details
  2. Update GetStartedExample

    hbjorgo committed Dec 20, 2024
    Copy the full SHA
    08ab763 View commit details

Commits on Dec 21, 2024

  1. Update README.md

    hbjorgo authored Dec 21, 2024
    Copy the full SHA
    a2dcaab View commit details
Showing with 3,304 additions and 1,326 deletions.
  1. +2 −2 .github/workflows/ci.yml
  2. +2 −2 .github/workflows/release.yml
  3. +2 −0 .gitignore
  4. +75 −35 README.md
  5. +109 −38 src/HeboTech.ATLib.TestConsole/FunctionalityTest.cs
  6. +75 −0 src/HeboTech.ATLib.TestConsole/GetStartedExample.cs
  7. +1 −5 src/HeboTech.ATLib.TestConsole/HeboTech.ATLib.TestConsole.csproj
  8. +26 −18 src/HeboTech.ATLib.TestConsole/Program.cs
  9. +6 −5 src/HeboTech.ATLib.TestConsole/StressTest.cs
  10. +17 −0 src/HeboTech.ATLib.Tests/Calls/CallDetailsTests.cs
  11. +0 −59 src/HeboTech.ATLib.Tests/DTOs/PhoneNumberTests.cs
  12. +26 −0 src/HeboTech.ATLib.Tests/Extensions/EnumExtensionsTests.cs
  13. +11 −1 src/HeboTech.ATLib.Tests/Extensions/StringExtensionsTests.cs
  14. +4 −8 src/HeboTech.ATLib.Tests/HeboTech.ATLib.Tests.csproj
  15. +39 −0 src/HeboTech.ATLib.Tests/Messaging/CharacterSetHelpersTests.cs
  16. +16 −0 src/HeboTech.ATLib.Tests/Messaging/CharacterSetTests.cs
  17. +20 −0 src/HeboTech.ATLib.Tests/Messaging/CodingGroupTests.cs
  18. +30 −0 src/HeboTech.ATLib.Tests/Messaging/DataCodingSchemeTests.cs
  19. +28 −0 src/HeboTech.ATLib.Tests/Messaging/Gsm7ExtensionTests.cs
  20. +69 −85 src/HeboTech.ATLib.Tests/{CodingSchemes → Messaging}/Gsm7Tests.cs
  21. +19 −0 src/HeboTech.ATLib.Tests/Messaging/MessageClassTests.cs
  22. +28 −0 src/HeboTech.ATLib.Tests/Messaging/MessageTypeIndicatorTests.cs
  23. +33 −0 src/HeboTech.ATLib.Tests/Messaging/PhoneNumberDecoderTests.cs
  24. +49 −0 src/HeboTech.ATLib.Tests/Messaging/SmsDecoderTests.cs
  25. +35 −0 src/HeboTech.ATLib.Tests/Messaging/SmsDeliverDecoderTests.cs
  26. +28 −0 src/HeboTech.ATLib.Tests/Messaging/SmsStatusReportDecoderTests.cs
  27. +85 −0 src/HeboTech.ATLib.Tests/Messaging/SmsSubmitEncoderTests.cs
  28. +3 −3 src/HeboTech.ATLib.Tests/{PDU → Messaging}/TpduTimeTests.cs
  29. +2 −2 src/HeboTech.ATLib.Tests/{CodingSchemes → Messaging}/UCS2Tests.cs
  30. +3 −3 src/HeboTech.ATLib.Tests/{PDU → Messaging}/UdhTests.cs
  31. +5 −5 src/HeboTech.ATLib.Tests/{DTOs → Messaging}/ValidityPeriodTests.cs
  32. +29 −0 src/HeboTech.ATLib.Tests/Misc/BatteryChargeStatusTests.cs
  33. +29 −0 src/HeboTech.ATLib.Tests/Misc/BatteryStatusTests.cs
  34. +16 −0 src/HeboTech.ATLib.Tests/Misc/ImsiTests.cs
  35. +30 −0 src/HeboTech.ATLib.Tests/Misc/PersonalIdentificationNumberTests.cs
  36. +35 −0 src/HeboTech.ATLib.Tests/Numbering/AbbreviatedPhoneNumberTests.cs
  37. +31 −0 src/HeboTech.ATLib.Tests/Numbering/AlphaNumericPhoneNumberTests.cs
  38. +37 −0 src/HeboTech.ATLib.Tests/Numbering/InternationalPhoneNumberTests.cs
  39. +36 −0 src/HeboTech.ATLib.Tests/Numbering/NationalPhoneNumberTests.cs
  40. +36 −0 src/HeboTech.ATLib.Tests/Numbering/NetworkSpecificPhoneNumberTests.cs
  41. +24 −0 src/HeboTech.ATLib.Tests/Numbering/NumberingPlanIdentificationTests.cs
  42. +66 −0 src/HeboTech.ATLib.Tests/Numbering/PhoneNumberFactoryTests.cs
  43. +36 −0 src/HeboTech.ATLib.Tests/Numbering/SubscriberPhoneNumberTests.cs
  44. +22 −0 src/HeboTech.ATLib.Tests/Numbering/TypeOfNumberTests.cs
  45. +36 −0 src/HeboTech.ATLib.Tests/Numbering/UnknownPhoneNumberTests.cs
  46. +0 −25 src/HeboTech.ATLib.Tests/PDU/SmsDeliverDecoderTests.cs
  47. +0 −66 src/HeboTech.ATLib.Tests/PDU/SmsSubmitEncoderTests.cs
  48. +2 −2 src/HeboTech.ATLib.Tests/{Parsers → Parsing}/AtChannelTests.cs
  49. +2 −2 src/HeboTech.ATLib.Tests/{Parsers → Parsing}/AtErrorParsersTests.cs
  50. +2 −2 src/HeboTech.ATLib.Tests/{Parsers → Parsing}/AtReaderTests.cs
  51. +2 −2 src/HeboTech.ATLib.Tests/{Parsers → Parsing}/AtWriterTests.cs
  52. +2 −2 src/HeboTech.ATLib.Tests/{Parsers → Parsing}/DummyAtReader.cs
  53. +34 −0 src/HeboTech.ATLib.Tests/Storage/MessageStorageTests.cs
  54. +24 −0 src/HeboTech.ATLib.Tests/Storage/PreferredMessageStorageTests.cs
  55. +1 −1 src/HeboTech.ATLib/{DTOs → Calls}/CallDetails.cs
  56. +0 −32 src/HeboTech.ATLib/CodingSchemes/DataCodingScheme.cs
  57. +0 −80 src/HeboTech.ATLib/DTOs/PhoneNumber.cs
  58. +0 −23 src/HeboTech.ATLib/DTOs/PhoneNumberDTO.cs
  59. +0 −36 src/HeboTech.ATLib/DTOs/Sms.cs
  60. +0 −37 src/HeboTech.ATLib/DTOs/SmsDeliver.cs
  61. +0 −26 src/HeboTech.ATLib/DTOs/SmsWithIndex.cs
  62. +0 −54 src/HeboTech.ATLib/DTOs/ValidityPeriod.cs
  63. +27 −0 src/HeboTech.ATLib/Events/BroadcastMessageReceivedEventArgs.cs
  64. +28 −0 src/HeboTech.ATLib/Events/BroadcastMessageStorageReferenceReceivedEventArgs.cs
  65. +1 −1 src/HeboTech.ATLib/Events/CallEndedEventArgs.cs
  66. +13 −12 src/HeboTech.ATLib/Events/SmsReceivedEventArgs.cs
  67. +29 −0 src/HeboTech.ATLib/Events/SmsStatusReportEventArgs.cs
  68. +30 −0 src/HeboTech.ATLib/Events/SmsStatusReportStorageReferenceEventArgs.cs
  69. +28 −0 src/HeboTech.ATLib/Events/SmsStorageReferenceReceivedEventArgs.cs
  70. +1 −1 src/HeboTech.ATLib/Events/UssdResponseEventArgs.cs
  71. +0 −17 src/HeboTech.ATLib/Extensions/SmsDeliverExtensions.cs
  72. +3 −1 src/HeboTech.ATLib/Extensions/StringExtensions.cs
  73. +17 −9 src/HeboTech.ATLib/HeboTech.ATLib.csproj
  74. +9 −0 src/HeboTech.ATLib/Messaging/BroadcastMessage.cs
  75. +1 −1 src/HeboTech.ATLib/{CodingSchemes → Messaging}/CharacterSet.cs
  76. +3 −3 src/HeboTech.ATLib/{CodingSchemes → Messaging}/CharacterSetHelpers.cs
  77. +1 −1 src/HeboTech.ATLib/{CodingSchemes → Messaging}/CodingGroup.cs
  78. +33 −0 src/HeboTech.ATLib/Messaging/DataCodingScheme.cs
  79. +30 −17 src/HeboTech.ATLib/{CodingSchemes → Messaging}/Gsm7.cs
  80. +2 −2 src/HeboTech.ATLib/{CodingSchemes → Messaging}/Gsm7Extension.cs
  81. +1 −1 src/HeboTech.ATLib/{CodingSchemes → Messaging}/MessageClass.cs
  82. +38 −0 src/HeboTech.ATLib/Messaging/MessageTypeIndicator.cs
  83. +59 −0 src/HeboTech.ATLib/Messaging/PhoneNumberDecoder.cs
  84. +24 −0 src/HeboTech.ATLib/Messaging/Sms.cs
  85. +36 −0 src/HeboTech.ATLib/Messaging/SmsDecoder.cs
  86. +47 −0 src/HeboTech.ATLib/Messaging/SmsDeliver.cs
  87. +17 −59 src/HeboTech.ATLib/{PDU → Messaging}/SmsDeliverDecoder.cs
  88. +55 −0 src/HeboTech.ATLib/Messaging/SmsDeliveryStatus.cs
  89. +1 −1 src/HeboTech.ATLib/{DTOs → Messaging}/SmsReference.cs
  90. +1 −1 src/HeboTech.ATLib/{DTOs → Messaging}/SmsStatus.cs
  91. +29 −0 src/HeboTech.ATLib/Messaging/SmsStatusReport.cs
  92. +82 −0 src/HeboTech.ATLib/Messaging/SmsStatusReportDecoder.cs
  93. +40 −39 src/HeboTech.ATLib/{PDU → Messaging}/SmsSubmitEncoder.cs
  94. +3 −24 src/HeboTech.ATLib/{DTOs → Messaging}/SmsSubmitRequest.cs
  95. +1 −1 src/HeboTech.ATLib/{DTOs → Messaging}/SmsTextFormat.cs
  96. +14 −0 src/HeboTech.ATLib/Messaging/SmsWithIndex.cs
  97. +2 −2 src/HeboTech.ATLib/{PDU → Messaging}/TpduTime.cs
  98. +1 −1 src/HeboTech.ATLib/{CodingSchemes → Messaging}/UCS2.cs
  99. +1 −1 src/HeboTech.ATLib/{PDU/UDH.cs → Messaging/Udh.cs}
  100. +315 −0 src/HeboTech.ATLib/Messaging/ValidityPeriod.cs
  101. +1 −1 src/HeboTech.ATLib/{DTOs → Misc}/BatteryChargeStatus.cs
  102. +1 −1 src/HeboTech.ATLib/{DTOs → Misc}/BatteryStatus.cs
  103. +1 −1 src/HeboTech.ATLib/{DTOs → Misc}/Imsi.cs
  104. +2 −2 src/HeboTech.ATLib/{DTOs → Misc}/PersonalIdentificationNumber.cs
  105. +1 −1 src/HeboTech.ATLib/{DTOs → Misc}/ProductIdentificationInformation.cs
  106. +1 −1 src/HeboTech.ATLib/{DTOs → Misc}/RemainingPinPukAttempts.cs
  107. +1 −1 src/HeboTech.ATLib/{DTOs → Misc}/SignalStrength.cs
  108. +1 −1 src/HeboTech.ATLib/{DTOs → Misc}/SimStatus.cs
  109. +7 −164 src/HeboTech.ATLib/Modems/Adafruit/Fona3G.cs
  110. +1 −1 src/HeboTech.ATLib/Modems/Cinterion/IMC55i.cs
  111. +34 −51 src/HeboTech.ATLib/Modems/Cinterion/MC55i.cs
  112. +1 −1 src/HeboTech.ATLib/Modems/D_LINK/DWM222.cs
  113. +112 −92 src/HeboTech.ATLib/Modems/Generic/ModemBase.cs
  114. +26 −18 src/HeboTech.ATLib/Modems/IModem.cs
  115. +5 −11 src/HeboTech.ATLib/Modems/Qualcomm/MDM9225.cs
  116. +2 −2 src/HeboTech.ATLib/Modems/SIMCOM/ISIM5320.cs
  117. +13 −19 src/HeboTech.ATLib/Modems/SIMCOM/SIM5320.cs
  118. +5 −11 src/HeboTech.ATLib/Modems/TP-LINK/MA260.cs
  119. +6 −0 src/HeboTech.ATLib/Modems/Telit/IME910C1.cs
  120. +38 −0 src/HeboTech.ATLib/Modems/Telit/ME910C1.cs
  121. +19 −0 src/HeboTech.ATLib/Numbering/AbbreviatedPhoneNumber.cs
  122. +17 −0 src/HeboTech.ATLib/Numbering/AlphaNumericPhoneNumber.cs
  123. +235 −0 src/HeboTech.ATLib/Numbering/CountryCodes.cs
  124. +51 −0 src/HeboTech.ATLib/Numbering/InternationalPhoneNumber.cs
  125. +28 −0 src/HeboTech.ATLib/Numbering/NationalPhoneNumber.cs
  126. +19 −0 src/HeboTech.ATLib/Numbering/NetworkSpecificPhoneNumber.cs
  127. +2 −2 src/HeboTech.ATLib/{DTOs/NumberPlanIdentification.cs → Numbering/NumberingPlanIdentification.cs}
  128. +52 −0 src/HeboTech.ATLib/Numbering/PhoneNumber.cs
  129. +60 −0 src/HeboTech.ATLib/Numbering/PhoneNumberFactory.cs
  130. +19 −0 src/HeboTech.ATLib/Numbering/SubscriberPhoneNumber.cs
  131. +1 −1 src/HeboTech.ATLib/{DTOs → Numbering}/TypeOfNumber.cs
  132. +19 −0 src/HeboTech.ATLib/Numbering/UnknownPhoneNumber.cs
  133. +0 −13 src/HeboTech.ATLib/PDU/MessageTypeIndicator.cs
  134. +13 −11 src/HeboTech.ATLib/{Parsers → Parsing}/AtChannel.cs
  135. +1 −1 src/HeboTech.ATLib/{Parsers → Parsing}/AtCommand.cs
  136. +1 −1 src/HeboTech.ATLib/{Parsers → Parsing}/AtCommandType.cs
  137. +1 −1 src/HeboTech.ATLib/{Parsers → Parsing}/AtError.cs
  138. +3 −3 src/HeboTech.ATLib/{Parsers → Parsing}/AtErrorParsers.cs
  139. +5 −5 src/HeboTech.ATLib/{Parsers → Parsing}/AtReader.cs
  140. +1 −1 src/HeboTech.ATLib/{Parsers → Parsing}/AtResponse.cs
  141. +8 −8 src/HeboTech.ATLib/{Parsers → Parsing}/AtWriter.cs
  142. +1 −1 src/HeboTech.ATLib/{Parsers → Parsing}/IAtChannel.cs
  143. +2 −2 src/HeboTech.ATLib/{Parsers → Parsing}/IAtReader.cs
  144. +2 −2 src/HeboTech.ATLib/{Parsers → Parsing}/IAtWriter.cs
  145. +2 −2 src/HeboTech.ATLib/{Parsers → Parsing}/InvalidResponseException.cs
  146. +1 −1 src/HeboTech.ATLib/{Parsers → Parsing}/ModemResponse.cs
  147. +1 −1 src/HeboTech.ATLib/{Parsers → Parsing}/UnsolicitedEventArgs.cs
  148. +52 −0 src/HeboTech.ATLib/README.md
  149. +2 −3 src/HeboTech.ATLib/{Modems/Generic → Storage}/MessageStorage.cs
  150. +21 −0 src/HeboTech.ATLib/Storage/PreferredMessageStorage.cs
  151. +2 −31 src/HeboTech.ATLib/{DTOs/PreferredMessageStorage.cs → Storage/PreferredMessageStorages.cs}
  152. +1 −1 src/HeboTech.ATLib/{DTOs → Storage}/SupportedPreferredMessageStorages.cs
4 changes: 2 additions & 2 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -12,12 +12,12 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v2
uses: actions/checkout@v4
- name: Build and Test
run: ./Build.ps1
shell: pwsh
- name: Artifacts
uses: actions/upload-artifact@v2
uses: actions/upload-artifact@v4
with:
name: artifacts
path: artifacts/**/*
4 changes: 2 additions & 2 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
@@ -9,7 +9,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v2
uses: actions/checkout@v4
- name: Build and Test
run: ./Build.ps1
shell: pwsh
@@ -20,7 +20,7 @@ jobs:
run: ./Push.ps1
shell: pwsh
- name: Artifacts
uses: actions/upload-artifact@v2
uses: actions/upload-artifact@v4
with:
name: artifacts
path: artifacts/**/*
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -4,6 +4,8 @@
#Log folders
Logs/

**/*/launchSettings.json

# User-specific files
*.suo
*.user
110 changes: 75 additions & 35 deletions README.md
Original file line number Diff line number Diff line change
@@ -9,15 +9,14 @@ Hayes command set (commonly known as AT commands) is a command set frequently us

Feedback is very much welcome and please request features 🙂

[HeboTech.GsmApi](https://github.com/hbjorgo/GsmApi) is a REST API wrapping this library.

## Supported commands:
- Send SMS in PDU format (GSM 7 bit or UCS2 encoding)
- Send concatenated SMS (message that spans over multiple SMSs) in PDU format (GSM 7 bit or UCS2 encoding)
- SMS supports emojies
- List SMSs
- Read SMS (PDU format (GSM 7 bit or UCS2 encoding))
- Delete SMS
- Get SMS Status Report (delivery status)
- Dial number
- Answer incoming call
- Hang up call
@@ -40,6 +39,7 @@ Feedback is very much welcome and please request features 🙂
- Call started
- Call ended
- SMS received
- SMS Status Report received
- Error received
- USSD response received
- Generic event
@@ -62,41 +62,81 @@ dotnet add package HeboTech.ATLib

Using a serial port to communicate with a modem is easy:
```csharp
// Set up serial port
using SerialPort serialPort = new SerialPort(args[0], 9600, Parity.None, 8, StopBits.One)
{
Handshake = Handshake.RequestToSend
};
serialPort.Open();

// Create AT channel
using AtChannel atChannel = AtChannel.Create(serialPort.BaseStream);

// Create the modem
using IModem modem = new Fona3G(atChannel);

// Open AT channel
atChannel.Open();

// Configure modem with required settings before PIN
var requiredSettingsBeforePin = await modem.SetRequiredSettingsBeforePinAsync();

// Get SIM status
var simStatus = await modem.GetSimStatusAsync();
Console.WriteLine($"SIM Status: {simStatus}");

if (simStatus == SimStatus.SIM_PIN)
using HeboTech.ATLib.Messaging;
using HeboTech.ATLib.Misc;
using HeboTech.ATLib.Modems;
using HeboTech.ATLib.Modems.Adafruit;
using HeboTech.ATLib.Numbering;
using HeboTech.ATLib.Parsing;
using System;
using System.IO.Ports;
using System.Threading.Tasks;

namespace HeboTech.ATLib.TestConsole
{
var simPinStatus = await modem.EnterSimPinAsync(new PersonalIdentificationNumber("<PIN>"));
Console.WriteLine($"SIM PIN Status: {simPinStatus}");
public class GetStartedExample
{
public static async Task RunAsync(string portName, int baudRate, string pin, string recepientPhoneNumber)
{
// Set up serial port
using SerialPort serialPort = new SerialPort(portName, baudRate, Parity.None, 8, StopBits.One)
{
Handshake = Handshake.RequestToSend
};
serialPort.Open();

// Create AT channel
using AtChannel atChannel = AtChannel.Create(serialPort.BaseStream);

// Create the modem
using IModem modem = new Fona3G(atChannel);

// Listen to incoming SMSs
modem.SmsReceived += (sender, args) =>
{
Console.WriteLine($"SMS received: {args.SmsDeliver}");
};

// Listen to incoming SMSs stored in memory
modem.SmsStorageReferenceReceived += (sender, args) =>
{
Console.WriteLine($"SMS received. Index {args.Index} at storage location {args.Storage}");
};

// Open AT channel
atChannel.Open();

// Configure modem with required settings before PIN
var requiredSettingsBeforePin = await modem.SetRequiredSettingsBeforePinAsync();

// Get SIM status
var simStatus = await modem.GetSimStatusAsync();
Console.WriteLine($"SIM Status: {simStatus}");

// Check if SIM needs PIN
if (simStatus.Result == SimStatus.SIM_PIN)
{
var simPinStatus = await modem.EnterSimPinAsync(new PersonalIdentificationNumber(pin));
Console.WriteLine($"SIM PIN Status: {simPinStatus}");
}

// Configure modem with required settings after PIN
var requiredSettingsAfterPin = await modem.SetRequiredSettingsAfterPinAsync();

// Read SMS at index 1
var sms = await modem.ReadSmsAsync(1);
if (sms.Success)
Console.WriteLine(sms.Result);

// Send SMS to the specified number
PhoneNumber phoneNumber = PhoneNumberFactory.CreateCommonIsdn(recepientPhoneNumber);
string message = "Hello ATLib!";
var smsReferences = await modem.SendSmsAsync(new SmsSubmitRequest(phoneNumber, message));
foreach (var smsReference in smsReferences)
Console.WriteLine($"SMS Reference: {smsReference}");
}
}
}

// Configure modem with required settings after PIN
var requiredSettingsAfterPin = await modem.SetRequiredSettingsAfterPinAsync();

// Send SMS to the specified number
var smsReference = await modem.SendSmsAsync(new PhoneNumber("123456789"), "Hello ATLib!");
Console.WriteLine($"SMS Reference: {smsReference}");
```
Because it relies on a stream, you can even control a modem over a network! Either use a network attached modem, or forward a modem serial port to a network port.

Loading