Added change-language function

This commit is contained in:
Nicola Carminati
2018-09-04 10:38:24 +00:00
parent f9600956d3
commit 2252d260da
7 changed files with 101 additions and 0 deletions
+1
View File
@@ -77,6 +77,7 @@ namespace CMS_CORE_Application
CmsError cmsError = N.NC_Connect();
cmsError = N.NC_RModelName(ref ModelName);
cmsError = N.NC_WLanguage(new System.Globalization.CultureInfo("it"));
bool error = false;
string serial = "";
+5
View File
@@ -253,6 +253,11 @@ namespace CMS_CORE.Demo
return NO_ERROR;
}
public override CmsError NC_WLanguage(CultureInfo Language)
{
return NO_ERROR;
}
public override CmsError NC_RActiveAlarms(ref List<AlarmModel> alarms)
{
// Check if the NC Demo is Connected
+46
View File
@@ -137,6 +137,21 @@ namespace CMS_CORE.Fanuc
return NO_ERROR;
}
//Set the NC Language
public override CmsError NC_WLanguage(CultureInfo Language)
{
// set but 7 to TRUE
byte langToWrite = (byte)(ConvertToNCLanguage(Language) | 128);
// write the byte
CmsError cmsError = MEM_RWByte(W,0, PARAM_LING_FANUC_W.MemType, PARAM_LING_FANUC_W.Address, 0, ref langToWrite);
if (cmsError.IsError())
return cmsError;
return NO_ERROR;
}
//Get the NC Serial Number
public override CmsError NC_RSerialNumber(ref string SN)
{
@@ -1974,6 +1989,37 @@ namespace CMS_CORE.Fanuc
}
}
//Convert to NC Language
private byte ConvertToNCLanguage(CultureInfo language)
{
switch (language.Name)
{
case "en": return 0;
case "ja": return 1;
case "de": return 2;
case "fr": return 3;
case "zh-CHT": return 4;
case "it": return 5;
case "ko": return 6;
case "es": return 7;
case "nl": return 8;
case "da": return 9;
case "pt": return 10;
case "pl": return 11;
case "hu": return 12;
case "sv": return 13;
case "cs": return 14;
case "zh-CHS": return 15;
case "ru": return 16;
case "tr": return 17;
case "bg": return 18;
case "ro": return 19;
case "sk": return 20;
case "fi": return 21;
default: return 0;
}
}
//Manage the Status Process
private PROC_STATUS ConverToSTEPStatus(Focas1.ODBST status)
{
+13
View File
@@ -320,6 +320,18 @@ namespace CMS_CORE
* */
public abstract CmsError NC_RLanguage(ref CultureInfo Language);
/**
* <summary>
* Write the configured language of the NC
* <para>
* Compatibility: Fanuc | Osai | Demo | Siemens
* </para>
* </summary>
* <returns cref="CmsError">Returns an error when an internal or a library error occours</returns>
* <param name="Language">CultureInfo Variable with the new Language</param>
* */
public abstract CmsError NC_WLanguage(CultureInfo Language);
/**
* <summary>
@@ -1831,6 +1843,7 @@ namespace CMS_CORE
// TODO REMOVE
//Lingua CN
internal MEMORY_CELL PARAM_LING_FANUC = new MEMORY_CELL(MEMORY_TYPE.Null, 3281, 0, 1);
internal MEMORY_CELL PARAM_LING_FANUC_W = new MEMORY_CELL(MEMORY_TYPE.Fanuc_G, 581, 0, 1);
//Matricola Macchina
internal MEMORY_CELL MATR_MACCH_FANUC = new MEMORY_CELL(MEMORY_TYPE.Fanuc_D, 4018, 0, 1);
+6
View File
@@ -182,6 +182,12 @@ namespace CMS_CORE.Osai
return NO_ERROR;
}
//Set the NC Language
public override CmsError NC_WLanguage(CultureInfo Language)
{
return NO_ERROR;
}
//Get the NC Serial Number
public override CmsError NC_RSerialNumber(ref string SN)
{
+27
View File
@@ -155,6 +155,7 @@ namespace CMS_CORE.Siemens
SiemensAlarms = new Alarm[] { };
SiemensAlmSvc = new AlarmSvc(ConvertToSTEPLanguage(SiemensLanguage).ThreeLetterISOLanguageName);
SiemensAlmSvc.Subscribe(AlarmsChanged);
Infrastructure.SubscribeLanguageChanged(NcLanguageChanged);
if (SiemensToolSvc == null)
{
@@ -401,6 +402,16 @@ namespace CMS_CORE.Siemens
return NO_ERROR;
}
//Set the NC Language
public override CmsError NC_WLanguage(CultureInfo Language)
{
// write write the language
Infrastructure.CurrentLanguage = ConvertToNCLanguage(Language);
return NO_ERROR;
}
//Get the NC Serial number
public override CmsError NC_RSerialNumber(ref string SN)
{
@@ -3225,6 +3236,14 @@ namespace CMS_CORE.Siemens
SiemensAlarms = alarms;
}
private void NcLanguageChanged(string language)
{
SiemensAlmSvc.UnSubscribe(AlarmsChanged);
SiemensAlmSvc.Dispose();
SiemensAlmSvc = new AlarmSvc(language);
SiemensAlmSvc.Subscribe(AlarmsChanged);
}
private bool GetBitValue(int b, int bitNumber)
{
return (b & (1 << bitNumber - 1)) != 0;
@@ -3470,6 +3489,14 @@ namespace CMS_CORE.Siemens
}
}
//Convert to Step Language
private String ConvertToNCLanguage(CultureInfo language)
{
return language.ThreeLetterISOLanguageName;
}
private int SwapIntEndianFormat(int value)
{
var b1 = (value >> 0) & 0xff;
@@ -1,4 +1,6 @@
using System;
using System.Collections.Generic;
using System.Globalization;
namespace Nc_Demo_Application
{
@@ -74,6 +76,7 @@ namespace Nc_Demo_Application
TRANSFER = 4,
GENERIC = 5
}
// File
public const string FILE_FOLDER = "C:/CMS/STEP/DEMO/part_program/";