Fix osai null reference

Fix demo tool table config
Added part program message
This commit is contained in:
Lucio Maranta
2019-05-06 15:15:18 +00:00
parent e52875fe56
commit d4df4bc5b8
9 changed files with 159 additions and 14 deletions
+6 -2
View File
@@ -74,11 +74,16 @@ namespace CMS_CORE_Application
N = SetNcByType();
CmsError cmsError = N.NC_Connect();
cmsError = N.NC_RModelName(ref ModelName);
MessageBox.Show(cmsError.localizationKey);
cmsError = N.NC_RModelName(ref ModelName);
List<uint> val = new List<uint>();
N.MEM_RWDWordList(false, 0, Nc.MEMORY_TYPE.Demo, 1, 2, ref val);
cmsError = N.NC_WLanguage(new System.Globalization.CultureInfo("it"));
PROGRAM_TYPE_ENUM enuma = PROGRAM_TYPE_ENUM.JOB;
cmsError = N.FILES_RGetProgramType(ref enuma);
SelectedProcessData dt = new SelectedProcessData();
cmsError = N.PROC_RSelectedProcessData(1, ref dt);
bool error = false;
string serial = "";
@@ -121,7 +126,6 @@ namespace CMS_CORE_Application
SelectedProcessData selected = new SelectedProcessData();
double d = 0;
(N as Nc_Fanuc).ReadMacroValue(1, 955, true, ref d);
//cmsError = N.PROC_RSelectedProcessData(1, ref selected);
List<M155InputIsNeededModel> m155 = new List<M155InputIsNeededModel>();
N.PLC_ROperatorInputIsNeeded(ref m155);
+20
View File
@@ -1392,6 +1392,8 @@ namespace CMS_CORE_Library.Demo
processData.Origin = val;
processData.ProcessMessage = "Messaggio di test decisamente lungo";
return NO_ERROR;
}
@@ -2373,6 +2375,11 @@ namespace CMS_CORE_Library.Demo
return NO_ERROR;
}
public override CmsError FILES_WCleanUploadFolder()
{
return NO_ERROR;
}
#endregion File Management
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
@@ -3222,6 +3229,15 @@ namespace CMS_CORE_Library.Demo
return NO_ERROR;
}
public override CmsError TOOLS_RMagazineBlock(ref List<int> ids)
{
return NO_ERROR;
}
public override CmsError TOOLS_WFreeMagazines()
{
return NO_ERROR;
}
public override CmsError TOOLS_RAdatpivePathStep(ref Byte step)
{
@@ -3251,6 +3267,10 @@ namespace CMS_CORE_Library.Demo
public override CmsError TOOLS_RMagazineConfig(ref List<NcMagazineConfigModel> config)
{
CmsError cmsError = CheckConnection();
if (cmsError.IsError())
return cmsError;
config = new List<NcMagazineConfigModel>()
{
new NcMagazineConfigModel()
+36 -2
View File
@@ -1036,7 +1036,7 @@ namespace CMS_CORE_Library.Fanuc
return NO_ERROR;
}
public CmsError ReadMacroValue(int processId, int memIndex, bool isCustom, ref double val)
private CmsError ReadMacroValue(int processId, int memIndex, bool isCustom, ref double val)
{
if (isCustom)
{
@@ -1706,7 +1706,8 @@ namespace CMS_CORE_Library.Fanuc
processData = new SelectedProcessData()
{
ActiveOffsetId = offsetId,
Origin = origin
Origin = origin,
ProcessMessage = ""
};
return NO_ERROR;
@@ -3114,6 +3115,11 @@ namespace CMS_CORE_Library.Fanuc
return NO_ERROR;
}
public override CmsError FILES_WCleanUploadFolder()
{
return NO_ERROR;
}
private string FormatPathForNc(string path, string drive)
{
if (path == "\\\\")
@@ -3749,6 +3755,34 @@ namespace CMS_CORE_Library.Fanuc
return NO_ERROR;
}
public override CmsError TOOLS_RMagazineBlock(ref List<int> ids)
{
ids = new List<int>();
int val = 0;
CmsError cmsError = MEM_RWInteger(R, 0, MAGAZINES_TOOLING_CMD.MemType, MAGAZINES_TOOLING_CMD.Address, ref val);
if (cmsError.IsError())
return cmsError;
bool[] values = IntToBits(val);
for (int i = 0; i < values.Length; i++)
{
if (values[i])
ids.Add(i);
}
return NO_ERROR;
}
public override CmsError TOOLS_WFreeMagazines()
{
int val = 0;
CmsError cmsError = MEM_RWInteger(W, 0, MAGAZINES_TOOLING_CMD.MemType, MAGAZINES_TOOLING_CMD.Address, ref val);
if (cmsError.IsError())
return cmsError;
return NO_ERROR;
}
public override CmsError TOOLS_RMagazineStatus(ref Dictionary<int, bool> magazineStatus)
{
// Check if the NC is Connected
+2 -1
View File
@@ -58,6 +58,7 @@
PLC_NOT_RUNNING = 23,
HMI_NOT_RESPONDING = 24,
PROGRAM_IS_SELECTED = 25,
SELECTED_PROCESS = 26
SELECTED_PROCESS = 26,
OSAI_TT_FOLDER_NOT_FOUND = 27
}
}
@@ -192,6 +192,8 @@ namespace CMS_CORE_Library.Models
public static CmsError HMI_NOT_RESPONDING_ERROR = new CmsError(CMS_ERROR_CODES.HMI_NOT_RESPONDING, "error_hmi_not_responding");
public static CmsError PROGRAM_IS_SELECTED_ERROR = new CmsError(CMS_ERROR_CODES.PROGRAM_IS_SELECTED, "error_program_is_selected");
public static CmsError SELECTED_PROCESS_ERROR = new CmsError(CMS_ERROR_CODES.SELECTED_PROCESS, "error_selected_process_not_found");
public static CmsError OSAI_TT_FOLDER_NOT_FOUND_ERROR = new CmsError(CMS_ERROR_CODES.OSAI_TT_FOLDER_NOT_FOUND, "osai_tt_folder_not_found_error");
#endregion Cms Errors Codes
@@ -404,6 +406,8 @@ namespace CMS_CORE_Library.Models
public short Origin { get; set; }
public short ActiveOffsetId { get; set; }
public string ProcessMessage { get; set; }
}
public class AssistedToolingModel
+6
View File
@@ -1326,6 +1326,8 @@ namespace CMS_CORE_Library
public abstract CmsError FILES_RGetProgramType(ref PROGRAM_TYPE_ENUM programType);
public abstract CmsError FILES_WCleanUploadFolder();
#endregion File Management (To override)
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
@@ -1696,6 +1698,10 @@ namespace CMS_CORE_Library
public abstract CmsError TOOLS_RStoredData();
public abstract CmsError TOOLS_RMagazineBlock(ref List<int> ids);
public abstract CmsError TOOLS_WFreeMagazines();
public abstract CmsError TOOLS_RMagazineStatus(ref Dictionary<int, bool> magazineStatus);
#endregion Nc Tool Manager
+67 -7
View File
@@ -125,12 +125,22 @@ namespace CMS_CORE_Library.Osai
else
Connected = false;
bool directoryFound = false;
CmsError cmsError = FileExist(TOOL_MANAGER_DIRECTORY_PATH, ref directoryFound);
if(cmsError.IsError())
return cmsError;
if (!directoryFound)
{
Connected = false;
return OSAI_TT_FOLDER_NOT_FOUND_ERROR;
}
//// Check if tool manager folder exist
//nReturn = OpenNC.LogFSFindFirst(TOOL_MANAGER_DIRECTORY_PATH, out FILEFINDDATA findData, out uint finder, out errorClass, out errorNum);
////If there's an error
//if (errorClass != 0 || errorNum != 0 || nReturn == 0)
// return GetNCError(errorClass, errorNum);
////If there's an error
//if (errorClass != 0 || errorNum != 0 || nReturn == 0)
// return GetNCError(errorClass, errorNum);
}
catch (Exception ex)
{
@@ -1697,11 +1707,18 @@ namespace CMS_CORE_Library.Osai
return GetNCError(errorClass, errorNum);
short axOr = axOrigin.Count() > 1 ? axOrigin[0].OriginNumber : (short)0;
// Read DIS message
nReturn = OpenNC.ReadPartProgramMsg((ushort)processId, out string message, out errorClass, out errorNum);
if (errorClass != 0 || errorNum != 0 || nReturn == 0)
return GetNCError(errorClass, errorNum);
processData = new SelectedProcessData()
{
ActiveOffsetId = (short)info.actualtooloff,
Origin = axOr
};
Origin = axOr,
ProcessMessage = message ?? ""
};
return NO_ERROR;
}
@@ -2012,7 +2029,11 @@ namespace CMS_CORE_Library.Osai
if (ax.AxisName > 0 && axesN.Count() > 0)
{
AxName = ((char)ax.AxisName).ToString();
int id = axesN.FirstOrDefault(x => x.Name == AxName).Id;
var axis = axesN.FirstOrDefault(x => x.Name == AxName);
int id = 0;
if (axis != null)
id = axis.Id;
val = Axes.FirstOrDefault(X => X.Key == AxName);
if (id > 0)
{
@@ -2967,6 +2988,18 @@ namespace CMS_CORE_Library.Osai
return NO_ERROR;
}
public override CmsError FILES_WCleanUploadFolder()
{
ushort nReturn = OpenNC.LogFSRemoveDir(NC_PROGRAM_UPLOAD_PATH, out uint errClass, out uint errNum);
if (nReturn != 0 || errClass == 6 || errNum == 2)
return FILE_NOT_FOUND_ERROR;
else if (errClass != 0 || errNum != 0 || nReturn == 0)
return GetNCError(errClass, errNum);
return NO_ERROR;
}
#endregion File Management
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
@@ -3764,6 +3797,34 @@ namespace CMS_CORE_Library.Osai
return NO_ERROR;
}
public override CmsError TOOLS_RMagazineBlock(ref List<int> ids)
{
ids = new List<int>();
int val = 0;
CmsError cmsError = MEM_RWInteger(R, 0, MAGAZINES_TOOLING_CMD.MemType, MAGAZINES_TOOLING_CMD.Address, ref val);
if (cmsError.IsError())
return cmsError;
bool[] values = IntToBits(val);
for(int i = 0; i < values.Length; i++ )
{
if (values[i])
ids.Add(i);
}
return NO_ERROR;
}
public override CmsError TOOLS_WFreeMagazines()
{
int val = 0;
CmsError cmsError = MEM_RWInteger(W, 0, MAGAZINES_TOOLING_CMD.MemType, MAGAZINES_TOOLING_CMD.Address, ref val);
if (cmsError.IsError())
return cmsError;
return NO_ERROR;
}
private CmsError UpdateToolManagerFile<T>(string filePath, List<T> objs) where T : class
{
//Check if the NC is Connected
@@ -3919,7 +3980,6 @@ namespace CMS_CORE_Library.Osai
{
return ManageException(ex);
}
}
private CmsError DeleteBackup()
+17 -1
View File
@@ -1924,7 +1924,8 @@ namespace CMS_CORE_Library.Siemens
processData = new SelectedProcessData
{
ActiveOffsetId = Convert.ToInt16(items[0].Value),
Origin = origin
Origin = origin,
ProcessMessage = ""
};
}
catch (Exception ex)
@@ -3102,6 +3103,11 @@ namespace CMS_CORE_Library.Siemens
return NO_ERROR;
}
public override CmsError FILES_WCleanUploadFolder()
{
return FUNCTION_NOT_ALLOWED_ERROR;
}
private IEnumerable<string> GetLinesFromString(string text)
{
string line;
@@ -4273,6 +4279,16 @@ namespace CMS_CORE_Library.Siemens
return FUNCTION_NOT_ALLOWED_ERROR;
}
public override CmsError TOOLS_RMagazineBlock(ref List<int> ids)
{
return FUNCTION_NOT_ALLOWED_ERROR;
}
public override CmsError TOOLS_WFreeMagazines()
{
return FUNCTION_NOT_ALLOWED_ERROR;
}
public override CmsError TOOLS_RMagazineStatus(ref Dictionary<int, bool> magazineStatus)
{
return FUNCTION_NOT_ALLOWED_ERROR;
+1 -1
View File
@@ -318,7 +318,7 @@ namespace CMS_CORE_Library
{
new FieldsConfiguration{ Name = "id", Type = "int", SelectValues = null, Category = "general", ReadOnly = true, MinValue = 0, MaxValue = 0 },
new FieldsConfiguration{ Name = "balluf", Type = "int", SelectValues = null, Category = "balluf", ReadOnly = false, MinValue = 0, MaxValue = short.MaxValue },
new FieldsConfiguration{ Name = "magazinePositionType", Type = "int", SelectValues = null, Category = "magPosType", ReadOnly = false, MinValue = 0, MaxValue = byte.MaxValue },
// new FieldsConfiguration{ Name = "magazinePositionType", Type = "int", SelectValues = null, Category = "magPosType", ReadOnly = false, MinValue = 0, MaxValue = byte.MaxValue },
new FieldsConfiguration{ Name = "magazineId", Type = "int", SelectValues = null, Category = "position", ReadOnly = true, MinValue = 0, MaxValue = byte.MaxValue },
new FieldsConfiguration{ Name = "positionId", Type = "int", SelectValues = null, Category = "position", ReadOnly = true, MinValue = 0, MaxValue = byte.MaxValue },
new FieldsConfiguration{ Name = "originMagazineId", Type = "int", SelectValues = null, Category = "position", ReadOnly = true, MinValue = 0, MaxValue = byte.MaxValue },