| gclib 2.0.7 Communications API for Galil controllers and PLCs |

ip_assigner.cs
Go to the documentation of this file.
1
10 using System;
11 using System.Linq;
12
13 namespace 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.
45 requests = gclib.GIpRequests();
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");
64 return GALIL_EXAMPLE_ERROR;
65 }
66
67 string mac = controller_params[2];
68 string ip = controller_params[4];
69
70 //If controller contains the user entered serial number
71 if (serial_num == controller_params[1])
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
83 gclib.GAssign(new_ip, mac);
84
85 //Open a connection at the new ip address
86 gclib.GOpen(new_ip);
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 }
examples.Examples.GALIL_EXAMPLE_OK
const int GALIL_EXAMPLE_OK
Examples success code.
Definition: examples.cs:29
examples.Examples.GALIL_EXAMPLE_ERROR
const int GALIL_EXAMPLE_ERROR
Examples error code.
Definition: examples.cs:30
gclib.GAssign
void GAssign(string ip, string mac)
Assigns IP address over the Ethernet to a controller at a given MAC address.
Definition: gclib.cs:224
gclib.GOpen
void GOpen(string address)
Used to open a connection to Galil hardware.
Definition: gclib.cs:445
gclib.GCommand
string GCommand(string Command, bool Trim=true)
Used for command-and-response transactions.
Definition: gclib.cs:257
gclib.GInfo
string GInfo()
Provides a useful connection string.
Definition: gclib.cs:344
gclib.GIpRequests
string[] GIpRequests()
Provides a list of all Galil controllers requesting IP addresses via BOOT-P or DHCP.
Definition: gclib.cs:386
gclib
Provides a class that binds to gclib's unmanaged dll. Wraps each call and provides a more user-friend...
Definition: gclib.cs:68
examples.Examples.IP_Assigner
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.
Definition: ip_assigner.cs:36
examples.Examples
﻿partial Module Examples
Definition: Commands.vb:4
examples
Definition: commands.cs:14