gclib 2.0.9
Communications API for Galil controllers and PLCs
 
Loading...
Searching...
No Matches
ip_assigner.cs
Go to the documentation of this file.
1
10using System;
11using System.Linq;
12
13namespace examples
14{
15 public static partial class Examples
16 {
35
36 public static int IP_Assigner(gclib gclib, string serial_num, byte address)
37 {
38 bool controller_found = false;
39 string[] requests;
40 do //Loop while no requests are found.
41 {
42 Console.WriteLine("Searching...");
43
44 //Listen for ~5 secods for controllers requesting IP addresses.
46
47 foreach (string request in requests)
48 {
49 Console.WriteLine(request);
50 }
51
52 } while (requests.Count() < 1);
53
54 foreach (string request in requests)
55 {
56 string[] controller_params = request.Split(new string[] { ", " }, StringSplitOptions.None);
57
58 //Parameters are ordered as:
59 //[Model #], [Serial #], [MAC Address], [Connection Name], [IP Address]
60
61 if (controller_params.Count() < 5)
62 {
63 Console.WriteLine("Unexpected controller format");
65 }
66
67 string mac = controller_params[2];
68 string ip = controller_params[4];
69
70 //If controller contains the user entered serial number
72 {
73 Console.WriteLine("Controller Match Found");
74 controller_found = true;
75
76 //Splits the found ip address into individual bytes
77 string[] ip_bytes = ip.Split('.');
78
79 //Rebuild the ip address using the user provided address as the last byte
80 string new_ip = $"{ip_bytes[0]}.{ip_bytes[1]}.{ip_bytes[2]}.{address}";
81
82 //Assign the new ip address to the controller
84
85 //Open a connection at the new ip address
87
88 //Burns the newly assigned ip address to non-volatile EEPROM memory
89 gclib.GCommand("BN");
90
91 Console.WriteLine("IP Address assigned");
92
93 //Write the connection string to the console
94 Console.WriteLine(gclib.GInfo());
95
96 break;
97 }
98 }
99
100 if (!controller_found)
101 Console.Write("No controller matched the entered serial number");
102
103 return GALIL_EXAMPLE_OK;
104 }
106 }
107}
const int GALIL_EXAMPLE_OK
Examples success code.
Definition examples.cs:29
const int GALIL_EXAMPLE_ERROR
Examples error code.
Definition examples.cs:30
void GAssign(string ip, string mac)
Assigns IP address over the Ethernet to a controller at a given MAC address.
Definition gclib.cs:224
void GOpen(string address)
Used to open a connection to Galil hardware.
Definition gclib.cs:445
string[] GIpRequests()
Provides a list of all Galil controllers requesting IP addresses via BOOT-P or DHCP.
Definition gclib.cs:386
string GCommand(string Command, bool Trim=true)
Used for command-and-response transactions.
Definition gclib.cs:257
string GInfo()
Provides a useful connection string.
Definition gclib.cs:344
Provides a class that binds to gclib's unmanaged dll. Wraps each call and provides a more user-friend...
Definition gclib.cs:68
GReturn vector(GCon g, char *file)
Puts controller into Vector Mode and accepts a file defining vector points.
Definition vector.cpp:36
static int IP_Assigner(gclib gclib, string serial_num, byte address)
Assigns controller an IP Adress given a serial number and a 1 byte address.
partial Module Examples
Definition Commands.vb:4